5636联盟 2

游戏资讯

游戏服务器端处理延时同步的方法
2017-08-22 作者:小唐 点击: 1,408次
  大家在网吧玩游戏的时候,明明开了好几枪而且也都显示了但过了一会弹药计数只减少了一点点,这样就是游戏服务器端延时,那么如何解决游戏服务器端处理延时同步的问题呢。

  采用倒带法的服务器会记录刚刚过去一段时间内(比如0.5秒)游戏内的所有信息。当一个有延迟的玩家(比如200ms)向服务器发送一个请求,那么服务器在处理这个请求的时候会调取0.2秒前游戏的状态然后进行判定,在把判定结果对所有客户端进行同步,如此一来该玩家的操作虽然有延迟但也能与他/她所看见的画面一致。
  该策略的最大问题在于它让不同延迟之间的玩家被迫体验较大的延迟。举个例子,假设游戏里击杀时间(TTK)足够小,玩家A(10ms延迟)和玩家B(延迟200ms)对射,两人都是空血(一次攻击即死),A比B先开火(时间差很小,比如50ms)。玩家A的次攻击很快(10ms后)就得到了处理并记录在服务器中,玩家B被判死亡。
  然而在200ms后玩家B的请求到达,服务器倒带0.2秒,此时玩家AB都未死亡,因此玩家B的攻击有效,玩家A也被判定为死亡。如果没有延迟,那么服务器应该会判定玩家B死亡,因此玩家B将无法攻击,玩家A应该存活。换句话说采用倒带法的服务器里如果有一个延迟很大的玩家将会拖累其他低延迟玩家的游戏体验。

以上内容整理自互联网,如有侵权,请立即与小编联系,小编将及时处理。转载或引用本网版权所有之内容请注明来源,感谢您对本站的支持! 联系QQ:2850592923 欢迎加入网吧业主 交流群:614859884(已满)397580722(可加)

点击排行榜