天天看点

unity同步——帧同步和状态同步笔记(1)

主流方法:帧同步和状态同步

(1)状态同步

基本认知:狭义的理解,就是所有客户端将动作信息全部发给服务端,由服务端计算游戏行为,再将所有状态数据通过广播的方式发给客户端。(比喻:相当于所有客户端都在远程操控服务端)

状态同步流程:

  • 客户端上传信息到服务器
  • 服务器收到信息后计算行为结果(计算,逻辑处理)
  • 服务器广播各种信息到客户端
  • 客户端接收后,更新本地状态

总结:重视逻辑计算的结果一致性,对客户端的视频是否是否一致没有要求。(即,甲、乙计算结果相同,甲先加载出,乙可能因为自身网速问题过一段时间加载出)

(2)帧同步

基本认知:客户端将信息发给服务端,服务端汇总后直接发给所有客户端,让他们自己处理信息;又或者直接不用服务端,直接P2P,客户端发给客户端,互相处理自己的数据。这样所有客户端只接受对方的行为数据,进行自己的数据计算,由此减少了数据量,又因为数据均一致,结果也一样,最大限度保持客户端之间画面的一致性。

扩展功能:①服务端接收信息的特性,可以记录信息,完成回放功能。②服务端记录仅仅只有双方的计算结果和行为逻辑,由此对比防止作弊。③多人实时对战。

总结:重视画面一致性,通过相同时机的相同计算得到一致的结果,但是因此当一个客户端出现问题,所有客户端都会为保持一致性而停止等待,造成卡顿。

继续阅读