unity帧同步游戏极简框架及实例(附客户端服务器源码)
阅前提示: 此框架为有帧同步需求的游戏做一个简单的示例,实现了一个精简的框架,本文着重讲解帧同步游戏开发过程中需要注意的各种要点,伴随框架自带了一个小的塔防sample作为演示. [TOC] #哪些游戏需要使用帧同步 如果游戏中有如下需求,那这个游戏的开发框架应该使用帧同步: <li>多人实时对战游戏</li> <li>游戏中需要战斗回放功能</li> <li>游戏中需要加速功能</li> <li>需要服务器同步逻辑校验防止作弊</li> LockStep框架就是为了上面几种情况而设计的. #如何实现一个可行的帧同步框架 主要确保以下三点来保证帧同步的准确性: <li>可靠稳定的帧同步基础算法</li> <li>消除浮点数带来的精度误差</li> <li>控制好随机数</li> ##<font size = 5>帧同步原理</font> 相同的输入 + 相同的时机 = 相同的显示 客户端接受的输入是相同的,执行的逻辑帧也是一样的,那么每次得到的结果肯定也是同步一致的。为了让运行结果不与硬件运行速度快慢相关联,则不能用现实历经的时间(Time.deltaTime)作为差值阀值进行计算,而是使用固定的时间片段来作为阀值,这样无论两帧之间的真实时间间隔是多少,游戏逻辑执行的次数是恒定的,举例: 我们预设每个逻辑帧的时间跨度是1秒钟,那么当物理时间经过10秒后,逻辑便会运行10次