解码mmo服务器
文章平均质量分 51
yyhero1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解码mmo游戏服务器一:时间轮的引入
问题引入:在mmorpg游戏中,群战的时候,玩家释放技能,这时候会出现技能冷却时间,每一个技能都是一个定时器,或者在slg游戏中,玩家修建房屋,创建基地,都会产生一个延时操作,等到了指定时间后,完成房屋修建等任务!!!!!轮询的尴尬:使用一个定时器,定时遍历多个链表,判定链表里面的任务是否到期! 效率低下,每一次遍历都需要筛选定时器,时间复杂度O(n).多定时器的尴尬:同时创建多个定时器,...原创 2018-08-17 10:49:56 · 1729 阅读 · 0 评论 -
解码mmo游戏服务器二:地图自动寻路
问题引入:在mmorpg游戏中,玩家点击某一个任务,玩家就会自动跑到接收/完成任务的npc位置处,这个就是自动寻路。对于前端而言,已经不太需要了解自动寻路,因为现在引擎或者地图编辑器已经帮忙实现了这一功能,但是服务器依然需要了解并实现自动寻路。整个流程是:前端开始自动寻路,计算出路径(一组节点的集合),然后前端在这些节点的集合中选出一部分关键点,发送给服务器,服务器接收到消息,同时开始计算寻路...原创 2018-08-17 11:18:55 · 3156 阅读 · 0 评论 -
解码mmo游戏服务器三:大地图同步(aoi)
问题引入:aoi(area of interest).在大地图中,玩家只需要关心自己周围的对象变化,而不需要关心距离较远的对象的变化。所以大地图中的数据不需要全部广播,只要同步玩家自己视野范围的消息即可。解决方案:1:灯塔法。所谓灯塔法,即将大地图划分成有限的小格子,在每个小格子中间放一个灯塔,这个灯塔管理两个队列:一个是本格子内所有的对象集合,另一个是对本灯塔感兴趣的对象集合(简称观...原创 2018-08-17 14:25:51 · 6751 阅读 · 1 评论 -
解码mmo游戏服务器四:如何实现玩家状态的高同步性
问题引入:这里主要讨论状态同步,client A发生状态变化(移动,换装,属性变化等),将变化的信息同步到client B,最简单做法就是直接通过服务器中转然后广播出去,但是由于存在网络延迟,所以client B收到的消息总是滞后的,这对于高精度高技巧性的游戏的无法容忍的。解决方式:首先要实现网络对时操作,所谓对时,并不是要求客户端时间跟服务器保持一致,而是通过在数据包中加入时间戳,算出数据包...原创 2019-01-28 17:46:20 · 2636 阅读 · 0 评论
分享