在上一篇文章中,我們有提到實體插值的作法下,玩家在本地端電腦看到的其他玩家是過去的遊戲資訊,假設今天是發生在快節奏的遊戲中像是射擊遊戲的話,玩家瞄準的對象永遠都是其他玩家過去的位置,那理所當然玩家就永遠射不到移動中的對象,在延遲更差的環境下問題越是明顯,而這個問題我們就可以透過延遲補償來解決。
延遲補償(Lag Compensation),它的原理是紀錄玩家射擊時,重新模擬當下遊戲世界你的擊中對象,這樣子玩家就不用擔心自己永遠都在瞄準過去位置的玩家了。但這個方法會導致一個問題,若今天敵方玩家躲到了障礙物後面,但因為本地端的敵方玩家是還沒躲到障礙物後的,此時敵方玩家可能會再躲到障礙物仍被擊殺,此時對敵方玩家就會有點不公平了,但延遲補償帶來的整體效益仍然是優大於劣。
那延遲補償的做法是從客戶端得到玩家的輸入並附帶時間戳,服務器把時間戳及封包傳輸時間都納入計算後,重新模擬當下的遊戲世界,並把最後的計算結果傳送給所有客戶。