3

私は小規模なマルチプレイヤー レーシング ゲームの開発を始めました。もちろん、Half Life、Quake、Unreal で使用されているすべてのプレイヤー予測、推測航法、ラグ補償技術を使用していますが、ゲーム内に数十台の AI 車も含める予定です。 .

最初は、ランダム シードをすべてのクライアントに単純に送信し、AI の位置などを計算することにしましたが、次の問題に達しました。

  1. すべてのクライアントは、AI 車を実行するためのシードを受け取ります
  2. クライアントは、視線内にいるプレーヤーの動きの更新のみを受け取ります
  3. プレイヤー A が NPC の車にぶつかる
  4. プレーヤー B がプレーヤー A のフレームに入る

プレイヤー B はプレイヤー A の動きを受信して​​いないため、AI 車がまだ正常に動いていると想定し、プレイヤー A がそれらの車の 1 つに衝突したという事実を計算しません...

要するに、プレイヤーの影響を受けた AI ユニットを同期するにはどうすればよいでしょうか?

4

1 に答える 1

1

おそらく、サーバーは衝突を認識しています。その場合は、すべてのクライアントに衝突の結果を通知するだけです。基本的には、衝突の時点で、新しい方向、速度、RNGシードなどを使用してクライアントにAIを再シードします。

于 2010-12-07T16:33:13.157 に答える