私は、ゲーム開発と、私が知っているすべての衝突回避/解像度については、私はそれを学んだと絶対初心者だ上またはを通じて、過去の週に、このサイト...私はここに求めているものですので、もし正しい私に躊躇しないでください間違った仮定/誤解に基づいています。明確にするために最善を尽くしましたが、それは主題がまだ私にとって斬新であると言いました。
乗り物
私のゲームでは、自律的に移動する車両があります。それらは3D空間に配置され、その動きは各車両ごとに異なる多くの変数によって管理されます。ここで関心のあるものは主に:
- 前進のみ。
- 速度最小と最大の間で変化することができるが、その分ではない(でも近くに)ゼロ。
- 速度に依存するステアリング半径(速度が速いほど、半径が大きい)
- 2つの最大加速度(速度の増減に使用)
ゴール
私の目標は、100%正確な衝突回避を実現する何らかのAIを実装することです(つまり、車両が衝突することはありません)。
設計
- が、私はより多くのAIを持つことのアイデアを好む「オンボード」(すなわち、最終的に照会および/または他の車両へメッセージを送信する、それ自身の「AI回避衝突」を有する各車両)私はでCA AIを実装することも可能です中央レベル(車両へのコマンドのディスパッチ)。
- ほとんどの場合、車両はあらゆる方向に互いを避けなければなりませんが、特定の状況では、衝突を避けて同じターゲットに向かう必要があります
これまでに見つけたものと行き詰まった場所
このサイトの他の質問で見つけた多くのリンクの中で、特にこれらのリンクを使用していることがわかりました。
これらの3つのリンクは多くの点で「目を開きました」が、私の場合、その情報をどのように使用するかがすぐにはわかりません。特に記事#2では、衝突を防ぐために「試行」するだけです(ただし、衝突は時々発生します)。記事3では、衝突を防ぐために車両を時々停止する必要があります。
私が気づいたのは、上記のリンクされた衝突回避アルゴリズムが線形速度の「瞬時投影」を使用して、何かが車両の途中にあるかどうかをチェックすることです。私の場合、これで十分なのか、もっと現実的な方法で自分の位置を投影する必要があるのか疑問に思っていました(例:右に90°のステアリングに60°いる場合、残りの位置について自分の位置を計算する必要があります曲線の30°、および直線運動を想定)。
最後に、私は特にデッドロックを恐れています。つまり、世界の車両の密度はかなり低くなりますが、特定の数の車両が同じポイントに向かって収束すると、衝突コースにいることに気づいたら、回避操作は不可能になるのではないかと心配しています車両が他の車両と衝突する経路にあるためです。
質問
「目標」に到達するにはどうすればよいですか?もちろん、詳細な説明は大歓迎ですが、外部リソースへのリンクも大いに役立ちます(この問題に最初に取り組んでいるとは思いませんが、おそらくWebの検索に間違ったキーワードを使用しましたか? )
よろしくお願いします!