KI: Unterschied zwischen den Versionen
K (Rechtschreibfehler korrigiert.) |
|||
Zeile 1: | Zeile 1: | ||
{{Unvollständig}} | {{Unvollständig}} | ||
− | Die Künstliche Inteligenz(KI) beschreibt in der Spieleindustrie das Verhalten von Personen/Tieren. | + | 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 | + | 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. | 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. | 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. | 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 | + | 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 == | == Wegfindung == | ||
− | Die Wegfindung ist ein Mittel, um ein Objekt von Punkt A nach Punkt B zu bringen oder auch nicht(wenn es | + | 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 | + | 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 | + | 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. | 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 | + | 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 | + | 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( | + | 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 | + | 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 | + | D* ist ein Algorithmus, der dynamisches [[A*]] implementiert und somit für veränderbare Welten verwendbar ist. |
== Steering Behavior == | == Steering Behavior == | ||
− | Mit der Wegfindung haben wir zwar einen Weg von A nach B aber wie geht man diesen Weg ? | + | 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 | + | 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 | + | 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. | + | 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. | 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. | Hierbei werden auch Sensoren eingesetzt, diese erfasssen z.B. Entfernung und Bewegungsrichtung von Feinden oder gute Positionen für ein Hinterhalt. | ||
== State Machine == | == State Machine == | ||
− | State Machines und Neurale | + | State Machines und Neurale Netze sind zur Festlegung von Verhalten da. |
− | Sie entscheiden, ob eine Person | + | 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 | + | 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. | State Machines sind sehr einfach zu implementieren und brauchen wenig Rechenzeit. | ||
− | == Neurale | + | == Neurale Netze == |
− | Neurale | + | Neurale Netze haben den Vorteil, gegenüber State Machienes, dass sie dynamisch sind. |
− | Das Neurale Netzt hat die gleiche Aufgabe | + | 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 | + | 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. | Man kann gewisse Grundmuster vorlernen und mit der Software ausliefern. | ||
− | Neurale | + | Neurale Netze sind sehr rechenaufwändig, aber die Vorteile und steigende Rechenleistung machen dieses System wesentlich schmackhafter. |
== Physik und KI == | == Physik und KI == | ||
− | Die Basis der KI basiert auf Physikdaten und um diese effektiv zu machen gibt es einige Dinge zu beachten. | + | 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. | 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. | Hierfür gibt es Bibliotheken wie qhull, welche aus komplexen Objekten einfache Hüllen erstellt. | ||
− | Es lohnt sich nicht die Orginal Szenendaten für die Physik und KI zu verwenden, | + | Es lohnt sich nicht, die Orginal 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. | Diese kann dann auch von der KI verwendet werden. | ||
− | Ideal ist ein 3 Layer System | + | 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 | + | Gemeinsame Nutzung von Spatial Systemen und Kollisionstest sind vorteilhaft. |
Version vom 30. Juni 2008, 12:51 Uhr
(Mehr Informationen/weitere Artikel) {{{1}}} |
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.
Inhaltsverzeichnis
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 Orginal 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.