【问题标题】:Lag compensation with networked 2D games网络 2D 游戏的延迟补偿
【发布时间】:2010-12-19 04:53:18
【问题描述】:

我想制作一个基本上是物理驱动的沙盒/活动游戏的 2D 游戏。不过有些东西我真的不明白。根据研究,服务器的更新似乎应该大约每 100 毫秒。我可以看到这对玩家来说是如何工作的,因为他们可以同时模拟物理并通过插值进行延迟补偿。

我不明白这对其他玩家的更新有何作用。如果客户每 100 毫秒才收到一次玩家位置的通知,我看不出这是如何工作的,因为在 100 毫秒内会发生很多事情。在那段时间里,玩家可能已经改变了两次左右的方向。我想知道是否有人会对这个问题有所了解。

基本上这对拍摄和类似的东西有什么作用?

谢谢

【问题讨论】:

  • 对于游戏特定主题,您可能gamedev.stackexchange获得更好的答案。
  • 我认为您希望每秒更新 30 次而不是 10 次,但这既不是这里也不是那里。当您玩游戏时,您多久改变一次方向?每秒 20 次似乎有点多。

标签: c++ networking


【解决方案1】:

通常情况下,玩家将在 100 毫秒后查看游戏的实际情况。那,你必须接受一些游戏设计只需要更快的服务器更新。通常,需要更快服务器更新的游戏使用客户端/服务器模型,其中服务器计算所有物理,而不是客户端。您已经看到了传统的 RTS 模型 - peer2peer,更新缓慢。但 FPS 游戏的传统模式是客户端/服务器、快速更新,正是出于这个原因。

【讨论】:

    【解决方案2】:

    GameDev 上有一个 forum entry 和一个完整的 multiplayer/network FAQ 关于这个主题,可能是一个很好的第一次阅读。

    【讨论】:

      【解决方案3】:

      您必须在设计游戏时考虑到他。例如,如果您正在射击一个可能会突然移开的目标,只需使用带有接近保险丝的炮弹,并在一段时间内发出大量噪音和漂亮的颜色,隐藏您和您的玩家实际上都不知道他们是否击中的事实目标。

      事实上,这非常接近真实的物理学:观察动作的后果需要时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-10
        • 2010-09-07
        • 1970-01-01
        • 2014-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多