Monthly Archives: February 2007

帧锁定同步算法

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

Loading

Posted in 游戏开发, 编程技术, 网络编程 | Tagged , | 35 Comments