1:帧同步如何解决不同步的问题?
- 可靠稳定的帧同步基础算法
- 消除浮点数带来的精度误差
- 控制好随机数
参考:Unity帧同步游戏极简框架及实例(附客户端服务器源码)
2:帧同步怎么做到流畅的战斗?
首先,定义一下流畅的战斗,流畅的战斗并不是代表着游戏的帧数一定要多高多高,而是说游戏的帧数在某一个帧数范围内小规模的变动,例如稳定在30帧这样。
对于单机游戏来说,如果要保证稳定在30帧,每一帧的逻辑、渲染等耗时不能高于33MS,所以需要小心的规划每一个函数的使用,采用分帧执行、算法优化等手段优化卡顿点。
而对于帧同步来说,不仅仅需要完成单机游戏的优化、还要针对网络波动进行针对的优化。我们知道,网络传输无法保证每一次传输的延迟都是一定的,有时候10MS就能完成一次传输,有时候1000MS才能完成一次传输,那么客户端如何保证网络传输不稳定的情况下,逻辑帧的运行还是相对稳定的呢?下面是给到的两种解决方案。
- 收到逻辑帧消息之后,不立即去播放,而是存着,播放使用固定的延迟进行播放,表现上就是玩家每次进行操作的时候,并不是马上生效的,而是有一小段固定延迟,这样网络在我们设置的延迟内波动的话,玩家是感受不出来卡顿的。但是缺点也很明显,每一个玩家都会有一段延迟。
- 另外一个处理方式就是,逻辑和表现进行分离,表现帧由玩家和逻辑帧进行驱动,逻辑帧卡顿并不影响表现帧,表现帧由玩家进行控制播放,一旦收到了新的逻辑帧,立即去做校验,如果说表现帧的播放轨迹和逻辑帧有出入,立即进行纠正。如果说新的逻辑帧并没有和表现帧有差异,但是表现帧相对逻辑帧差距很大,例如逻辑帧才到100帧,表现帧就已经到了200帧,这时候就对输入进行限制,比
来源:CSDN
作者:起个名字真的好难啊
链接:https://blog.csdn.net/e295166319/article/details/103473085