固定時間ステップを持つリアルタイム ネットワーク ゲームがあるとします。また、すべてのクライアントとサーバーで現在のステップを同期できたとしましょう。入力パケットがいずれかのホストに早く到着した場合、彼は単純にそれを保存し、適切なステップが実行されるのを待つことができます。しかし、パケットが後で到着した場合はどうなりますか? 例:
ステップ 5 のタイムスタンプが付けられたパケットが到着し、プレーヤー A がプレーヤー B を殺し、A が勝者になることがわかります。しかし、2 ステップ後、ステップ 4 のタイムスタンプが付けられた遅延パケットが到着し、プレイヤー B がプレイヤー A を殺したことがわかります。パケットが遅れて到着しなかった場合、ゲームに負けたのはプレイヤー A でした。私が思いつく唯一の解決策は、履歴を記録し、時間を遡って修正を加えることですが、場合によっては非常に厄介に見えるかもしれません。
これについての典型的な方法は何ですか?到着が遅れたパケットはどうすればよいですか? サーバー側では簡単です-元のタイムスタンプを無視して信頼できます(実際、不正行為を防ぐためにそうする必要があります)が、クライアント側では別々のクライアント間で非同期化が発生します.