我一直在思考最近進入網絡實時,快節奏的遊戲。看起來,如果你插值正確,那麼命中計算是在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。 :) –