游戏同步

早上在翻个人博客文件夹的时候,发现这篇18年10月30日写完的,再去翻了个人博客里,确实没发出来。随便把当时写的手稿也发上来。

游戏同步:帧同步和状态同步

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

状态同步:适合人数比较多的场景,回合制,ARPG

帧同步:适合用于RTS,格斗,赛车游戏。

项目 状态同步 帧同步
流量 相对高 相对低
回放 记录文件大 记录文件小
安全性 服务器实现逻辑,安全性高 逻辑在客户端,反外挂压力大,无法避免开图挂
战斗校验 协议加密,内存混淆;误差校验。无法彻底解决 服务器可以重启跑战斗
网络卡顿的表现 瞬移,回位,莫名掉血 战斗卡顿
服务器开发压力
客户端实现 调优状态同步方式,客户端需要做差值处理 客户端按照单机方式开发,保证逻辑层和表现层分离;逻辑层不要用到浮点数,不要用到不确定顺序的逻辑结构。对于物理引擎和浮点数计算都不要用Unity的
打击感 打击感相对差一点 打击感更好
客户端性能 优势明显,直接裁切 逻辑性能优化有压力

附 1

社会因素,对于我来说,知道帧同步,是因为王者荣耀这款手游。
当然王者荣耀能在手机上保持怎么好的网络稳定,离不开4G网络普及。当时我还是很少玩手机游戏。后来看到售楼处的小哥,午休聚在一起玩,我才意思到。这款游戏用户确认很多。
移动游戏战斗系统实现方式探讨
再谈网游同步技术

附 2

文章目录
  1. 1. 游戏同步:帧同步和状态同步
    1. 1.0.1. 帧同步:服务器负责转化客户端的操作,每个客户端在固定的逻辑帧执行该帧所有客户端的操作命令,通过在严格一致的时间轴上执行同样的命令序列得到同样的结果。主流的老牌RTS游戏都是帧同步:星际争霸、war3
    2. 1.0.2. 状态同步:服务器承载所有计算,客户端只做表现。主流的大型MMO游戏都采用状态同步。
  • 2. 附 1
  • 3. 附 2
  • |