本文链接:https://blog.csdn.net/qq_30832915/article/details/117199336
1. 背景
又到了毕业季,转眼间我也毕业了一年,大四选论文题目的时候,为了给足自己学opengl的动力,所以自告奋勇自拟题目《FPS游戏引擎的设计与实现》。到答辩时,已完成了个比较简单的渲染引擎,尽管还有很多内容还没有完成比如游戏引擎不可或缺的网络同步机制,但是因为学习到的知识比较多,可以写到论文的实现方式以及原理等也比较多,所以就没有继续写下去。正好最近在研究游戏同步方式有所收获,所以写下本篇文章弥补毕业论文的遗憾。
2. 网络同步的方式
游戏同步主要分为帧同步 和状态同步,帧同步强调的是游戏状态迁移的一致性,而状态同步强调的是游戏状态结果的一致性。
2.1 基本概念
2.1.1 帧同步
原理:将所有玩家的操作(即输入)转发的所有客户端上,每个客户端把所有玩家的逻辑都跑一边,通过相同的输入来达到相同的结果。需要注意的是,由于帧同步的原理限制,游戏逻辑中不能出现任何随机数或者其他不确定因素。
2.1.2 状态同步
原理:把每个需要同步的实体的信息(例如: 位置,