逃げるための経路探索
ご存知のように、ポイントAからポイントBに至る2次元環境で最適なパスを見つけるには、多くの解決策があります。 しかし、オブジェクトがポイントAにあり、ポイントBからできるだけ早く遠くまで離れたい場合、どのようにパスを計算しますか? 少しの背景情報:私のゲームは、タイルベースではないが、浮動小数点精度の2D環境を使用しています。動きはベクトルベースです。経路探索は、ゲームワールドを歩行可能または歩行不可能な長方形に分割し、コーナーからグラフを作成することによって行われます。ダイクストラアルゴリズムを使用して動作するポイント間のパスファインディングはすでにあります。逃亡アルゴリズムのユースケースは、特定の状況では、ゲーム内のアクターが別のアクターを危険として認識し、そこから逃げるということです。 些細な解決策は、「安全な」距離に到達するか、または俳優が恐怖で覆う壁に到達するまで、脅威とは反対の方向にベクトルで俳優を移動することです。 このアプローチの問題は、アクターが簡単に回避できる小さな障害物によってブロックされることです。壁に沿って移動しても脅威に近づくことはできませんが、そもそも障害物を避けたほうが賢く見えます。 もう1つの問題は、マップジオメトリの行き止まりです。状況によっては、存在は、より速く離れるが、トラップされる行き止まりで終わるパス、または最初は危険からそれほど遠くに行かないことを意味する別のパスから選択する必要があります(または少し近づいても)、その一方で、最終的にははるかに遠く離れてしまうという点で、はるかに長期的な報酬があります。だから、離れるの短期報酬の高速は何とか離れるの長期報酬に対して評価されなければならない遠いです。 また、攻撃者が小さな脅威に近づき、はるかに大きな脅威から逃れることを受け入れる必要がある状況には、別の評価の問題があります。しかし、すべての軽度の脅威を完全に無視するのも愚かなことです(そのため、この図の俳優は右上の領域で軽度の脅威を回避するために邪魔になりません)。 この問題の標準的な解決策はありますか?