手机网游实时同步方案
网络延迟是所有实时同步的游戏都会遇到的问题,下面是关于实时同步问题的一些思考和处理方法。具体的解决方法可能比较特殊,首先这里的服务器并不跑定时器(除了一个游戏结束倒计时的定时器),由前端驱动,延迟的情况下主要是由前端来预测或纠正,服务器辅助,处理和转发,据我的了解好像没什么人这样子搞吧。所以看完如果觉得我这边有考虑不周的,或者有更好的思路,欢迎拍砖 / 交流 首先这是一个两边出兵对攻的游戏,只有2个玩家,而战场上士兵/英雄的数量也不会太多,最多不会超过50个吧,士兵都是有AI的,不被玩家控制。玩家能做的操作很有限,这里只以出兵这个操作为例。在游戏开始的时候,会有一次校时操作,这个后面会说到。 玩家A在Tick1点出兵,播放各种出兵特效之后,Tick1 + Delay = Tick2,在Tick2这个时间才会真正出兵,Delay等于抬手时间,也就是一个允许的延迟时间,并不等于网络延迟,应该理解为一个前摇动画的播放时间,这个时间越长越好,在不影响玩家体验的前提下(例如弄一个士兵生产队列,从出兵指令发出到士兵生产完毕,这可需要不少时间)。 这时候玩家请求服务器,请求的内容包含Tick1 + 出兵指令,服务器收到指令,对服务器而言,这时可能有两种情况,第一种是在Tick2之前收到,第二种是在Tick2之后收到 在Tick2之前收到,服务器可以转发操作,告诉所有的客户端,我们在Tick2出兵