Ich entwickle eine KI-Simulation von Raubtier und Beute. Ich möchte die KI simulieren, die sich hinter Hindernissen versteckt, wenn sie verfolgt wird. Aber ich versuche immer noch herauszufinden, wie ich dies am besten umsetzen kann.
Ich dachte daran, zu überprüfen, auf welcher Seite des Hindernisses sich das Raubtier befindet, und zu versuchen, auf die andere Seite zu gelangen. Verwenden Sie möglicherweise den A * -Pfadfindungsalgorithmus, um sicherzustellen, dass er über den kürzesten Pfad dorthin gelangt.
Der Hauptgrund, warum ich schreibe, ist der Fall, dass jemand mich in die richtige Richtung weisen kann, um dies umzusetzen (vielleicht hat es schon jemand getan) oder andere gute Ideen hat, wie ich es umsetzen kann. Ich habe so etwas noch nie zuvor gemacht, um KI zu programmieren oder ein Spiel zu machen.
Alle Hindernisse sind entweder horizontale oder vertikale Quadrate / Rechtecke.
Zusätzliche Informationen: Die Karte basiert auf x- und y-Positionen, wobei sich jeder Agent mit einer festgelegten Geschwindigkeit bewegt. Daher ist die Karte nicht vollständig kachelbasiert, auch aus diesem Grund bin ich mir nicht sicher, ob A * in dieser Situation für mich tatsächlich funktionieren würde.
Hier ist ein Bild der Situation:
Bitte beachten Sie auch, dass der rote Kreis das Raubtier ist, während der grüne Kreis die Beute ist, die vom Raubtier verfolgt wird.
Antworten:
Sie können diese Art von Verhalten jedem Pfadfindungsalgorithmus hinzufügen, indem Sie einfach die heuristische Funktion anpassen. Eine typische Heuristik für die Wegfindung basiert nur auf der Entfernung zum Ziel. Sie können jedoch eine Schätzung der Gefährlichkeit eines bestimmten Punkts berücksichtigen:
Diese neue Heuristik lässt Ihre Schauspieler versuchen, Bereiche zu finden, die sie als gefährlich empfinden. Diese Technik ist wirklich großartig, da sie mit jedem heuristischen Pfadfindungsalgorithmus funktioniert.
Hinweis: Pfadfindungsalgorithmen wie A * müssen möglicherweise ein wenig angepasst werden, damit der Algorithmus zurückverfolgen kann, falls er auf einen Bereich stößt, der zum Überqueren als zu gefährlich eingestuft wird.
quelle
Sie können die Beute mithilfe eines Algotithmus bestimmen lassen, dass der Predator sie zu einem bestimmten Zeitpunkt nicht direkt "sieht", wenn sie sich hinter einem Hindernis versteckt.
So könnte es gemacht werden:
Dann bewegen Sie die Beute an diesen Ort.
Bearbeiten: Dies bedeutet, dass Sie eine kachelbasierte Karte verwenden.
quelle
Sie können dies als Max / Min-Baum behandeln. Das Ziel wäre es, die "Sichtbarkeit" des Raubtiers zu minimieren. Sie können Werte wie folgt berechnen:
In diesem Fall ist es ein einfacheres Problem, "den nächstbesten Zug zu wählen". Das würde bedeuten, der nächste Schritt, der Sie in einen Bereich ohne Sichtbarkeit führt.
quelle
Für das nächste Hindernis ist das beides ...
Sehen Sie, ob Sie vom Raubtier auf die andere Seite des Hindernisses gelangen können. Gerade:
Wenn Sie nicht dorthin gelangen , kann in die Dinge , ohne zu stoßen, überprüfen Sie die nächste am nächsten Hindernis. Das erste Hindernis könnte den Test später nach etwas mehr Laufen bestehen, aber es wird die KI auch interessanter halten, wenn es sich nicht immer hinter dem nächsten Hindernis versteckt.
Es gibt weitaus ausgeklügeltere Lösungen, aber das ist eine schlechte Sache, wenn Sie sie nicht brauchen. Einfach ist gut.
quelle