为了让多个玩家在不同的机器上一起玩游戏,需要一个机制保证所有机器保持同步使得玩家看得见游戏状态的精确和流畅的表现,并允许玩家输入影响共享的游戏状态。
这个游戏状态代表游戏回话的当前状态(或者在MMO中,游戏世界的当前状态),包括所有玩家,NPCs,或者其他单位的位置和移动;子弹和炮弹;以及像积分,资产和资源的状态值。像移动,碰撞,命中检查和生成投射物这样的游戏事件会影响游戏状态,可以是来自玩家的输入,也可以来自游戏引擎的AI逻辑处理。影响它的状态和事件必须在所有机器之间以某种方式同步;否则,一个玩家在他们自己的机器上看见的对象对另一个玩家来说并不是他们所在的位置,导致混乱或者不公平游戏。
在可能以不同速度运行的不同机器上执行所有这些同步,同时处理比如延迟,丢包和有限带宽的物理限制,所有这些都属于这个通用术语“NetCode”。
为什么网络代码很难:延迟
网络