帧同步和状态同步

作者: 小星星幼儿园 | 来源:发表于2017-07-20 13:32 被阅读3078次

这里我根据自己的理解和经验对比一下帧同步和状态同步的主要区别以及各自的优缺点。帧同步我没有使用过,在具体的理解上可能会有偏差。

帧同步:

服务器负责转化客户端的操作,每个客户端在固定的逻辑帧执行该帧所有客户端的操作命令,通过在严格一致的时间轴上执行同样的命令序列得到同样的结果。主流的老牌RTS游戏都是帧同步:星际争霸、war3

优点

  1. 开发方便,可以无视客户端服务器(但是要考虑逻辑和表现分离)
  2. 打击感反馈好,例如所有的命中都能在本地马上触发相应的扣血和打击表现,反馈及时准确,无须像状态同步那样等待服务器推送扣血或者向服务器请求扣血。
  3. 网络流量小,这个会带来很多好处:带宽费用小、用户成本低、降低收发包带来的耗电(据说比较可观)

缺点

  1. 对网络要求高。这个涉及到具体帧同步实现的方式。
    锁帧问题,服务器会等待所有的客户端的第N帧操作都到齐之后再发送到各客户端第N帧的操作,这样一旦有一个客户端网络波动,所有人都会卡住。war3的做法是加入了超时机制,如果在第N帧超时没有收到某个客户端第N帧的操作,就不再等待这个客户端的这帧操作,并认为该客户端在这帧什么都没做。但是如果这个客户端只是延迟很高,他所有的操作是否都会被服务器判定无效呢?
    逻辑帧平滑问题,一般收到的逻辑帧命令数据会加入客户端正在顺序执行的逻辑帧的队列中。如果队列设置过长,操作延迟就会比较高;如果队列很短,在网络波动时,就会出现队列为空饥饿状态,造成逻辑帧不平滑。这个可以采用逻辑和表现分离、平滑插值等做法。逻辑和表现分离做的比较好的话可以做到无buffer。平滑插值是一些表现的过渡处理,比如卡顿感一个很主要的来源是怪物移动的不平滑,一个比较好的应对方法是以怪物方向为主计算位置,即使没有逻辑帧,表现帧也会继续根据当前方向速度计算位置,这样即使延迟出现波动时也不会出现位移的不平滑。
  2. 反外挂能力差,容易本地修改,开图,修改属性等。
  3. 断线重连需要追帧
  4. 客户端逻辑计算性能压力大,需要每逻辑帧计算所有游戏单位的逻辑状态,即使单位不在屏幕内。
  5. 对结果一致性控制比较严格,如果使用了第三方的库,需要能够控制结果的一致性。其他因素包括浮点计算在不同平台的误差差异、随机数序列一致性、一些容器的访问顺序问题。
状态同步:

服务器承载所有计算,客户端只做表现。主流的大型MMO游戏都采用状态同步。


优点
  1. 容易断线重连
  2. 容易防外挂
  3. 简单粗暴

缺点

  1. 流量大
  2. 打击感反馈匹配不够精准,因为所有的表现都是服务器推送的,在网络波动、客户端服务器不同计算的误差下,客户端各个表现比较难契合。
  3. 对网络要求也会比较高,如果2中说的各个表现的契合,以及位移等都会受到网络波动的影响。

无论是状态同步还是帧同步,对于网络延迟的优化都会涉及到的问题是:

  1. 在网络协议层优化,可靠UDP代替TCP,降低延迟
  2. 在表现上优化,客户端先行、平滑插值等在表现上降低对延迟的感受

相关文章

  • Unity帧同步的实现方法

    帧同步 游戏同步主要方向是 状态同步和帧同步。 状态同步 状态同步简单来说就是有一个权威服务器运行着一个没有图形界...

  • 帧同步和状态同步

    这里我根据自己的理解和经验对比一下帧同步和状态同步的主要区别以及各自的优缺点。帧同步我没有使用过,在具体的理解上可...

  • 帧同步和状态同步

    对于联网游戏来讲,同步的方式主要分为两种,状态同步、帧同步。 1、状态同步:顾名思义,是指的将其他玩家的状态行为同...

  • 帧同步,状态同步

    帧同步: 什么是帧同步:帧同步常被RTS(即时战略)游戏常采用。在游戏中同步的是玩家的操作指令,操作指令包含当前...

  • 游戏中的帧同步和状态同步 2020-03-30(未经允许,禁止转

    网络游戏中的帧同步与状态同步 帧同步和状态同步是网络游戏最常用的两种同步模式客户端同步是网络游戏的基本要求,比如王...

  • 状态同步扣血匹配的坑

    在之前的文章中《帧同步和状态同步》提到过状态同步在打击感表现方面弱于帧同步。打击感在游戏中讲究的是拳拳到肉的快感,...

  • 网络同步理解 状态同步 帧同步

    守望的实现思路大概性总结:客户端先行稍微领先服务器,中间大概差半个RTT时间,对于用户的操作一般都是立即反应,状态...

  • 主程技术分享: 游戏项目帧同步,状态同步如何选

    网络游戏开发项目中帧同步,状态同步如何选? 网络游戏的核心技术之一就是玩家的网络同步,主流的网络同步有”帧同步”与...

  • 网络游戏同步基础

    网络游戏同步基础 关键词 帧同步 状态同步 LockStep Timebucket Timewarp Dead R...

  • 游戏帧同步的流程与实现

    大纲 帧同步的基本原理 帧事件数据采集 帧同步的事件处理与动画 帧同步的逻辑数据同步 帧同步之跳帧处理 现代多人游...

网友评论

    本文标题:帧同步和状态同步

    本文链接:https://www.haomeiwen.com/subject/vaidkxtx.html