关于测试机器人
这个月零零碎碎都不知道干了些什么 对接的多
主要做了机器人 测试服务器的 要感谢同事之前的工作 我也是在基础上进行的
mmo 主要瓶颈在于网络处理
机器人模拟玩家进行游戏,主要流程当然是登录选择角色,进入游戏,移动,打怪
,获取装备,穿上装备,跑npc,接任务,完成任务。我们主要的目的是让机器人模拟玩家 跑完主线任务即可
游戏内容模拟玩家方面,完成任务,接收任务,获取装备 这三个走gm命令
打怪 走到怪物附近,在技能范围内 释放技能,给服务器发送各种指令
聊天等同样,从配置文件中获取,取随机发言内容,发到公屏
移动依然采用原来的办法,发送移动指令,收到服务器返回,发送下一步移动
下面主要说下结构。
我的想法是,网络部分,一个机器人一个tcp连接,我们游戏上本来就是一个玩家一个连接,
游戏服务器比如连接500个玩家,那么他维护500条连接,假设玩家是均匀分布在不同的地图,
不同线程,他们也不是同时发送消息比如移动,对这500条连接,用多路复用select epoll
20个线程,500人的话一个多路复用器管理25个连接,某个链接需要读了 需要写了,multiplexor
分配给连接对应的processor进行处理,processor也是20个线程,一个processor负责25个连接的消息处理
这样做,消息处理和消息读取 不在一个线程,目的是不让消息处理阻塞网络并发部分的速度。
游戏服的特点是下发消息非常大,收到来自玩家的消息比较少,下行远大于上行,因为AOI的消息很多
同屏情况下 100个玩家移动一步,服务器收到上行消息100条,但是需要同步下发10000条,每个连接的消息
都给同步给视野内玩家,多路复用器大部分时间是在下发消息
机器人进程
加100个机器人,100条连接,我没有每个连接单独监听,也是使用了select epoll,
但是优势并不大,因为机器人测试,每个连接几乎一直在发送消息,
这个月零零碎碎都不知道干了些什么 对接的多
主要做了机器人 测试服务器的 要感谢同事之前的工作 我也是在基础上进行的
mmo 主要瓶颈在于网络处理
机器人模拟玩家进行游戏,主要流程当然是登录选择角色,进入游戏,移动,打怪
,获取装备,穿上装备,跑npc,接任务,完成任务。我们主要的目的是让机器人模拟玩家 跑完主线任务即可
游戏内容模拟玩家方面,完成任务,接收任务,获取装备 这三个走gm命令
打怪 走到怪物附近,在技能范围内 释放技能,给服务器发送各种指令
聊天等同样,从配置文件中获取,取随机发言内容,发到公屏
移动依然采用原来的办法,发送移动指令,收到服务器返回,发送下一步移动
下面主要说下结构。
我的想法是,网络部分,一个机器人一个tcp连接,我们游戏上本来就是一个玩家一个连接,
游戏服务器比如连接500个玩家,那么他维护500条连接,假设玩家是均匀分布在不同的地图,
不同线程,他们也不是同时发送消息比如移动,对这500条连接,用多路复用select epoll
20个线程,500人的话一个多路复用器管理25个连接,某个链接需要读了 需要写了,multiplexor
分配给连接对应的processor进行处理,processor也是20个线程,一个processor负责25个连接的消息处理
这样做,消息处理和消息读取 不在一个线程,目的是不让消息处理阻塞网络并发部分的速度。
游戏服的特点是下发消息非常大,收到来自玩家的消息比较少,下行远大于上行,因为AOI的消息很多
同屏情况下 100个玩家移动一步,服务器收到上行消息100条,但是需要同步下发10000条,每个连接的消息
都给同步给视野内玩家,多路复用器大部分时间是在下发消息
机器人进程
加100个机器人,100条连接,我没有每个连接单独监听,也是使用了select epoll,
但是优势并不大,因为机器人测试,每个连接几乎一直在发送消息,