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

Networking 保持客户端计时器同步-TCP,networking,synchronization,Networking,Synchronization,我有一个使用TCP套接字连接到C/Linux服务器的flash游戏。这个游戏非常基础。客户几乎没有办法作弊,因为该游戏主要是基于文本的游戏,带有一些图形 同步计时器问题: 游戏有一个计时器,每个客户端的计时器必须相同(例如,从60秒开始,倒计时到0)。我想到了一些基本技术,其中服务器为每个客户机强制执行计时器,例如每秒向每个客户机发送服务器时间,但这可能会对服务器造成很大的消耗,并占用大量带宽。我希望有人能给我一些关于同步技术的建议,使带宽和服务器处理时间最小化 我认为这个解决方案可能与使用客户

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

同步计时器问题:

游戏有一个计时器,每个客户端的计时器必须相同(例如,从60秒开始,倒计时到0)。我想到了一些基本技术,其中服务器为每个客户机强制执行计时器,例如每秒向每个客户机发送服务器时间,但这可能会对服务器造成很大的消耗,并占用大量带宽。我希望有人能给我一些关于同步技术的建议,使带宽和服务器处理时间最小化

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


非常感谢您的帮助。

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


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

NTP对我来说是一个新概念。我要去看看。谢谢你的提示!从我所读到的来看,NTP对我来说可能有点过头了。它似乎只是UDP,需要自己的服务器。我只需要一个实现,可以让所有用户用他们自己的时钟开始倒计时,并确保他们不会超过一秒钟失去同步。事实上,flash只是TCP,所以我甚至不确定NTP是否可行。难道客户端不能要求服务器“在x秒内唤醒我”吗?我认为如果服务器强制执行绝对计时器并忽略超过该时间的任何请求,它可能会工作吗?我是实时网络新手,可能会有一些我不知道的“Gotya”。