私は最近、リアルタイムペースのゲームのためのネットワーキングについていくつか考えました。あなたが正しく補間すると、ヒット計算は、player2(p2)の点から(p1.interp + p2.interp + p1.ping/2 + p2.ping/2)以上前に起こった状態で行われるようですシューターがplayer1であるときの表示(p1)。ゲームのためのリアルタイムネットワーク、内挿問題
パケットは最初にp1.ping/2をとるサーバに行き、サーバはp1.interp + p1.ping/2前に起こったゲーム状態でそれを計算します。その計算の結果は後でp2.interpだけ見るplayer2に送られます。それは、三者がすべて物事を処理するのにかかる時間のためにさらに増える。
player1 server player2
| | |
.------|_1.............actual.....|.....game state......|
| | |^ |
|intrp |_2 | | |
| | | | |
`----->|_3----ping/2 | | |
`------|_4----ping/2 |
`------5_|-------.
| |
6_| intrp|
| |
7_|<------‘
私の貧弱なASCIIアートのスキルすみませんが、私は抵抗することができませんでした。
は(私は、Windowsがインストールされていると私はそれがここに見えますが、皆さんのアイデアを得る願っていますどのようにたわごと見どこ私は家に帰った)
50msのピングを想定すると、100msの補間それは私たちにまとめ250msのより多くを提供します。これは、player2がplayer1によって過去に約250ms見られていることを意味しますが、クライアントのpredicitonを仮定すると、彼はリアルタイムで自分自身を見ています。私のロジックに欠陥があるのですか、これは大きな問題ではありませんか?
私はそのASCIIを修正しようとしました。 :) –