Bücher online kostenlos Kostenlos Online Lesen
Erfolgreiche Spieleentwicklung

Erfolgreiche Spieleentwicklung

Titel: Erfolgreiche Spieleentwicklung
Autoren: Alexander Rudolph
Vom Netzwerk:
Ereignissen:
Spieleobjekt initialisieren und falls gewünscht positionieren, z. B.: Init_Object_At_Pos_TimeBased, Init_Object_Triggered
Spieleobjekt löschen: Delete_Object_TimeBased, Delete_Object_Triggered
Globales (nicht an ein bestimmtes Objekt gebundenes) Ereignis starten: Start_Event_TimeBased, Start_Event_Triggered
Objektgebundenes Ereignis starten (z. B. einen Raumflug): Start_ObjectEvent_TimeBased, Start_ObjectEvent_Triggered
Globale (nicht an ein bestimmtes Objekt gebundene) Nachrichtenausgabe (z. B. Missions-Briefing): Start_Output_TimeBased, Start_Output_Triggered
Objektgebundene Nachrichtenausgabe (z. B. ein Gespräch): Start_ObjectOutput_TimeBased, Start_ObjectOutput_Triggered
    Welche Art von Ereignissen ausgelöst werden soll, wie genau die einzelnen Spieleobjekte zu initialisieren sind, wie die Nachrichtenausgabe umgesetzt wird – die ganzen Details müssen selbstverständlich im Hauptprogramm ( KI-Demo1 ) implementiert werden und variieren von Spiel zu Spiel.

4.3 Zustandsautomaten, Entscheidungsbäume und Verhaltensnetzwerke
    Das intelligente Verhalten eines KI-Objekts basiert im Wesentlichen auf dem Umfang des vom Programmierer definierten Regelwerks. Ein solches Regelwerk beinhaltet eine Liste mit möglichen Situationen, die sich im Verlauf des Spiels ergeben können, und legt darüber hinaus fest, welche Reaktionen ein KI-Objekt in einer bestimmten Situation zeigen soll. Für die Simulation intelligenter Verhaltensweisen nutzen viele Programmierer sogenannte Zustandsautomaten (Finit State Machines). In Kombination mit probabilistischen Systemen ist es darüber hinaus möglich, unterschiedliche Persönlichkeitsprofile zu simulieren und zur Laufzeit zu verändern.
    Obgleich sich Zustandsautomaten nach wie vor einer großen Popularität erfreuen, kommen bei der Planung und Entscheidungsfindung heutzutage vermehrt sogenannte Entscheidungsbäume [4] (Decision Trees) zum Einsatz. Betrachten wir hierzu einmal die in Abbildung 4.1 dargestellte Situation, in der die KI zwischen drei möglichen Handlungsalternativen auswählen kann: Angriff, Rückzug oder Fortsetzung der aktuellen Mission.

    Abbildung 4.1: Entscheidungsbaum
    Ausgehend vom Root-Knoten (der Baumwurzel) repräsentieren alle weiteren Knoten (die sogenannten Leaf-Knoten) die notwendigen Schritte zur Entscheidungsfindung. Die Verwendung eines Entscheidungsbaums wird im KI-Programmbeispiel KI-Demo1 demonstriert. Listing 4.2 zeigt, wie sich der Prozess der Entscheidungsfindung für das in Abbildung 4.1 skizzierte Beispiel implementieren lässt. Fassen wir die notwendigen Entscheidungen noch einmal zusammen:
Befindet sich ein Gegner in Reichweite?
Falls nicht, dann kann die aktuelle Mission fortgesetzt werden, falls ja, muss überprüft werden, ob das eigene Schiff für einen Angriff gerüstet ist (voll bewaffnet, Schutzschilde auf 100 %)
Ist das Schiff bereit für einen Angriff, kann er eingeleitet werden, ansonsten muss der Rückzug angetreten werden
    // Entscheidung zurücksetzen:
DecisionTree->Reset_Decision();
DecisionTree->Set_NextDecisionStep(DISTANCE_TEST);

[Programmcode für den Abstandstest]

if(distance <= WeaponRange)
{
DecisionTree->Set_NextDecisionStep(CHECK_SYSTEM_STATUS);

[Programmcode für den Systemtest]

if(SystemStatus > 90)
DecisionTree->Set_NextDecisionStep(ATTACK);
else
DecisionTree->Set_NextDecisionStep(RETREAT);
}
else
DecisionTree->Set_NextDecisionStep(FOLLOW_MISSION_SCRIPT);

[...]

if(DecisionTree->Get_Decision() == ATTACK)
[Programmcode für den Angriff]
else if(DecisionTree->Get_Decision() == RETREAT)
[Programmcode für den Rückzug]
else if(DecisionTree->Get_Decision() == FOLLOW_MISSION_SCRIPT)
[Programmcode für den Missionsverlauf]
    Listing 4.2 Entscheidungsfindung mithilfe eines Entscheidungsbaums
    Entscheidungsbäume liefern exakt vorhersagbare Entscheidungen auf Basis der momentanen Situation, ohne jedoch die individuellen Verhaltensweisen einzelner KI-Objekte zu berücksichtigen. Von den unterschiedlichen Ansätzen, um das Verhalten einer KI abwechslungsreicher und damit weniger durchschaubar zu gestalten, betrachten wir an dieser Stelle die sogenannten Verhaltensnetzwerke (Behavior Networks). Wie in Abbildung 4.2 dargestellt, besteht ein solches Netzwerk aus einer mehr oder weniger großen Anzahl von Knoten, welche die einzelnen Verhaltensweisen symbolisieren. Die Überganswahrscheinlichkeiten zwischen den einzelnen Netzwerkknoten repräsentieren das Persönlichkeitsprofil.

    Abbildung 4.2:
Vom Netzwerk:

Weitere Kostenlose Bücher