2012-05-08 89 views
2

我一直在思考最近进入网络实时,快节奏的游戏。看起来,如果你插值正确,那么命中计算是在player2(p2)的点数为(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毫秒平,100毫秒内插它为我们提供了超过250毫秒总结。这意味着player2在过去被player1看到的时间大约为250ms,但假设客户预测的是他实时看到自己。我的逻辑是否有缺陷,或者这不是什么大不了的事情?

+2

嗯,我试图修复该ASCII。 :) –

回答

0

我发现this作为related问题的答案。不知道这是否合适作为答案,但我不能评论。

+0

那么我的问题有点基于那篇文章。 – redka