保持客户端计时器同步 - TCP

时间:2012-02-27 05:26:56

标签: networking synchronization

我使用连接到C / Linux服务器的TCP套接字进行Flash游戏。游戏非常基础。客户几乎没有办法作弊,因为游戏主要是带有图形的基于文本的游戏。

同步计时器问题:

游戏有一个计时器,每个客户端需要相同(例如,从60秒开始,倒计时到0)。我想到了一些基本技术,其中服务器为每个客户端强制执行计时器,例如每秒向每个客户端发送服务器时间,但这可能是服务器上的大量消耗和大量带宽使用。我希望有人能给我一些指向同步技术的指针,这种技术在带宽和服务器处理时间上都是最小的。

我认为这个解决方案可能与使用客户端的时钟有关。我不认为延迟峰值会影响用户时钟,但我可能会忽略这些可能危及游戏完整性的事情。

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您考虑过NTP了吗?这就是“Windows,网络时间”和Linux使用的方式。

答案 1 :(得分:0)

您必须考虑哪些会影响监控结果,例如netwalk-delay。 通常,您需要在客户端和服务器上进行模拟。客户端称为客户端预测并同步服务器的模拟,修复您的客户端。 你需要通过输入和碰撞来记录你的游戏对象的状态。 发送这些消息并添加延迟时间来运行游戏逻辑,“延迟时间”可以保证 通过运行游戏逻辑,其他玩家在同一时间同步。

很难走到box2d在TCP上的同步。我建议你使用P2P。