KI

Aus DGL Wiki
Version vom 21. März 2012, 15:17 Uhr von Openglerf (Diskussion | Beiträge) (Orginal -> Original)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Hinweis: Dieser Artikel ist noch unvollständig.
(Mehr Informationen/weitere Artikel)

{{{1}}}

Incomplete.jpg

Die Künstliche Inteligenz (KI) beschreibt in der Spieleindustrie das Verhalten von Personen/Tieren. Hierbei fallen Schlagwörter, wie z.B. steering behavior, state machines, path finding, spatial system, neurale Netze. Im Grundlegenden kann man sagen, ein Character hat eine Aufgabe und sucht sich seinen Weg, um die Aufgabe zu lösen. Hierbei können Gefühle, Verhalten und Umgebung reinspielen. Die KI ist von der Physik sehr abhängig, da die Wegfindung und der Einfluss der Umgebung stark in das Verhalten reinspielen. Aktuell ist alles, vom dummen (festes Verhalten), starren (gleiche Wegpunkte) Char bis zum fühlenden (Umgebung hat Einfluss auf das Verhalten) und dynamischen (dynamische Wegfindung) Char verfügbar.

Wegfindung

Die Wegfindung ist ein Mittel, um ein Objekt von Punkt A nach Punkt B zu bringen oder auch nicht (wenn es keinen Weg gibt). In den Anfängen war der Weg vorgegeben, man hat einfach Punkte gesetzt, die das Objekt entlang ging. Später hat man Netze aus Wegpunkten ins Rennen geschickt, hierbei sucht sich der Algorithmus einen von vielen Möglichkeiten aus. Dabei haben z.B. kürzester Weg, Möglichkeit Leben oder Munition aufzuladen eine Rolle gespielt. Mittlerweile verwendet man dynamische Wegfindung, dabei wird die Umgebung durch ein spatial system gescannt und ein optimaler Weg gesucht. Eine Möglichkeit ist z.B. das Ziehen einer Linie, von A nach B. Dann unterteilt man den Bereich von A bis B in 8 Teile(Octree) und prüft auf Begehbarkeit. Wenn keine Lösung gegeben ist, dann wird die Auflösung nochmal erhöht, bis man ein Feld betreten kann oder die Auflösung das Maximum erreicht hat (Ausmaß des Spielers). Auf diese Weise kann man die Hindernisse zwischen A und B umgehen und hat nicht die ganze Welt sondern nur einzelne Sektoren in der Suche verwendet. D* ist ein Algorithmus, der dynamisches A* implementiert und somit für veränderbare Welten verwendbar ist.

Steering Behavior

Mit der Wegfindung haben wir zwar einen Weg von A nach B, aber wie geht man diesen Weg? Steering Behaviors sind dazu da, Verhalten in die Wegfindung einzubauen und die Bewegung zwischen zwei Wegpunkten zu definieren. So kann man z.B. den Weg gemütlich entlang laufen und wenn ein Sensor feststellt, dass eine größere Anzahl von Tieren sich auf die Person zubewegen, die Person in Panik los rennt. Das Umgehen von Hindernissen wie z.B. Kisten, Personen oder ähnlichem wird auch damit gelöst. Ein Weg, der gefunden wurde, kann z.B. verworfen werden, da er für die Person zu unsicher ist. Also einfach gesagt, es bringt das Empfinden und Verhalten in die Bewegung eines Objektes. Das ist ein relativ neues Gebiet, es gibt es schon seit vielen Jahren wird aber erst seit wenigen Jahren in Spielen verwendet. Hierbei werden auch Sensoren eingesetzt, diese erfasssen z.B. Entfernung und Bewegungsrichtung von Feinden oder gute Positionen für ein Hinterhalt.

State Machine

State Machines und Neurale Netze sind zur Festlegung von Verhalten da. Sie entscheiden, ob eine Person Angst hat, etwas sucht oder einer Person behilflich sein will. Dabei wird in der State Machine eine Lookup Tabelle verwendet, die die Verhaltenmodi (States) festlegen. State Machines sind sehr einfach zu implementieren und brauchen wenig Rechenzeit.

Neurale Netze

Neurale Netze haben den Vorteil, gegenüber State Machienes, dass sie dynamisch sind. Das Neurale Netzt hat die gleiche Aufgabe wie die State Machine, nur löst es die Aufgabe durch Training von bisherigen Wissen. Da das Verhalten angelernt werden muss, dauert es eine Weile, bis sich die KI angepasst hat. Man kann gewisse Grundmuster vorlernen und mit der Software ausliefern. Neurale Netze sind sehr rechenaufwändig, aber die Vorteile und steigende Rechenleistung machen dieses System wesentlich schmackhafter.

Physik und KI

Die Basis der KI basiert auf Physikdaten und um diese effektiv zu machen, gibt es einige Dinge zu beachten. Verwende abstrakte Versionen von Modellen, damit die Physik schnellere Kollisionstests und die KI schneller Wege finden kann. Hierfür gibt es Bibliotheken wie qhull, welche aus komplexen Objekten einfache Hüllen erstellt. Es lohnt sich nicht, die Original Szenendaten für die Physik und KI zu verwenden, zugunsten der Leistung sollte mindestens ein weiterer Layer vorhanden sein, der z.B. für die Physik eine abstraktere Version der Umgebung zur Verfügung stellt. Diese kann dann auch von der KI verwendet werden. Ideal ist ein 3-Layer-System: Layer 1 ist der zu zeichnende Layer (höchste Qualität), Layer 2 ist der für Kollisionserkennung zuständige Layer (mittlere Qualität, Hüllen) und Layer 3 ist der für die KI wichtige Layer (niedrigste Qualität, unwichtige Objekte entfernt, zusätzliche Informationen wie Triggerzones, Sensoren,...). Gemeinsame Nutzung von Spatial Systemen und Kollisionstest sind vorteilhaft.