Ich bin ein absoluter Anfänger in der Spieleentwicklung und alles, was ich über Kollisionsvermeidung / -lösung weiß, habe ich in der letzten Woche auf oder über diese Website gelernt. Also zögern Sie nicht, mich zu korrigieren, wenn ich hier etwas frage basierend auf falschen Annahmen / Missverständnissen. Ich habe mein Bestes getan, um klar zu sein, aber das Thema ist für mich immer noch neu.
Fahrzeuge
In meinem Spiel habe ich Fahrzeuge, die sich autonom bewegen. Sie befinden sich in einem 3D-Raum und ihre Bewegung wird von einer Reihe von Variablen bestimmt, die für jedes Fahrzeug unterschiedlich sind. Die hier von Interesse sind in erster Linie:
- Nur Vorwärtsbewegung .
- Eine Geschwindigkeit , die zwischen min und max variieren kann, deren min aber nicht (sogar nahe bei) Null liegt.
- Ein Lenkradius , der von der Geschwindigkeit (die höhere Geschwindigkeit ist , desto größer Radius) abhängig ist ,
- Zwei maximale Beschleunigungen (zum Verringern und Erhöhen der Geschwindigkeit)
Tor
Mein Ziel ist es, eine Art KI zu implementieren, die eine 100% genaue Kollisionsvermeidung ermöglicht (dh ich bin sicher, dass die Fahrzeuge niemals kollidieren werden).
Design
- Obwohl ich lieber die Idee hätte, die KI "an Bord" zu haben (dh jedes Fahrzeug hat eine eigene "Kollisionsvermeidungs-KI", die eventuell Nachrichten abfragt und / oder an andere Fahrzeuge sendet), ist es mir auch möglich, die KI der CA unter zu implementieren eine zentrale Ebene (Versenden von Befehlen an die Fahrzeuge).
- In den meisten Fällen muss das Fahrzeug lediglich in eine beliebige Richtung ausweichen, aber unter bestimmten Umständen müssen sie eine Kollision vermeiden und auf dasselbe Ziel zufahren
Was ich bisher gefunden habe und wo ich stecken geblieben bin
Innerhalb der vielen vielen Links, die ich in anderen Fragen auf dieser Site gefunden habe, habe ich insbesondere diese gefunden:
Obwohl diese drei Links in vielerlei Hinsicht "meine Augen geöffnet" haben, ist mir nicht sofort klar, wie ich diese Informationen in meinem Fall verwenden soll. Insbesondere "versucht" Artikel 2 nur, eine Kollision zu verhindern (Kollisionen treten jedoch von Zeit zu Zeit auf). Während Artikel 3 manchmal Fahrzeuge anhalten muss, um Kollisionen zu vermeiden.
Was mir auch aufgefallen ist, ist, dass die oben verknüpften Kollisionsvermeidungsalgorithmen eine "Sofortprojektion" der Lineargeschwindigkeit verwenden, um zu überprüfen, ob sich etwas auf dem Weg des Fahrzeugs befindet. Ich habe mich gefragt, ob dies in meinem Fall ausreicht oder ob ich meine Position realistischer projizieren muss (z. B .: Wenn ich 60 ° in eine Lenkung von 90 ° nach rechts bin, sollte ich meine Position für den Rest der Position berechnen 30 ° der Kurve und dann unter der Annahme einer linearen Bewegung).
Schließlich habe ich besonders Angst vor Deadlocks . Mit anderen Worten: Obwohl die Dichte der Fahrzeuge auf der Welt relativ gering sein wird, befürchte ich, dass bei einer bestimmten Anzahl von Fahrzeugen, die sich dem gleichen Punkt annähern, keine Ausweichmanöver möglich sein werden, sobald sie feststellen, dass sie sich auf einem Kollisionskurs befinden als würde es das Fahrzeug auf einen Kollisionsweg mit einigen anderen bringen.
Frage
Wie kann ich mein "Ziel" erreichen? Eine ausführliche Erklärung wird natürlich sehr geschätzt, aber Links zu externen Ressourcen wären auch eine große Hilfe (Ich bin mir sicher, dass ich nicht der Erste mit diesem Problem bin, aber wahrscheinlich habe ich die falschen Keywords verwendet, um im Web zu suchen? )
Vielen Dank im Voraus für deine Hilfe!