あなたが世界がすでに個別のブロックから構築されているなら、ナビゲーションの基礎としてそれらを使用することは理にかなっています。
パスファインダーは簡単で高速なパスファインダーです。世界の変化をたどり、それに対応する道は、本当の美しさです。
考えられる解決策を絞り込むのに役立つ質問がいくつかあります。-シミュレーションしようとしているNPCの種類は何ですか。-どのくらいの経路を検索していますか?-どのくらい正確な経路が必要ですか?
パスが短く、「ステアリングより優れている」品質で問題がない場合は、ローカルグリッド[1]が適しています。彼らは超高速です、あなたはそれを2Dと3Dの両方で機能させることができます。ボリュームデータから直接ローカルグリッドデータを取得できるため、ナビゲーショングラフは動的な変更と簡単に同期し続ける必要があります。
ローカルグリッドの問題は、ローカルグリッドよりも大きいローカルミニマがある場合、エージェントがスタックする可能性があることです。極小値を検出した場所にパンくずを追加するなどのトリックを実行して、検索時にそれらの場所を避けようとすることが可能です。
長いパスが必要な場合は、ある種の階層スキームをお勧めします。HPA *は、グリッドワールド内にスパースノードを作成する方法を提供します。ローカルグリッドは、高レベルのノード間のパス検索を解決できます。世界に変更を加えるときは、粗いノードもローカルに変更する必要があります。ノードを使用して、ゲームワールドの動的な変化を検出し、パスを再計画することもできます。
動的な世界がある場合、パスファインディングは統計になります。エージェントがその方法を見つけた場合、それ以上の保証はありません。世界の変化を追跡することは非常に困難であり、何かがうまくいかない場合の再計画は停滞しています。
エスキルはLove MMOでこのアイデアに乗り、彼の経路ファインダーはユーティリティ関数を使用したランダムサンプリングです(彼のアクション選択もそうです:))。それがあなたのゲームスタイルに合うなら、私は最初にそれをすることを勧めます。
[1] http://digestingduck.blogspot.com/2010/03/local-navigation-grids.html