一. 简述
我们用最精简的模型来描述一下帧同步。
客户端检测服务器的逻辑帧 -> 拿到逻辑帧 -> 进行处理 -> 处理出结果 -> 完成本次逻辑帧处理 -> 表现层将处理结果渲染到屏幕上 -> 结束
客户端检测用户操作 -> 打包成action -> 上报到服务器 -> 结束
在此基础上,客户端可以通过缓存帧,平滑帧,预测,插值,等方案优化表现层的效果及手感,但是底层模型是一样的。
比如缓存帧就是客户端检测到新的逻辑帧之后不立即处理,而是先缓存到一个队列中,等到满足一定数量之后,才对队列popFrame进行处理。
而平滑帧,则是在缓存帧的基础上,将popFrame的操作做成定时操作,从而抵抗网络波动导致逻辑帧到达的时间间隔不一致问题。
帧同步游戏一定要分为逻辑层和表现层。
表现层怎么折腾都可以,但是逻辑层必须保证确定性。
那么哪一部分属于逻辑层呢?
拿到逻辑帧 -> 进行处理 -> 处理出结果 -> 完成本次逻辑帧处理
打包成action -> 上报到服务器
所以,平缓帧的实现方案中,才能用普通的 ...