1. 状态同步

服务端接受客户端的操作,计算逻辑,分发到各客户端,游戏世界玩家没有属性变化,基本不会进行同步消息下发。

优点

  • 服务端可靠
  • 断线重连简单,把当前状态下发

缺点

  • 回放需要单独的服务器,保存所有的状态,按时间发
  • 服务器压力大,计算多
  • 开发复杂

2. 帧同步

服务端只做转发操作,转发各个客户端,大多数帧同步的逻辑是只放在每个客户端的,无论是否有操作,每一帧都会有服务器数据下发。

优点

  • 回放简单,只要把操作都记录下来就好
  • 开发简单

缺点

  • 不安全,客户端能篡改
  • 断线重连需要把之前所有操作加速一遍
  • 注意随机数每次都一样

3. 状态帧同步

状态帧同步就是状态同步和帧同步的概念相结合。客户端向服务器上传操作,服务器跑逻辑,但是又在按照固定的每一帧下发所有玩家的状态(属性位置等)给每一个客户端实现同步。客户端做预测,服务端做校验,不正确就回滚数据。

4. 参考