游戏同步

位置同步机制(二)

2017-06-20  本文已影响105人  三梦子

游戏说明

每个玩家控制一个飞机,在网络世界里尽情的pk。前期简单的操作就是左右键、飞行或者停止以及射击键,以及技能。击中算死亡,死亡后,会再度复活。

同步策略

帧同步

游戏的所有逻辑都在服务器,客户端将操作发给服务器,服务器每帧发送位置坐标给客户端,客户端绘制游戏实体。

关键帧同步

游戏的所有逻辑和数据都在服务器,这是肯定的,否则玩家会作弊。客户端会把操作发给服务器,但是服务器不会每帧同步,而是在两种条件下进行同步。

  1. 状态改变时,比如转方向,变速度
  2. 当处于移动时,每过1秒或者更久进行状态同步
    那么客户端会根据服务器的状态调整,和帧同步的完全依赖服务器的坐标不同的是,客户端多了一些移动,状态改变等逻辑,还有同步状态对的逻辑。同步状态的算法将决定游戏是否流畅,简单的即时同步,将会让显示看上去有点跳跃。

逻辑实现

服务器发送过来的内容将会是结束时间和结束时状态,客户端会用差值的方式在结束时间内达到这个状态。由于是用差值的方式,所以客户端会比较顺滑。

关于服务器和客户端时间同步

目前我认为在相同的时区内,时间是同步的。但是依靠这个非常不靠谱,比如玩家设置成了别的时区,或者长期不同步时间,或者手动改时间。简单的策略是,在登录时,获取服务器时间,并和本地时间进行比较,将差值记录下来,并根据差值计算当前的服务器时间。这是一个粗略的计算。

上一篇下一篇

猜你喜欢

热点阅读