我一直在思考最近进入网络实时,快节奏的游戏。看起来,如果你插值正确,那么命中计算是在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,但假设客户预测的是他实时看到自己。我的逻辑是否有缺陷,或者这不是什么大不了的事情?
嗯,我试图修复该ASCII。 :) –