Dies mag eine triviale Frage sein, aber ich habe Probleme, dies zu verstehen. Würde mich sehr über Ihre Hilfe freuen.
In der Spieleentwicklung mit objektorientiertem Design möchte ich verstehen, wie KI-Agenten auf die Informationen zugreifen, die sie aus der Spielwelt benötigen, um ihre Aktionen auszuführen.
Wie wir alle wissen, müssen KI-Agenten in Spielen sehr oft „ihre Umgebung wahrnehmen“ und entsprechend dem handeln, was um sie herum geschieht. Beispielsweise kann ein Agent so programmiert sein, dass er den Spieler verfolgt, wenn er nahe genug kommt, Hindernisse während der Bewegung vermeidet (unter Verwendung des Lenkverhaltens zur Vermeidung von Hindernissen) usw.
Mein Problem ist, dass ich nicht sicher bin, wie ich das machen soll. Wie kann ein KI-Agent auf die Informationen zugreifen, die er über die Spielwelt benötigt?
Ein möglicher Ansatz besteht darin, dass die Agenten einfach die benötigten Informationen direkt von der Spielwelt anfordern.
Es gibt eine Klasse namens GameWorld. Es behandelt wichtige Spiellogiken (Spielschleife, Kollisionserkennung usw.) und enthält Verweise auf alle Entitäten im Spiel.
Ich könnte diese Klasse zu einem Singleton machen. Wenn ein Agent Informationen aus der Spielwelt benötigt, erhält er diese einfach direkt von der GameWorld-Instanz.
Beispielsweise kann ein Agent für Seek
den Spieler programmiert werden , wenn er sich in der Nähe befindet. Dazu muss der Agent die Position des Spielers ermitteln. So kann es einfach direkt angefordert werden : GameWorld.instance().getPlayerPosition()
.
Ein Agent könnte auch einfach die Liste aller Entitäten im Spiel abrufen und sie auf ihre Bedürfnisse analysieren (um herauszufinden, welche Entitäten in der Nähe sind oder irgendetwas anderes): GameWorld.instance().getEntityList()
Dies ist der einfachste Ansatz: Agenten wenden sich direkt an die GameWorld-Klasse und erhalten die benötigten Informationen. Dies ist jedoch der einzige Ansatz, den ich kenne. Gibt es eine bessere?
Wie würde ein erfahrener Spieleentwickler dies gestalten? Ist der Ansatz "Holen Sie sich eine Liste aller Entitäten und suchen Sie nach dem, was Sie brauchen" naiv? Welche Ansätze und Mechanismen ermöglichen es KI-Agenten, auf die Informationen zuzugreifen, die sie zur Ausführung ihrer Aktionen benötigen?