《王者荣耀》帧同步技术理解

帧同步的核心思想是客户端只发送玩家的操作,或者将玩家操作解释为可执行的指令,发给服务器执行并广播给其它客户端执行。相同的输入+相同的逻辑 = 相同的结果。

快进功能其实就是在一帧里处理多帧的数据,所以一般都有一个队列辅助维护每帧要处理的数据。关于掉线网络延迟的处理,一般会短时间内维持上一帧的移动指令,但没有其他的按键指令。

有些坑的地方,主要是不同步。因为帧同步技术只同步输入,结果由各个客户端自己执行,中间相当于是黑盒操作。由于各个客户端千差万别,中间难免不一致,时间戳、随机数、浮点数精度计算误差等都是不完全一样的。前俩个可以统一使用服务器的时间戳和随机种子,精度问题就看情况自己处理吧,采用定点数替换,或者服务器对影响的系统强制矫正等。

帧同步技术感觉很适合移动端游戏,手游、ps等等,电脑输入一般情况复杂,所有操作都做指令解析情况太多,实现上应该困难许多。

你可能感兴趣的:(《王者荣耀》帧同步技术理解)