帧锁定同步算法
帧锁定算法解决游戏同步
早期 RTS,XBOX360 LIVE游戏常用同步策略是什么?格斗游戏多人联机如何保证流畅性和一致性?如何才能像单机游戏一样编写网游?敬请观看《帧锁定同步算法》 《帧锁定同步算法》转载请注明出处:
http://www.skywind.me/blog/archives/131
算法概念
该算法普遍要求网速RTT要在100ms以内,一般人数不超过8人,在这样的情况下,可以像单机游戏一样编写网络游戏。所有客户端任意时刻逻辑都是统一的,缺点是一个人卡机,所有人等待。
- 客户端定时(比如每五帧)上传控制信息。
- 服务器收到所有控制信息后广播给所有客户。
- 客户端用服务器发来的更新消息中的控制信息进行游戏。
- 如果客户端进行到下一个关键帧(5帧后)时没有收到服务器的更新消息则等待。
- 如果客户端进行到下一个关键帧时已经接收到了服务器的更新消息,则将上面的数据用于游戏,并采集当前鼠标键盘输入发送给服务器,同时继续进行下去。
- 服务端采集到所有数据后再次发送下一个关键帧更新消息。
这个等待关键帧更新数据的过程称为“帧锁定” 应用案例:大部分RTS游戏,街霸II(xbox360),Callus模拟器。
……