絶対位置ではなく位置の変化のみを送信することで、リアルタイム ゲームのネットワークを高速化したいとします。パケット損失に対処するにはどうすればよいですか? 1 つのパケットがドロップされると、オブジェクトの位置は次の更新まで間違ったものになります。
質問する
36 次
1 に答える
0
@casperOne のコメントを振り返ると、これが接続不良で一部のゲームが「グリッチ」する理由の 1 つです。
これに対する考えられる解決策は次のとおりです。
- オブジェクト/プレーヤーが間違った場所に表示されていることを許容できる最長時間を決定します (
xx
ミリ秒など)。「少なくとも」xx ミリ秒ごとに、または新しい位置が計算されるたびに、オブジェクトの位置を送信するウォッチドッグ タイマーを配置します。 - リンクの品質とシーンの複雑さに応じて、xx の値を短くすることができます。基本的に、利用可能な帯域幅を使用していない場合は、更新が最も長く送信されていないオブジェクトの現在位置の送信を開始します。
これを行うには、更新した順序でアイテムのリストを維持し、それをローテーションする必要があります。
つまり、高速な変更はすぐに反映されます (オブジェクトがミリ秒ごとに更新される場合、おそらくかなり頻繁にパケットが通過するため、遅延はほとんどありません) が、状態が更新される別のチャンスを得るまでに xx ミリ秒以上かかることはありません。 .
于 2013-04-10T12:13:49.910 に答える