【问题标题】:realtime networking for games, interpolation issue游戏的实时网络,插值问题
【发布时间】:2012-05-08 12:33:51
【问题描述】:

我最近一直在为实时、快节奏的游戏建立网络。看来,如果您正确插值,那么命中计算是在从 player2(p2)s 点超过 (p1.interp+p2.interp+p1.ping/2+p2.ping/2) 之前发生的状态上完成的查看射手是 player1(p1) 时的情况。

数据包首先到达接受 p1.ping/2 的服务器,然后服务器根据 p1.interp + p1.ping/2 之前发生的游戏状态计算它。该计算的结果被发送到 player2,它稍后才看到它 p2.interp。由于所有三个方面都需要时间来处理事情,因此它会进一步增加。

    player1            server             player2
       |                 |                   |
.------|_1.............actual.....|.....game state......|
|      |                 | ^                 |
|intrp |_2               | |                 |
|      |                 | |                 |
`----->|_3----ping/2     | |                 |
                  `------|_4----ping/2       |
                                    `------5_|-------.
                                             |       |
                                           6_|  intrp|
                                             |       |
                                           7_|<------‘

请原谅我糟糕的 ASCII 艺术技巧,但我无法抗拒。
(我回到家,我安装了 Windows,我看到这里看起来很糟糕,但希望你们能明白)

假设 50 毫秒 ping,100 毫秒插值,它给我们的总和超过 250 毫秒。这意味着 player1 在过去大约 250 毫秒内看到了 player2,但假设客户端预测,他实时看到自己。是我的逻辑有缺陷还是这没什么大不了的?

【问题讨论】:

  • 好吧,我已经尝试修复那个 ASCII。 :)

标签: networking real-time multiplayer


【解决方案1】:

我找到this 作为related 问题的答案。不确定这是否适合作为答案,但我无法发表评论。

【讨论】:

  • 嗯,我的问题有点基于那篇文章。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多