KI in Game Engines bezeichnet die Techniken und Systeme für das Verhalten nichtspielerbarer Charaktere (NPCs): NavMesh-Navigation, Behavior Trees, State Machines und Steering Behaviors.
Rubrik: Game Design & Interactive Media · Unterrubrik: Game Engines · Niveau: Fortgeschritten
Synonyme / Auch bekannt als: Game AI, Spieler-KI, NPC-KI, Gegner-KI, Spiellogik-KI
Was ist KI in Game Engines?
KI in Spielen (Game AI) unterscheidet sich fundamental von akademischer künstlicher Intelligenz. Während KI-Forschung auf echtes Lernen und allgemeine Intelligenz abzielt, geht es in der Spielentwicklung um glaubwürdiges und entertainierendes Verhalten – nicht unbedingt optimales. Ein Gegner, der immer optimal spielt, wäre für die meisten Spieler nicht spaßig.
Game Engines bieten integrierte Systeme für die häufigsten KI-Aufgaben: Pathfinding (Weg durch die Spielwelt finden), Navigation (diesem Weg folgen) und Entscheidungsfindung (was soll der NPC als nächstes tun?). Darüber hinaus gibt es komplexere Techniken für Gruppen-KI, strategisches Verhalten und prozedurale Inhalte.
Erklärung
NavMesh – Navigation Mesh
NavMesh (Navigation Mesh) ist das fundamentale System für NPC-Bewegung in 3D-Spielen. Eine NavMesh ist ein vereinfachtes, navigierbares Polygonnetz, das die begehbaren Oberflächen der Spielwelt repräsentiert.
Erstellung: In Unity und UE5 wird eine NavMesh aus der Szenen-Geometrie gebacken (vorausberechnet). Der Entwickler definiert, welche Oberflächen begehbar sind (Böden), welche nicht (Wände, Decken) und wie Charaktere zwischen verschiedenen Ebenen navigieren (NavMesh Links für Springen, Klettern).
Pathfinding: Der A-Algorithmus (A-Stern) findet auf der NavMesh den kürzesten Weg zwischen Startpunkt und Ziel. Varianten wie hierarchisches Pathfinding (HPA) skalieren auf große Karten.
Unity NavMesh: NavMeshAgent-Komponente macht ein Objekt navigierbar. Man setzt agent.SetDestination(targetPosition) und der Agent bewegt sich automatisch zum Ziel, umgeht Hindernisse, navigiert Treppen und Rampen.
UE5 AI Navigation: Ähnliches System mit NavMeshBoundsVolume für die begehbare Region und AIController mit MoveToLocation()/MoveToActor() für Pathfinding.
Dynamic NavMesh: Bei sich verändernden Spielwelten kann die NavMesh zur Laufzeit aktualisiert werden. Das ist teurer als statische NavMeshes, aber für zerstörbare Umgebungen notwendig.
State Machines (Zustandsautomaten)
Finite State Machines (FSM) sind das klassischste KI-Muster in Spielen. Eine FSM besteht aus:
- Zuständen (States): z. B. Patrol, Alert, Chase, Attack, Flee.
- Übergängen (Transitions): Bedingungen, die den Wechsel zwischen Zuständen triggern. z. B. „Spieler gesehen → Wechsel von Patrol zu Chase".
- Aktionen: Was im jeweiligen State ausgeführt wird.
``csharp // Vereinfachtes FSM-Beispiel in Unity switch (currentState) { case AIState.Patrol: PatrolBehavior(); if (CanSeePlayer()) currentState = AIState.Chase; break; case AIState.Chase: ChasePlayer(); if (CanAttack()) currentState = AIState.Attack; if (!CanSeePlayer()) currentState = AIState.Alert; break; case AIState.Attack: AttackPlayer(); if (!InAttackRange()) currentState = AIState.Chase; break; } ``
FSMs sind einfach zu implementieren und zu debuggen. Ihr größtes Problem ist die Skalierbarkeit: Bei vielen Zuständen und Übergängen wird der Code schnell unübersichtlich (State Explosion).
Hierarchical State Machines (HSM): Zustandsmaschinen, bei denen Zustände Unter-Zustandsmaschinen enthalten können. Reduziert Komplexität bei größeren Systemen.
Behavior Trees (Verhaltensbäume)
Behavior Trees (BT) sind das moderne Standard-Muster für Game-KI in AAA-Spielen und werden nativ von UE5 (und via Plugins in Unity) unterstützt. Ein Behavior Tree ist ein Baum aus Nodes, der von der Wurzel aus traversiert wird:
Composite Nodes:
- Sequence: Führt Kinder links nach rechts aus. Scheitert beim ersten fehlgeschlagenen Kind.
- Selector: Führt Kinder links nach rechts aus. Endet erfolgreich beim ersten erfolgreichen Kind.
- Parallel: Führt mehrere Kinder gleichzeitig aus.
Leaf Nodes:
- Task: Führt eine Aktion aus (MoveTo, Attack, PlayAnimation). Gibt Success oder Failure zurück.
- Condition: Überprüft eine Bedingung (IsSeeingPlayer, HasAmmo).
- Decorator: Modifiziert Verhalten eines Kind-Nodes (Cooldown, Loop, Invert).
Blackboard: Gemeinsamer Datenspeicher für BT-Daten (z. B. Spieler-Referenz, letzter gesehener Spieler-Ort). Nodes lesen und schreiben auf den Blackboard.
Behavior Trees sind durch ihre modulare Struktur leicht erweiterbar und debugbar. UE5 hat einen grafischen BT-Editor; für Unity gibt es die beliebten Assets „Behaviour Designer" und „NodeCanvas".
Steering Behaviors
Steering Behaviors (Craig Reynolds, 1987) sind einfache, kombinierbare Verhaltensregeln für Bewegung:
- Seek: Bewege dich auf ein Ziel zu.
- Flee: Bewege dich von einem Ziel weg.
- Arrive: Wie Seek, aber verlangsamt beim Annähern.
- Wander: Zufällige Richtungsänderungen für natürliche Bewegung.
- Separation: Halte Abstand zu nahegelegenen Agenten (verhindert Clumping).
- Cohesion: Bewege dich zur Mitte der Gruppe.
- Alignment: Gleiche Richtung mit nahegelegenen Agenten.
Separation + Cohesion + Alignment kombiniert ergibt Boids – die klassische Schwarm-Simulation. Vögel, Fische und Mobs in Spielen nutzen oft Boids-ähnliche Algorithmen.
Perception System (Wahrnehmung)
Bevor ein NPC auf den Spieler reagieren kann, muss er ihn wahrnehmen. UE5 hat ein integriertes AIPerception-System:
- Sight: Sichtkegel-basierte Wahrnehmung, konfigurierbar mit Radius, Winkel, Wandblockierung.
- Hearing: Sounds erzeugen wahrnehmbare Geräusch-Events.
- Damage: NPCs reagieren auf erlittenen Schaden.
Unity hat kein eingebautes Perception-System; Entwickler implementieren es mit Physics Overlap Queries oder Raycasts.
Beispiele
- Halo-Serie (Bungie): Die Grunt/Elite-KI gilt als Musterbeispiel für FSM-basierte Gruppen-KI mit glaubwürdigem, variiertem Verhalten.
- F.E.A.R. (Monolith, 2005): Goal-Oriented Action Planning (GOAP) für dynamisch agierende Feinde.
- Middle Earth: Shadow of Mordor (2014): Das Nemesis-System mit prozeduraler NPC-Biografie ist ein KI-Design-Meilenstein.
In der Praxis
Für die meisten Spiele reicht eine Kombination aus:
- NavMesh für Bewegung
- Einfachem FSM oder Behavior Tree für Entscheidungslogik
- Perception-Queries (Sichtprüfung via Raycast)
Komplexe KI-Systeme sind selten nötig – oft ist glaubwürdige Illusion von Intelligenz (mit zufälliger Variation und guter Animation) ausreichend.
Vergleich & Abgrenzung
| Ansatz | Komplexität | Skalierbarkeit | Typischer Einsatz |
|---|---|---|---|
| FSM | Niedrig | Begrenzt | Einfache NPCs, Prototypen |
| Hierarchical FSM | Mittel | Mittel | Komplexere Charaktere |
| Behavior Tree | Mittel–Hoch | Hoch | AAA-Spiele, komplexe NPCs |
| GOAP | Hoch | Sehr hoch | F.E.A.R., dynamische KI |
| ML-Agents (Unity) | Sehr hoch | Hoch | Forschung, procedurales Verhalten |
Häufige Fragen (FAQ)
Was ist der Unterschied zwischen NavMesh und Pathfinding? NavMesh ist die Datenstruktur (das Netz begehbarer Oberflächen). Pathfinding (A*) ist der Algorithmus, der auf dieser Struktur einen Weg berechnet. Beide gehören zusammen.
Kann Machine Learning für Game-KI genutzt werden? Ja. Unity ML-Agents ermöglicht Reinforcement Learning für NPC-Training. In kommerziellen Spielen ist dies noch selten, aber in der Forschung aktiv. OpenAI Five (Dota 2) ist ein beeindruckendes Beispiel.
Was ist GOAP? Goal-Oriented Action Planning: NPCs planen Aktionssequenzen, um definierte Ziele zu erreichen. Flexibler als FSM, erfordert aber mehr Entwicklungsaufwand. Bekannt durch F.E.A.R.s Feind-KI.
Verwandte Einträge
- Game Engine – Grundlagen
- Blueprints in Unreal Engine 5
- Unreal Engine 5
- Unity Engine
- Multiplayer-Frameworks in Game Engines
Weiterführend
- Millington, Ian / Funge, John: Artificial Intelligence for Games. 3. Aufl. Morgan Kaufmann, 2019.
- Buckland, Mat: Programming Game AI by Example. Wordware Publishing, 2005.
- Reynolds, Craig W.: Steering Behaviors for Autonomous Characters. GDC Proceedings, 1999.
- Epic Games: AI System Documentation (UE5). docs.unrealengine.com, 2024.
