Künstliche Intelligenz in Spielen - Seminarausarbeitung Universität Paderborn

Die Seite wird erstellt Hermine Zander
 
WEITER LESEN
Künstliche Intelligenz in Spielen - Seminarausarbeitung Universität Paderborn
Universität Paderborn
                        Fakultät für
          Elektrotechnik, Mathematik und Informatik

       Seminarausarbeitung

Künstliche Intelligenz in Spielen

              Lucas Jillek

               vorgelegt bei
     Prof. Dr. Hans Kleine Büning
Künstliche Intelligenz in Spielen - Seminarausarbeitung Universität Paderborn
Inhaltsverzeichnis

1   Einleitung …………………………………………………………. 1

2   Was ist „Künstliche Intelligenz“ …………………………………    2
    - Allgemeines                                     2
    - Definition                                      2
    - Realisierungsmethoden                           4

3   Anforderungen an die KI ………………………………………..         7
    - Einzelcharaktere vs. Zivilisationen             7
    - Alliierte vs. Gegner                            7
    - Levelbasiert vs. Kartenbasiert                  8
    - Rundenbasiert vs. Echtzeit                      8
    - Teamplay-Möglichkeiten                          9

4   Tamagotchi ………………………………..……………………… 10
    - Allgemeines                                    10
    - Das Hamachi                                    10
    - Interner Aufbau des Hamachi’s                  11

5   Creatures …………………………………..………………………13
    - Allgemeines                                    13
    - Die „Anatomie“ der Norns                       13
    - Agenten und Multi-Agenten                      14

6   Black & White …………………………………………………… 16
    - Allgemeines                                    16
    - Die Kreatur und wie sie lernt                  17
    - Umsetzung der KI                               18
Künstliche Intelligenz in Spielen - Seminarausarbeitung Universität Paderborn
Inhaltsverzeichnis (Fortsetzung)

7    Age Of Empires II – The Age of Kings .......................................... 20
     - Allgemeines                                                                  20
     - KI-Schnittstelle                                                             20
     - Probleme der KI                                                              21

8    Quake III - Arena ..……………………………………………..… 23
     - Allgemeines                                                                  23
     - Architektur der Bot-KI                                                       24

9    Die Zukunft der Spiele-KI ……………………………………….. 26

10   Literaturverzeichnis ……………………………………………… 27
1. Einleitung

In der Projektgruppe KIMAS (Künstliche Intelligenz in Multi-Agenten-Systemen) geht es
darum, unterschiedliche Modifikationen der KI in bestehende Programme (Quake, Halflife)
einzubinden. Allerdings sind diese Spiele nicht die einzigen, in denen Künstliche Intelligenz
verwendet wird.
Einige andere Spiele werde ich hier kurz vorstellen und auch darstellen, wie die Künstliche
Intelligenz dort umgesetzt wurde. Als Beispiele habe ich folgende gewählt:

       - das Tamagotchi
       - Creatures
       - Black & White
       - Age of Empires II
       - Quake III

Ich habe mich für diese Spiele entschieden, da gerade bei „Creatures“ und „Black & White“
die künstliche Intelligenz teilweise durch wissenschaftliche Konzepte implementiert wurden.
Das Tamagotchi ist eines der ersten weltweit erfolgreichen Spielzeuge, bei dem die KI ein
wichtiges Element spielt. „Age of Empires II“ hingegen ist ein Beispiel dafür, wie einfache
Regeln und Skripte verwendet werden, um KI zu simulieren. Das letzte Spiel in der Liste,
„Quake III“, habe ich ausgesucht, da es von der Projektgruppe KIMAS als das Programm
gewählt wurde, auf dem die Projektarbeit aufsetzen wird.
Als erstes werde ich kurz erläutern, was Künstliche Intelligenz eigentlich ist und einige
Möglichkeiten der Realisierung vorstellen. Als nächsten Schritt zeige ich dann, welche
Anforderungen unterschiedliche Typen von Computerspielen oder Spiel-Modi an die KI
stellen. Dabei gehe ich von folgenden Gegenüberstellungen aus:

       - Einzelcharaktere vs. Zivilisationen
       - Alliierte vs. Gegner
       - Levelbasiert vs. Kartenbasiert
       - Rundenbasiert vs. Echtzeit
       - Teamplay-Möglichkeiten

Als letztes werde ich noch ein kurzes Fazit geben, wobei ich mich auch einen Ausblick darauf
geben werde, was in den nächsten Jahren noch für die weitere Entwicklung im Bereich der
Spiele-KI geplant ist.

                                               1
2. Was ist „Künstliche Intelligenz“?

Allgemeines
Künstliche Intelligenz, oder auch kurz KI genannt, ist eine Kombination von verschiedenen
Wissenschaften, etwa Physiologie und Philosophie, aber auch naturwissenschaftlichen
Fachgebieten. Künstliche Intelligenz ist ein sehr breites Thema, dass aus vielen verschiedenen
Teilgebieten besteht. Doch die Gemeinsamkeit, welche die einzelnen Teile verbindet, ist das
Ziel der Erschaffung von Maschinen, die denken können. Aber Intelligenz ist ein Begriff, der
viele Definitionen besitzt. Deshalb gebe ich hier ein paar Definitionen an, und werde dann
daraus schließen, was KI ist und was Maschinen können müssen, um intelligent zu sein.

Definition
Unten stehen acht Definitionen, welche die KI beschreiben, aber nicht alle das Gleiche
aussagen. Die Definitionen in der oberen Hälfte befassen sich mit dem Denkprozess und dem
Denken allgemein, während es sich bei den Unteren um das Verhalten handelt.
Ebenfalls sind die linke und rechte Seite voneinander verschieden. Auf der linken Seite sind
Definitionen von menschlichem Denken und Handeln, wohingegen auf der rechte Seite eher
das Ideal der Intelligenz dargestellt wird, nämlich die Rationalität.

 “The exciting new effort to make computers        “The study of mental faculties through the
 think… machines with minds, in the full and       use of computational models”
 literal sense”                                    (Charniak and McDermott, 1985)
 (Haugeland, 1985)
                                                   “The study of the computations that make
 “The automation of activities that we associate   it possible to perceive, reason and act”
 with human thinking, activities such as           (Winston, 1992)
 decision-making, problem solving, learning…”
 (Bellman1978)

 “The art of creating machines that perform        “A field of study that seeks to explain and
 functions that require intelligence when          emulate intelligent behavior in terms of
 performed by people”                              computational processes”
 (Kurzweil, 1990)                                  (Schalkoff, 1990)

 “The study of how to make computers do            “The branch of computer science that is
 things at which, at the moment, people are        concerned with the automation of
 better”                                           intelligent behavior”
 (Rich and Knight, 1991)                           (Luger and Stubblefield, 1993)

                                               2
Diese acht Definitionen geben uns also vier verschiedene mögliche Auffassungen der
Künstlichen Intelligenz:

Systeme, die menschlich denken                      Systeme, die rational denken

Systeme, die menschlich handeln                     Systeme, die rational handeln

Menschliches Denken
Wenn wir sagen, dass ein gegebenes Programm denkt wie ein Mensch, dann müssen wir
zuerst das Denken des Menschen, oder besser die Art des menschlichen Denkens
herausfinden. Dies können wir indem wir versuchen unsere Gedanken wahrzunehmen und
schauen, wie wir zu diesen Gedanken gelangen.
Eine andere Möglichkeit dies herauszufinden wären z.B. psychologische Tests.
Also ein Computer denkt menschlich, wenn nicht nur der In- und Output gleich sind wie beim
Menschen, sondern auch der Prozess und die Art des Denkens.
Newell und Simon versuchten, mit dem von ihnen entwickelten Programm The General
Problem Solver nicht unbedingt die richtige Lösung zu finden, sondern sie wollten ein
Programm entwickeln, das auf die gleiche Weise denkt wie der Mensch.

Menschliches Handeln : Der Turing Test
Der Turing Test, entwickelt 1950 von Alan Turing und veröffentlicht als Artikel „Computing
Machinery and Intelligence“ in Mind, Vol. 59, No. 236, soll entscheiden ob eine Maschine
intelligent ist oder nicht. Sein Gedanke war: wenn der Mensch nicht mehr unterscheiden kann
ob er mit einem Menschen oder einer Maschine spricht, so ist die Maschine intelligent.
Also ist die Maschine intelligent, falls sie sich verhält wie ein Mensch.
Damit der Computer den Test bestehen kann, muss er folgende Eigenschaften besitzen:
•   Natürliche Sprachverarbeitung:
    Sinnvolle Satze und korrekte Grammatik in Englisch oder sonst einer Sprache
•   Vorausgesetztes Wissen:
    Schon gespeicherte Informationen und Speicherung während dem Prozess
•   Automatische Erinnerung:
    Die gespeicherten Informationen benutzen, um Fragen zu beantworten und
    Schlussfolgerungen zu ziehen
Der Turing Test verlangt jedoch keine physikalischen Interaktionen zwischen dem Benutzer
und dem Computer.

                                                3
Rationales Denken
Der griechische Philosoph Aristoteles war einer der Ersten, der sich mit dem „richtigen
Denken“ befasste. Sein bekannter Syllogismus, der aus korrekten Prämissen korrekte
Schlussfolgerung ergibt, stellt ein Beispiel des rationalen Denkens dar. Diese Art zu denken
basiert auf der Logik. Zum Beispiel:
       Sokrates ist ein Mensch.
       Alle Menschen sind sterblich.
   => Sokrates ist sterblich.

Rationales Handeln
Das rationale Handeln kann man auf die gleiche Weise verstehen wie das rationale Denken.
Man versucht aus einer bestimmten Lage oder Ausgangssituation durch logischen Aufbau des
Handelns und Schlussfolgern dem Ziel Schritt für Schritt näher zu kommen.

Realisierungsmethoden
Es gibt unterschiedliche Ansätze, wie man Künstliche Intelligenz realisieren kann, wovon sich
allerdings noch keiner endgültig als der Beste erwiesen hat. Diese haben alle ihre Vor-, aber
auch ihre Nachteile. Einige dieser Ansätze mit eben diesen Vor- und Nachteilen sind
folgende:

Endliche Automaten
Ein endlicher Automat besteht aus einer Menge von Zuständen und einer Menge von
Übergängen. Der Automat ändert je nach Eingabe seinen Zustand.

                    Abb. 2.1 – Ein einfaches Beispiel für einen endlichen Automaten

                                                  4
Endliche Automaten haben den Vorteil, dass sie in der Regeln vollkommen ausreichend sind
für den größten Teil der Anforderungen, die an die Künstliche Intelligenz gestellt werden.
Außerdem liefern sie meist schnell eine passende Lösung für das vorliegende Problem und die
Ergebnisse sind sehr leicht zu reproduzieren.
Es bringt allerdings auch einige Nachteile mit sich, wenn man endliche Automaten
verwendet. Diese sind etwa, dass das Spiel kaum Abwechslung bietet, da die KI meistens
nach demselben Schema handelt oder sogar auf Irreführungen durch den Spieler immer
wieder hereinfällt. Außerdem legt die KI teilweise sehr binäres Verhalten an den Tag. Das
Verhalten der computergesteuerten Gegner ist bei Steuerung durch endliche Automaten
meistens sehr vorhersehbar.

Neuronale Netze
Künstliche Neuronale Netze orientieren sich an ihrem natürlichen Vorbild, dem Gehirn. Dort
sind die Nervenzellen (Neuronen) in einem dichten Netz miteinander verbunden. Wenn wir
etwas lernen, werden die Verbindungen zwischen Zellen, die für den Lernvorgang nötig sind,
verändert. Durch diese Veränderung sind wir in der Lage, verschiedene Aufgaben zu
bewältigen und Lösungswege zu verallgemeinern. Mit dem Computer lässt sich dieser
Vorgang simulieren.
Künstliche Neuronale Netze ahmen die Eigenart des Gehirns nach, sich durch Lernvorgänge
selbst zu organisieren. Sie können im Prinzip für jede Aufgabe eingesetzt werden, bei der es
darum geht, Zusammenhänge zwischen "unscharfen" Mustern zu erkennen.
Künstliche Neuronale Netze bestehen aus einer Gruppe von Zellen, die in mehreren Schichten
angeordnet sind.

                           Abb. 2.1 – Darstellung eines neuronalen Netzes

Jede Zelle einer Schicht ist komplett mit allen anderen Zellen der folgenden Schicht
verbunden. Je nach Aufgabenstellung beim Training bilden sich manche Verbindungen
stärker, andere schwächer aus. Die Stärke einer Verbindung ergibt dann bei unterschiedlichen
Inputs unterschiedliche Outputs

                                                 5
Genetische Algorithmen
Genetische Algorithmen sind ein heuristisches Lösungsverfahren, welches nach dem Prinzip
der Evolution arbeitet. Die Evolution ist der kontinuierliche Prozess, der seit Anbeginn der
Zeit zum Artenwandel und zur Bildung neuer Arten und Organisationstypen allen Lebens
geführt hat. Es ist ein Optimierungsprozess, dessen Erfolg jedoch nicht quantitativ ist. Die
Erfolge der Evolution drücken sich in „Anpassungsfähigkeit“ und „Überlebensfähigkeit“ aus.
Es ist also keine zielgerichtete Optimierung, sondern ein ständiger Anpassungsprozeß an die
sich ändernden Lebensbedingungen. Ein Kernbegriff der Evolutionstheorie ist das Prinzip
„Survival of the fittest“, welches von Charles Darwin in seinem Klassiker eingeführt wurde.
Nach diesem Prinzip arbeiten die genetischen Algorithmen, indem sie den Evolutionsprozess
simulieren.
Wie in der Natur auch, startet der Evolutionsprozess mit einer Menge von einzelnen
Individuen, der sogenannten Population. Die Individuen sind komplette Lösungen für ein
Optimierungsproblem, die durch die Zuordnung einer Qualität, der sogenannten Fitness,
bewertet werden. Aus den besten dieser Elemente werden im Laufe einer Generation durch
Anwendung der genetischen Operatoren Mutation und Crossover neue Lösungen erzeugt,
welche am Ende der Generation andere Individuen in der Population ersetzen, falls die
Qualität der neu generierten Lösungen besser ist. Der Mutations-Operator kopiert ein
Individuum und führt an der Kopie zufällige Änderungen durch. Der Crossover-Operator
entspricht der Fortpflanzung in der Biologie, d.h. es werden zwei „Eltern“ aus der Population
ausgewählt (selektiert), aus denen ein neues Individuum (Offspring) generiert wird, welches
Eigenschaften von beiden Parent-Individuen erbt. Der Crossover-Operator steuert den
Optimierungsprozess, indem er gezielt gute Lösungen kombiniert, während der
Mutationsoperator die Varianz in der Population erhöht und somit die Konvergenz in ein
lokales Optimum verhindert.

                                              6
3. Anforderungen an die KI

Als nächstes werde ich die Anforderungen, die an die Künstliche Intelligenz gestellt werden,
etwas näher betrachten. Dabei werde ich unterschiedliche Ansätze betrachten:

Einzelcharaktere vs. Gruppen
Bei Einzelcharakteren handelt es sich um einzeln handelnde Charaktere im Spiel, welche
Handlungen ausführen oder Strategien folgen, die nur sie alleine beeinflussen. So sind die
Gegner in einem Quake-Deathmatch alle individuell agierende Einzelcharaktere, da sie nicht
untereinander Strategien austauschen und so handeln, dass ihr eigenes Ziel, möglichst lange
zu überleben und dabei möglichst viele Gegner zu töten, gut erfüllt wird.
Gruppen bestehen aus sehr vielen (oft weit über hundert) Einzelcharakteren, die alle
miteinander kommunizieren und ihre Strategien austauschen und abgleichen können. Alle
diese Einzelcharaktere haben selber wieder Eigenschaften, Funktionen und auch
Einschränkungen. Die Zivilisationen selber haben auch unterschiedliche Eigenschaften und
Funktionen, je nachdem, welche Eigenschaften die einzelnen Einheiten besitzen.
Zivilisationen kommen beispielsweise bei den meisten Echtzeitstrategiespielen wie
„WarCraft“ oder „Age of Empires“ vor, allerdings auch der „Capture the Flag“-Modus bei
„Unreal-Tournament“ ist mit dem Prinzip von Zivilisationen vergleichbar.
Im Gegensatz zu individuell agierenden Einzelcharakteren stellt die Zusammenarbeit der
einzelnen Einheiten in einer Zivilisation einen erheblich größeren Anspruch an die KI des
Spiels, da jede Einheit zwar eigene Funktionen hat, aber diese müssen alle verglichen und
angepasst werden, damit das gemeinsame Ziel auf möglichst effektivem Weg erreicht werden
kann.

Alliierte vs. Gegner
Mit Alliierten, bzw. Gegnern sind in diesem Abschnitt nicht menschliche Mitspieler wie etwa
bei LAN-Parties oder Spielen via Internet gemeint, sondern vom Computer gesteuerte
Parteien.
Ein alliierter Mitspieler ist nahezu die gesamte Spieldauer über vorhanden (es sei denn, er
wird ausgeschaltet), und muss sich eben auch diese ganze Zeit über an die Spielweise des
menschlichen Spielers anpassen, um das Spiel auf möglichst effektive Art zu gewinnen. Der
Computer-Partner muss auch versuchen, Fehler des Spielers wieder gutzumachen. Als
Einsatzmöglichkeiten stehen hier etwa Team-Matches bei den unterschiedlichsten Genres
(etwa „Command & Conquer“, „Quake“,…) zur Verfügung.
Ein computergesteuerter Gegner hingegen muss sich nicht damit beschäftigen, wie er am
besten die Lücken, die der menschliche Spieler lässt, füllen kann und somit zwei Spieler
schützen muss, sondern kann sich ganz auf sich uns seine Sicherheit beschränken, und
natürlich auch nur darauf, dass er selber seine eigenen Möglichkeiten zum Erreichen des
Spielziels nutzen kann. Dabei sollte sich der Gegner natürlich auch auf den Spieler einstellen
können, um dessen Strategien zu erkennen und geeignete Gegenmaßnahmen zu Ergreifen.

                                               7
Dieses Prinzip kommt gerade in Death-Matches gegen computergesteuerte Gegner zum
Tragen.
In beiden Fällen muss sich der Computer zwar auf den Spieler einstellen können, aber beim
Team-Play muss der Alliierte nicht nur die Fehler des menschlichen Spielers erkennen,
sondern auch versuchen diese durch eigenes Handeln zu beheben. Ein Computer-Gegner
sollte diese Fehler nur erkennen und gegebenenfalls ausnutzen können.

vorgefertigte Level vs. zufallsgenerierte Karten
Des Weiteren gibt es bei Spielen auch noch die Unterscheidung in vorgefertigte Level und
zufallsgerierte Karten. Allerdings sind bei einigen Spielen auch beide Varianten vorhanden,
so zum Beispiel bei „Age of Empires“, wo es zum Einen sowohl die Single-Player-Kampagne
als auch einige für den Multi-Player-Modus vorgesehene vorgefertigte Karten gibt. Zum
anderen gibt es aber auch noch für den Multi-Player-Modus einen Kartengenerator, der bei
Spielbeginn nach einigen vom Spieler getroffenen Eingaben eine Karte zufällig erstellt.
Spiele auf vorgefertigten Levels sind weniger komplex als auf zufällig generierten Karten, da
in diese Levels oft schon Pfade oder Wegpunkte für optimale Strategien des Computergegners
eingebaut sind. Allerdings sind auf solchen „Karten“ auch oft noch Elemente integriert, die
Ereignisse ausführen, sobald der Spieler sich einem bestimmten Punkt oder Gegenstand
nähert. Dies hat dann auch beispielsweise zur Folge, dass der Computergegner genau weiß,
wo der Spieler gerade ist, oder dass seine Strategien geändert werden. Als Beispiel möchte ich
hier „WarCraft“ oder „StarCraft“ aufführen. Bei beiden Spielen ist es etwa möglich, mit
einem Editor so genannte Trigger und Triggerevents einzubinden. Dabei kann man dann
beispielsweise dem Computergegner sagen, dass er erst dann angreifen soll, wenn der Spieler
einen dieser Trigger auslöst.
Bei zufallsgenerierten Karten werden noch einige zusätzliche Anforderung an die Künstliche
Intelligenz gestellt, da keine Wegpunkte vorhanden sind, oder es bei einem Strategiespiel mit
Aufbauelement nicht möglich ist, optimale Bauplätze für Gebäude in der Karte zu speichern.
Solche Kartengeneratoren sind beispielsweise bei „Age of Empires“ oder auch „Command &
Conquer - Tiberium Sun“ integriert, allerdings waren diese nur im Mehrspielermodus
verfügbar.

Rundenbasiert vs. Echtzeit
Diese weitere Differentzierung kommt eigentlich nur bei Strategie-Spielen vor: Die
Unterscheidung zwischen Echtzeit und rundenbasiertem Vorgehen.
Bei rundenbasierten Spielen arbeitet die KI alle Bewegungs- und Handlungsmöglichkeiten
sequentiell ab und muss dann entscheiden, welche Möglichkeit sie dem Sieg, bzw. dem
Spielziel am nächsten bringen kann. Die Abfragen können auf langsamen Rechnern zwar
durchaus etwas länger dauern, aber das wirkt sich nicht den weiteren Verlauf des Spiels auf,
nur die Gegner müssen solange Warten, bis die KI sich entschieden hat. Beispiele für solche
Spiele sind etwa die „Ballte Isle“-Serie von Blue Byte oder „Sid Meier’s Civilisation“
Bei Spielen, die in Echtzeit ablaufen bewegen sich alle Einheiten gleichzeitig, und der Spieler
muss nicht erst den Zug des Gegners abwarten, um dann darauf zu reagieren. Bei langsameren
Maschinen kann es da manchmal zu Problemen kommen, da die KI dann nach Ablauf einer

                                              8
bestimmten Zeit einen „besten Zug“ bereitstellen muss. Echtzeit-Spiele sind etwa: „Age of
Empires“, „Quake“ oder auch „Need for Speed“.
Die Anforderungen an die KI sind bei beiden Varianten etwa gleich hoch. Der Unterschied
liegt allerdings in der Anforderung an die Gesamtimplementierung und auch an die
Rechenleistung.

Teamplay-Möglichkeiten
Wie weiter oben im Abschnitt „Alliierte vs. Gegner“ erwähnt, kann man sich auch bei einigen
Spielen mit vom Computer gesteuerten Spielern verbünden, bzw. man trifft Absprachen:
Zum einen gibt es die Möglichkeit, sich auf ein friedliches Nebeneinander zu einigen. Das
heißt, dass man seinen „Verbündeten“ nicht angreift, aber es geht nicht so weit, dass man ihm
in Krisensituationen auch helfen muss.
Als nächst höhere Vereinbarung steht dann das Verfolgen eines gemeinsamen Ziels, was
bedeutet, dass man sich verbündet, um etwa gemeinsam gegen andere Gegner vorzugehen.
Dabei helfen sich die einzelnen Partner eines Bündnisses dann schon etwas mehr,
beispielsweise indem sie einander den Rücken decken.
Als weitreichenste Absprache kommt dann noch die Koordination gemeinsamer Aktionen
hinzu. Dabei haben alle Partner einer Allianz Zugriff auf die Ressourcen und es werden an die
einzelnen Partner Aufgaben verteilt. Dazu ist eine sehr enge Absprache unter den Partnern
nötig.
Alle diese Möglichkeiten haben gemeinsam, dass sie sehr hohe Anforderungen an die KI
stellen.

                                              9
4. Tamagotchi

Allgemeines
Das von Maita Aki entworfene und von Spielzeughersteller Bandai 1996 auf den japanischen
Markt gebrachte Elektronikei beruht auf dem Prozess der Erziehung. Hier muss der Spieler
die Befindlichkeit des heranwachsenden Cyberkükens auf den Skalen für Gewicht, Hunger,
Disziplin oder Zufriedenheit ablesen und entsprechend füttern, säubern, spielen, Medikamente
verabreichen, das Licht vor dem Schlafen ausschalten und schimpfen, wenn es grundlos
piepst oder nicht essen will.
In allen elektronischen Spielen tickt eine Uhr. Im Tamagotchi läuft sie anfangs synchron zur
Lebenszeit des Spielers. Zwischen morgens neun und abends zehn ist der Zögling wach und
verlangt immer wieder piepsend Aufmerksamkeit und Pflege. Resultat des Erziehungsspiels
ist entweder ein fröhliches, gesundes, langlebiges Tamagotchi oder ein egoistisches,
übergewichtiges, kränkelndes, wobei diese beiden Beispiele nur die Extrema darstellen. Die
wichtigste Lektion dieses Erziehungsspiels: Die Lebenszeit der Kreatur - bei guter
Behandlung bis zu dreißig Tage - läuft unaufhaltsam ab und endet mit dem Tod.
Das Tamagotchi wurde in nur kurzer Zeit zu einem weltweiten Erfolg, woraufhin zahlreiche
Kopien, bzw. Varianten entstanden. Darunter waren Module für den Gameboy oder Java-
Applets. Eines dieser Applets ist das „Hamachi, das ich im Folgenden etwas genauer
betrachten werde:

Das Hamachi
Dieses Java-Applet ist eine Tamagotchi-Variante. Im Gegensatz zu ihren berühmten
Geschwistern ist hier jedoch ein Hamster das zu umsorgende Objekt. Das Handling gestaltet
sich recht simpel:

                            Auswahl       ausführen      Auswahl aufheben
                               Abb. 4.1 – Das Hamachi (Screenshot)

                                               10
Wie in Abbildung 4.1 auf der vorherigen Seite zu sehen, gibt es drei Knöpfe: A, B und C.
Durch anklicken von Knopf „A“ kann der Spieler verschiedene Aktionen auswählen,
woraufhin diese im Fenster markiert werden. Knopf „B“ bewirkt, dass die Aktion dann
ausgeführt wird. Mit Knopf „C“ kann der Spieler die Aktionsauswahl wieder beenden. Sollte
keine Aktion angewählt sein, so wird durch betätigen des „B“-Knopfes eine Uhr eingeblendet.
Wie weiter oben erwähnt, können durch den „A“-Knopf unterschiedliche Aktionen
ausgewählt werden. Diese Aktionen sind:

       -   Food:      Fütterung des Hamsters
       -   Lights:    ein- und ausschalten der Käfigbeleuchtung
       -   Play:      mit dem Hamster spielen
       -   Clean:     säubern des Käfigs
       -   Status:    Aufruf der Statusinformationen wie Alter, Gewicht, etc.
       -   Attention: Dieses Symbol leuchtet auf, wenn der Hamster etwas
                      bestimmtes benötigt

Interner Aufbau des Hamachi's
Das Hamachi basiert auf nicht, wie man vielleicht meinen könnte, auf Zufallselementen.
Durch die mit der Zeit zunehmende Komplexität ist es schlichtweg unmöglich alle Variablen
zu überblicken. Das hat einen Eindruck von Zufälligkeit oder sogar Leben, bzw. Intelligenz
zur Folge.
Das Tierchen orientiert sich an der Uhrzeit. Nach einer gewissen Zeit verspürt es Hunger, will
spielen, schlafen, etc. Wird ihm zur richtigen Zeit gegeben, wonach es verlangt (innerhalb
200-4000ms), so steigt die Lebenserwartung. Doch sie ist beschränkt auf ein Maximum
(MaxAge = 24 /*months*/).
Die Hauptklasse „Hamachi.class“ managed all diese Aktionen. Es werden beispielsweise auch
alle Aufrufe der Knöpfe abgefangen und bearbeitet. Von dieser Klasse aus werden auch die
anderen Klassen, etwa „Clock.class“ oder „AnimScreen.class“ aufgerufen. Durch die
Clock.class wird die interne Uhr des Programms gesteuert. Die AnimScreen.class kümmert
sich um die grafische Darstellung, wobei die Klasse Sprites aufgerufen wird, in der die
einzelnen Bewegungsphasen des Hamsters berechnet werden. Als eine weitere wichtige
Klasse, die durch die „Hamachi.class“ aufgerufen wird, ist die „Hamster.class“. In dieser sind
Methoden enthalten, die sich mit dem Status des Hamsters befassen, und auch eine
Überprüfung, wie alt der Hamster ist und auch ob er tot ist oder nicht.
Das Diagramm auf der folgenden Seite ist nicht die vollständige Darstellung des Programms.
Einige Methoden wurden aus Übersichtsgründen zusammengefasst, aber die wichtigsten im
vorherigen Absatz erwähnten Methoden sind enthalten:

                                               11
Class Hamachi                                                                   Class Clock
                         reset               Handle
                         Game                Death
   Init                                                     clock
                                                                                          run              stop

                 start

                                     update
                                                                                                clock
                                                                          run
               stop

                                                                                   draw
                                                      Animations
handleDeath                      Buttons

Class AnimScreen                                          Class Hamster

                                                                                Hamster
                         reset

                                                                    age

                                     paint
    addSprites
                                                                                update

Class Sprites                                                                                     states
                                                                    checkDead

      sprite     run              paint

                                      Abb. 4.2 – Programmaufbau des Hamachi

                                                          12
5. Creatures

Allgemeines
Ebenfalls 1996, nur kurz nachdem das Tamagotchi die Welt erobert hatte, erschien das von
„CyberLife Technology Ltd“ und „Millennium Interactive Ltd“ entwickelte PC-Spiel
„Creatures“. In diesem Spiel ging es darum, kleine, niedliche Wesen namens Norns
aufzuziehen und ihnen die unterschiedlichsten Dinge beizubringen. Das Spielprinzip war zwar
das gleiche wie bei den Tamagotchis, aber Creatures brachte noch einige Neuerungen mit:
Beispielsweise konnte man seinen Schützlingen das Sprechen beibringen, oder man konnte
die Norns auch dazu bringen, sich fortzupflanzen.

             Abb. 5.1 – Ein junges Norn-Weibchen in der Welt von „Creatures“ (Screenshot)

Bei Creatures werden sowohl genetische Algorithmen wie auch Neuronale Netze verwendet.
Neuronale Netze werden etwa für das Lernverhalten der Norns verwendet: Wenn der Spieler
beispielsweise Ball sagt, während ein Norn mit einem Ball spielt, besteht die Möglichkeit,
dass der Norn lernt, wie das Objekt heißt. Je öfter der Spieler diese Aktion wiederholt, desto
wahrscheinlicher ist es, dass der Norn das Wort erlernt. Die Norns lernen aber auch, wenn sie
dem Spieler, bzw. dem Cursor, welcher den Spieler darstellt, bei Aktionen beobachten, etwa
wenn der Spieler auf einen Knopf für einen Fahrstuhl drückt, um diesen zu rufen oder um
damit nach oben oder unten zu fahren.
Anhand einer ähnlichen Funktion wie genetischen Algorithmen wird im Spiel die
evolutionäre Weiterentwicklung der Norns realisiert. Aus den einzelnen Sequenzen an
„Erbinformation“ der beiden Elternteile werden durch einen Algorithmus die besten Anteile
herausgesucht und anschließend mutiert. Dabei kommt es aber nicht zu irgendwelchen
Missbildungen, alle neuen Norns werden gesund in die Welt gesetzt.

Die „Anatomie“ der Norns
Das Nervensystem der Norns besteht aus mehr als 1.000 Neuronen. Des weiteren ist das
Gehirn der Norns aus zehn verschiedenen (Hirn-)Lappen zusammengesetzt: perception, drive,
stimulation-sources, verb, noun, general sense, decision, attention, concept und regular lobe.

                                                 13
Abb. 5.2 – Das Gehirn eines Norns (Screenshot aus Creatures (1. Teil))

Diese Regionen des Gehirns werden durch unterschiedliche Inputs aktiviert. Als Reaktion
wird dann eine Output-Aktion generiert, die je nachdem welche Regionen angesprochen
wurden, anders ausfallen kann. Etwa wenn ein Norn eine Blume sieht, wird sein
Wahrnehmungs-Bereich stimuliert, woraufhin der Norn zur Blume hingeht und an ihr
schnuppert. Es kann aber auch sein, dass der Norn, sobald er die Blume sieht, auch auf sie zu
geht und diese dann frisst. Welche dieser Aktionen durchgeführt wird, wird immer nach der
Situation und dem Befinden des Norns in dem Konzept-Raum seines Gehirns entschieden.
Somit kann man sagen, dass die Handlungen eines Norns immer nach demselben Schema
ablaufen:
                               Stimulus –> Konzept –> Aktion
Die sprachlichen Fähigkeiten eines Norns basieren auf einem Vokabular von etwa 80 Worten.
Jeder Norn ist vollständig individuell, hat seine eigene Persönlichkeit, womöglich seinen
eigenen, persönlichen Wortschatz, und auch seine eigenen Verhaltensmuster. Dies ist der Fall,
da die einzelnen Norns nicht explizit programmiert sind, sonder sich durch ihre Handlungen
weiterentwickeln.

Agenten und Multi-Agenten
Autonome Agenten haben Ziele, Wahrnehmungen und “Bedürfnisse”, und sie können auch
handeln. Solche Sinnes- und Gefühlswahrnehmungen und auch das Handeln stehen bei
Creatures im Vordergrund, allerdings ist kein Spielziel vorhanden, sondern der Spieler
überwacht nur die Norns und unterrichtet sie. Es gibt kein globales Ziel. Ebensowenig haben
die Norns selber ein Ziel, das sie erreichen wollen. Ihnen fehlt der Überlebenssinn. Des
Weiteren fehlen auch vorgegebene Verhaltensmuster, außer einigen wenigen grundsätzlichen
wie etwa Schlaf, essen,… Kurzfristige Ziele können jederzeit gewählt oder fallengelassen
werden. Daher scheint das Verhalten der Norns bis zu einem gewissen Grad adaptiv zu sein.
Das heißt, dass dem Spieler die Illusion vermittelt wird, dass die Norns sich auf ihre Umwelt
vollständig einstellen können und je nachdem, mit was sie gerade konfrontiert werden, sie
damit auch zu Recht kommen.
Alexander Nareyek von der Carnegie Mellon University hat in seinem Buch "Excalibur:
adaptive constraint-based agents in artificial environments“ eine Einteilung für Agenten
entwickelt. Diese beinhaltet „Reactive-Agents“ (sie folgen simplen „wenn – dann“ Regeln),
„Triggering-Agents“ (sie haben interne Zustände und Langzeit-Aufgaben), „Deliberative-
Agents“ (welche ein internes Planungssystem haben) „Hybrid-Agents“ und „Anytime-

                                                  14
Agents“ (welche alle Möglichkeiten von Reaktionen bis hin zu Planung haben). Nach diesen
Klassifizierungen kann man die Norns als „Triggering-Agents“ bezeichnen, da sie mehrere
interne Konzepte zur selben Zeit bilden können.
Creatures ist ein Multi-Agenten-System. Abhängig von der verwendeten Version, können in
der virtuellen Welt 8 bis 12 Norns existieren (sollte die maximale Zahl an Norns erreicht sein,
so stoppt das Programm einfach die Möglichkeit der Reproduktion). Die Norns sind zwar in
der Lage, miteinander zu spielen, sich zu mögen, oder auch nicht, oder sogar Partnerschaften
zu gründen. Sie sind auch nicht in der Lage, Probleme gemeinsam zu lösen oder auf
gemeinsames Wissen zurückzugreifen.
Die Norns bei Creatures sind nur in gewisser Weise autonom handelnden Wesen. Wenn der
Spieler seine Schützlinge unbeaufsichtigt lässt, so werden sie alle in nur sehr kurzer Zeit
sterben. Sie sind sehr auf ihren menschlichen „Beschützer“ angewiesen. Norns haben zwar
ein eigenes, persönliches Verhalten was äußere Aktionen betrifft, sie haben sogar ihr eigenes
Lexikon. Sie sind aber nicht in der Lage, kooperativ zu handeln. Nicht einmal eine
verminderte Zwei-Wege-Kooperation zwischen Spieler und Norn verbessert ihre Fähigkeiten
in diesem Bereich.

                                              15
6. Black & White

Allgemeines
Mit “Black & White” gelang es den Lionhead-Studios unter der Leitung von Peter Molyneux,
das Spielprinzip von Creatures neu aufzulegen und sowohl graphisch als auch spieltechnisch
zu verbessern. Mit diesem Spiel wurde in gewisser Weise ein Spielgenre, das Molyneux vor
einigen Jahren mit Spielen wie Populous erfunden hatte wieder neu aufgelegt: Das so
genannte „God-Game“.

         Abb. 6.1 – ein Blick auf die Welt von „Black & White“ (Screenshot aus „Black & White“)

Bei „Black & White“ übernimmt der Spieler die Rolle eines Gottes, der über verschieden
Welten die Herrschaft übernimmt. Dabei steht ihm eine Kreatur zur Seite, die er sich am
Anfang des Spiels aussuchen kann. Diese Kreatur ist im Spielverlauf als eine Art Handlanger
des Spielers zu sehen.
Der Spieler entscheidet selber durch seine Taten und sein Handeln, ob er „Gut“ oder „Böse“
ist. Wenn er beispielsweise seinen Untertanen immer hilft, so wird er sich zur guten Seite hin
entwickeln, wo hingegen ein Spieler, der seine Untertanen ständig quält sich eher zur bösen
Seite hin entwickelt. Je nachdem, auf welcher Seite der Spieler steht, wird sich auch die Welt
und seine Kreatur verändern: ein guter Spieler wird in einer hellen, freundlichen Welt mit
einer ebenso hellen, freundlichen Kreatur spielen, wo hingegen ein böse Spieler mit einer
dunklen, fast feindseligen Atmosphäre „belohnt“ wird.

                                                  16
Die Kreatur und wie sie lernt
Wie bereites erwähnt stellt die Kreatur den verlängerten Arm des Spielers dar. Man kann mit
ihr gegnerische Dörfer einnehmen oder sie dazu bewegen, eigene Dörfer weiter aufzubauen.

                     Abb. 6.2 – Der Affe, eine der Kreaturen aus „Black & White“

Die Kreatur hat fast alle Möglichkeiten, die auch der Spieler selber hat, man muss sie ihr nur
beibringen. Sie besitzt ein eigenes Ego und kann auch sich selbst überlassen werden. Der
Spieler kann sie auch gegen andere Kreaturen kämpfen lassen oder ihr Zaubersprüche
beibringen.
Dem Spieler stehen mehrere Möglichkeiten, wie er seine Kreatur unterrichten will, zur
Verfügung:

Anti-autoritär
Bei dieser Art der Erziehung lässt der Spieler die Kreatur einfach das machen, was sie will. Er
kümmert sich einfach nicht um sie. Daraufhin wird die Kreatur alles alleine ausprobieren und
entscheidet dann anhand der Auswirkungen, ob es ihr Spaß macht oder ob es ihr etwa schadet.
Dinge ihr nicht gefallen oder schaden wird sie dann zukünftig nicht mehr tun. Diese Art der
Entwicklung ist allerdings sehr langwierig und kann für den Spieler im späteren Verlauf sogar
hinderlich sein. So kann die Kreatur etwa „gelernt“ haben, dass es ihr gut tut, sich schlafen zu
legen, auch wenn sie gar nicht müde ist. Das kann dann den Spieler vor ein Problem stellen,
wenn sich die Kreatur nicht mehr dazu bewegen lässt, den Gegner anzugreifen, wenn diese
lieber schlafen will.

Belohnung/Bestrafung
Die zweite Variante basiert auf dem Prinzip der Belohnung, bzw. der Bestrafung. So gibt der
Spieler seiner Kreatur etwas in die Hände, und wartet ab, was diese damit macht. Entspricht
diese Handlung der Vorstellung des Spielers, so kann er ihr eine Belohnung in Form von
Streicheleinheiten geben. Andererseits kann der Spieler die Kreatur aber auch durch Schläge

                                                 17
bestrafen, wenn sie etwas getan hat, was diesem nicht gefällt. Die Belohnung, bzw.
Bestrafung muss nur unmittelbar nach der Tat erfolgen, damit die Kreatur lernt, was sie darf
und was nicht.

Durch Zusehen
Als letztes kann der Spieler seine Kreatur unterrichten, indem er sie zusehen lässt, was er
selber macht. Wenn er beispielsweise einen Zauber spricht oder ein Wunder wirkt, und die
Kreatur schaut ihm dabei zu, so besteht die Möglichkeit, dass die Kreatur sich merkt, wie
dieser Zauber funktioniert und diesen dann auch versucht zu sprechen. Aber sie lernt nicht
nur, indem sie dem Spieler bei seinen Handlungen zusieht, sondern auch wenn sie anderen
Kreaturen zusieht, wie sie handeln.

Umsetzung der KI
Bei der Umsetzung der künstlichen Intelligenz bei „Black & White“ wurden mehrere
unterschiedliche Konzepte verwendet:

       -   „Belief desire intention“ – Architekturen
       -   Supervised und unsupervised learning
       -   Reinforcement learning
       -   Lernen durch Entscheidungsbäume
       -   Neuronale Netze

Wie schon erwähnt lernt die Kreatur anhand eines Feedback-Prinzips. Sie lernt also, indem sie
etwas tut und dann eine Bewertung der Handlung vornimmt, bzw. eine Bestrafung oder
Belohnung dafür erhält. Aufgrund dieses Prinzips wird die Kreatur im späteren Spielverlauf
keine zufälligen Handlungen ausführen. Anfangs, gerade wenn der Spieler sich für die Anti-
autoritäre Erziehung entschieden hat, wird die Kreatur natürlich noch sehr willkürlich
handeln, aber nur, da sie ja noch keine Erfahrungen gesammelt hat und somit erst noch lernen
muss. Dieses Prinzip wurde zum einen mit Hilfe von „belief desire intension“-Architekturen,
aber vor allem auch durch „reinforcement learning“ realisiert.
Die Kreatur hat auch kein globales Wissen von der Welt in „Black & White“, sondern ihr
wissen beschränkt sich einzig und allein auf ihre direkte Wahrnehmung. Um dieses Wissen in
„Black & White“ zu repräsentieren wurden keine einheitlichen Datenstrukturen verwendet,
sondern vielmehr für verschienen Bereiche auch unterschiedliche Strukturen verwendet.
So werden beispielsweise einige Überzeugungen der Kreatur symbolisch durch Attribut-
Werte-Paare dargestellt, oder etwa Überzeugungen über verschiedene Typen von Objekten
durch Entscheidungsbäume repräsentiert.
Das Verlangen der Kreatur wird hingegen mit neuronalen Netzen verwirklicht.

                                              18
Lernbeispiel
Im Folgenden werde ich ein Beispiel von der Internet-Seite „Reinforcement learning for
artificial creatures“ zeigen. Auf dieser Seite haben die Autoren beschrieben, wie sie einer
Kreatur aus „Black & White“ beigebracht haben, Steine auf ein gegnerisches Haus zu werfen.
Ich stelle hier die erste Lektion vor, die etwa 10 Minuten gedauert hat. Dabei hat der Tiger
gelernt den Ball zu „kicken“, sowie den Teddy mit dem Ball zu bewerfen:

The basics of throwing objects                                                  10 minutes
Starting conditions: Untrained creature in the creature pen
Our action (creature’s action)            Comment                               Reinforcement
The creature went out of the pen
The creature scattered its toys (beach
ball and teddy bear) around
The creature ate 2 white (psychedelic) Unknown
mushrooms
The creature walked up to the beach ball First real kick. The creature
and kicked it                             pointed to the ball
The creature picked up the teddy bear
and then put it back on the ground
The creature went to the ball, picked it
up and brought it back to the pen
The creature picked up the bear and
stroked it
The creature picked up the beach ball     The first aimed throw                 +70%
and threw it at the bear
The creature kicked the ball twice
The creature placed the bear standing on The bear was knocked down.             +70%
the ground and then threw a ball at the Impressive.
bear
The creature picked up the teddy bear
and while holding it, kicked the ball for
a while
The creature put the bear on the ground The creature learned to throw the       +30%
and threw the ball at it again            ball at the bear
Result of the session:

   1. The creature learned to throw the beach ball at teddy bear
   2. The creature learned to kick the ball

                        Tab. 6.1 – Lesson 1 – The Basics of throwing objects
                        (von Reinforcement learning for artificial creatures)

                                                19
7. Age of Empires II – The Age of Kings

Allgemeines
Eine weitere Gattung von Computerspielen, bei der die KI eine recht wichtige Rolle spielt,
sind die Strategiespiele. Eines dieser Spiele, das Echtzeit-Strategiespiel „Age of Empires II-
The Age of Kings“ werde ich an dieser Stelle etwas näher betrachten.

                    Abb. 7.1 – Screenshot aus Age of Empires II – The Age of Kings

Das von den Ensembly Studios entwickelt und 1999 von Microsoft veröffentlichte Spiel ist in
der Zeit des Mittelalters angesiedelt. Der Spieler muss in mehreren Kampagnen auf der Seite
von verschiedenen Nationen eine funktionierende Siedlung aufbauen und gegen seine Gegner
in den Krieg ziehen. Dabei werden auch immer wieder historische Persönlichkeiten, sowie
auch einige historische Schlachten oder Begebenheiten in die Kampagnen integriert.

KI-Schnittstelle
Die Künstliche Intelligenz von „Age of Empires II“ basiert auf einfachen Regeln, die
dauerhaft ausgeführt werden. Die Grundregeln dafür sehen etwa wie folgt aus:

 (defrule
         (wood-amount >= 1000)
         (food-amount >= 1000)
 =>
         (chat-to-all “I’ve got wood and food”)
         (disable-self)
 )

                                                 20
Der erste Teil einer Regel ist immer eine Liste von Fakten (oder auch nur ein einzelnes
Faktum), die alle getestet werden, ob sie erfüllt sind oder nicht. Sollten alle Fakten zutreffen,
dann werden die Aktionen ausgeführt. Die Regeln werden also nach einem simplen „wenn –
dann“-Verfahren durchgeführt.
Es ist möglich, diese Regeln durch den Eintrag (DISABLE-SELF) nach einem einzigen
Durchlauf zu beenden. Wenn dieser Eintrag allerdings nicht gesetzt ist, so wird die Regel
solange immer wieder ausgeführt, bis eine der Fakten nicht mehr zutreffend ist:

 ;make the castle
 (defrule
         (goal castle-attempt NO)
         (current-age == imperial-age)
         (stone-amount > 400)
         (nor
                 (goal wonder-attempt POSSIBLE)
                 (goal wonder-attempt YES)
         )
 =>
         (set-goal castle-attempt YES)
         (chat-to-all “I will build a castle”)
 )

Im diesem Beispiel ist der (DISABLE-SELF)-Eintrag nicht nötig, da eine Ausführung der
Aktion eine der Fakten verändert und somit die Fakten nicht mehr alle zutreffen.
Des Weiteren werden noch Konstanten benutzt, die zur Festlegung einiger globaler Parameter
der KI dienen. Es gibt auch noch Variablen, die etwa bei den Abfragen der Fakten in den
Regeln benutzt werden. Als letztes wären noch die drei Arten von Parametern zu nennen:
normale, Wildcard und Line-Parameter.
- Normale Parameter können einen Wert aus einer Werteliste annehmen (z.B. für
“building“:“barracks“)
- Wildcard-Parameter hingegen repräsentieren eine bestimmte Auswahl an Parametern (z.B.
“every-ally“ beinhaltet alle Verbündeten)
- die Line-Parameter werden vor allem bei der Produktion von Einheiten benutzt: Aus einer
Reihe von Einheiten (z.B. Ritter, Chevalier, Paladin) wird bei dem Aufruf (train knight-line)
die beste zur Verfügung stehende Einheit gewählt und anschließend gebaut.

Probleme der KI
Die deutlichsten Probleme der KI bei „Age of Empires II“ sind beispielsweise bei der
Wegfindung und bei der Intelligenz der Dorfbewohner zu finden.
Was die Wegfindung angeht, so besteht das Problem darin, dass die Einheiten immer wieder
an Hindernissen nicht vorbeikommen. Die Einheiten geraten auf ihrem Weg zu dem
vorgegeben Zielpunkt an eine Mauer oder an einen unüberwindlichen Fluss und versuchen an

                                                21
diesem dann einen Weg um das Hindernis herum zu finden. Dabei kommt es dann allerdings
oft dazu, dass die Einheiten in einer Sackgasse landen:

                               Abb. 7.2 – Beispiel für eine Sackgasse

Ein weiteres Problem stellt die Intelligenz, bzw. das Fehlen der Intelligenz der Dorfbewohner,
die die Arbeiter darstellen, dar. Das zeigt sich vor allem dann, wenn ein Dorfbewohner eine
Aufgabe erfüllt hat nicht von sich aus damit beginnt, Rohstoffe, die in seiner direkten
Umgebung vorhanden sind, zu sammeln.
Einig eher spezifische KI-Probleme in „Age of Empires II“ sind in der Einheitenauswahl und
der Trennung der taktischen und der strategischen KI zu finden.
Es ist der KI nicht möglich, einzelnen Einheiten spezielle Befehle zu geben, wobei die
Arbeiter eine Ausnahme darstellen, aber ihre Befehle spiegeln nur einige Skripte wieder.
Aufgrund dieser Tatsche ist es der KI auch nicht möglich, mit den Einheiten einen gezielten
Angriff auf eine einzelne Einheit oder ein einzelnes Gebäude zu führen. Die KI greift immer
unterschiedliche Ziele an, beispielsweise bei feindlichen Einheiten konzentrieren sich die
Angriffe der KI nicht auf eine einzelne Einheit, sondern verteilen sich auf die gesamte
Feindgruppe.
Die taktische KI bei „Age of Empires II“ kümmert sich um die Steuerung wie etwas gemacht
wird. Sie erstellt Wegpläne, macht Angriffe, und sucht Bauplätze aus. Die strategische KI
hingegen steuert das, was dann schließlich auch wirklich gemacht wird, also sie entscheidet
welche Gebäude gebaut werden, welche Einheiten produziert werden, oder auch, welche
Einheiten sich von Punkt A nach Punkt B bewegen sollen.
Das Problem dabei ist aber, dass in keinem der beiden KI-Typen Regeln zur Verteidigung der
Basis enthalten sind, sondern nur solche Regeln wie etwa „attack-now“, „build barracks“ oder
ähnliches. Somit ist die KI beispielsweise nicht ohne eine Erweiterung in der Lage, einen
Belagerungs-Zustand lange zu überstehen, da dabei ja die Verteidigung an oberster Stelle
steht.

                                                22
8. Quake III – Arena

Allgemeines
Als letztes Spiel möchte ich „Quake III – Arena“ vorstellen. Es wurde 1999 als dritter Teil der
von id-Software entwickelten 3D-Egoshoter-Reihe Quake veröffentlicht. Das Spielprinzip
hatte sich kaum verändert: der Spieler musste wie bei den beiden Vorgängern auch durch
unterschiedliche Levels laufen und dabei Gegner abschießen. Allerdings hatten die Vorgänger
noch eine lineare Storyline, die bei Quake III fehlte. Hier bestand das Spielziel darin, in den
Levels, die wie der Untertitel verrät Arenen unterschiedlichster Art waren, gegen eine Anzahl
computergesteuerter Bots, oder im Multi-Player-Modus gegen andere menschliche Spieler zu
kämpfen.

                                Abb. 8.1 – Screenshot aus Quake III

Zu diesem Spiel sind im Laufe der Zeit einige Modifizierte Spielmodi hinzugekommen,
teilweise wurden sie von offizieller Seite her entwickelt, aber auch sehr viele dieser Mods
wurden von Fans programmiert.
Auch die Projektgruppe KIMAS hat beschlossen, auf dieses Spiel ihre Projektarbeit
aufzusetzen. Dazu soll zum Einen eine Möglichkeit des Baus von Objekten, etwa Wänden
oder Bunkern, zum Anderen aber auch eine erweiterte KI der Bots im Spielmodus „Capture
the Flag“ integriert werden. Im Rahmen dieser Ausarbeitung ist allerdings nur letzteres
interessant.
Um die künstliche Intelligenz der Bots verändern zu können, muss man allerdings zuerst
einmal wissen, wie sie aufgebaut ist:

                                                23
Architektur der Bot-KI
Die künstliche Intelligenz der Bots bei Quake III ist in vier verschiedene Schichten aufgebaut.
Dabei werden die Ziele und Routinen der niedrigeren Schichten durch die der höheren
teilweise überschrieben So hat die sogenannte „Team Leader“-Schicht die Möglichkeit, die
Zeile der „einfachen“ Bots vorübergehend zu ändern, damit das Team-Ziel erreicht werden
kann. Im Einzelnen handelt es bei diesen Schichten um:

1             Area Awareness System                                       Basic Actions

2       Fuzzy          Character              Goals            Navigation            Chat

3      Miscellaneous AI               Network AI                           Commands

4                                       Team Leader AI

                              Tab. 8.1 – Botarchitektur von „Quake III“

1. Schicht:
    In dieser Schicht befindet sich das sogenannte „Area Awareness System“, kurz AAS.
    Dieses gilt als Input der Bots. Es versorgt die Bots mit allen wichtigen Informationen der
    Umgebung, etwa über Navigation, Routing und Entities. Diese Informationen sind
    formatiert und vorausberechnet. Das Herzstück des AAS ist eine 3D Repräsentation der
    Welt (aas Dateien).
    Des Weiteren sind in dieser Schicht noch die „Basic Actions“ zu finden. Hier werden die
    entsprechenden Bewegungen ausgewählt und dann ans Spiel geschickt. Somit bildet
    dieser Bereich den Output der Bots.

2. Schicht:
    Diese Schicht kümmert sich um einige Entscheidungen, welche die KI zu treffen hat. So
    sind hier beispielweise die einfachsten und grundlegendsten Ziele der Bots enthalten. Die
    KI entscheidet hier, wie sie weiter vorgeht, um diese Ziele zu erreichen.
    Zusätzlich sind in dieser Schicht noch die Navigationsroutinen und ein Bereich zur
    Erstellung von Chat-Messages enthalten.

                                                 24
3. Schicht:
   Hier ist neben einigen unterschiedlichen KI-Routinen (Miscellaneous-AI) auch noch die
   eigentliche KI der Bots enthalten. Das AI-Network bildet das Gehirn der Bots. Hier
   werden sämtliche Entscheidungen, die den Bot und sein weiteres Vorgehen betreffen
   berechnet. Dies wird ähnlich wie bei endlichen Automaten geregelt.
   Außerdem ist hier noch der Bereich „Commands“ enthalten. Dieser wird benötigt, damit
   die Kommunikation der Bot untereinander funktioniert.

4. Schicht:
   In dieser Schicht befindet sich die sogenannte „Team Leader AI“. Dabei handelt es sich
   um die KI-Routinen des Teamleader-Bots. Dieser muss die Handlungen der anderen Bots
   seines Teams koordinieren. Dazu stehen ihm alle Möglichkeiten der unteren Schichte zur
   Verfügung, aber seine Fähigkeiten werden in dieser Schicht erweitert. So kann er
   beispielsweise den anderen Team-Bots Befehle geben, und somit ihre eigenen Ziele
   vorübergehend außer Kraft setzen, sofern sie hinderlich bei der Ausführung der Pläne des
   Leader-Bots sind.

                                            25
9. Die Zukunft der Spiele-KI

Insgesamt lässt sich sagen, dass man bei den wenigsten Spielen von künstlicher Intelligenz
sprechen kann. Bei den meisten Spielen ist lediglich eine Simulation von verschiedenen
Situationen enthalten, die dann nach vorgegebenen Skripten und Regeln abgearbeitet werden.
Die beiden einzigen von mir in dieser Ausarbeitung vorgestellten Spiele, bei denen auch
wissenschaftliche Methoden der KI-Implementierung verwendet wurden, sind „Creatures“
und „Black & White“. Bei „Creatures“ wurden allerdings teilweise modifizierte Methoden
verwendet, die aber noch auf den wissenschaftlichen Ansätzen aufbauen. Bei „Black &
White“ hingegen wurden tatsächlich auch rein wissenschaftliche Methoden verwendet.
Man kann also sagen, dass die Anwendung von künstlicher Intelligenz in Computerspielen
noch in den Kinderschuhen steckt. Um dem entgegenzuwirken hat die Spielentwickler-
Vereinigung IGDA (International Game Developers Association) ein Komitee zur
Entwicklung von Programmierschnittstellen für KI ins Leben gerufen. Diese Schnittstellen
sollen es den Spielentwicklern erleichtern, die Intelligenz, Eigenständigkeit und
Glaubwürdigkeit der künstlichen Charaktere in ihren Spielen zu verbessern.
Zu den Mitgliedern der IGDA zählen unter anderen KI-Entwickler und Wissenschaftler von
verschiedenen Universitäten, zum Beispiel „Southern California University“ oder „Liverpool
John Moores University“, aber auch von Softwarefirmen wie etwa LucasArts Entertainment
oder den Ensembly Studios.
Alexander Nareyek, der Vorsitzende des "Artificial Intelligence Interface Standards
Committee", erklärte dazu: "Der nächste qualitative Sprung für die künstliche Intelligenz wird
von angemessenen Schnittstellen für selbst entwickelte und externe KI-Tools und -Middleware
abhängen. Die Arbeit des Komitees soll KI-Entwicklern die Bürde nehmen, sich über Low-
Level-Prozeduren Gedanken zu machen, sie wird es ihnen ermöglichen, sich auf höherstufige,
kreative KI-Aufgaben zu konzentrieren."
Einige dieser zu entwickelnden Schnittstellenstandards sollen beispielsweise Bereiche wie
Wegfindung, Steuerung, endliche Automaten, etc. abdecken.
Mittels dieser Schnittstellen könnte KI-Software wie ein Plug-in dafür sorgen, lernfähige,
Emotionen zeigende, abwägende und interaktionsfähige Nichtspielercharaktere, also vom
Computer gesteuerte Charaktere zu erzeugen oder auch das Verhalten eigener und
gegnerischer Einheiten in Spielen zu verbessern - nicht nur in Strategiespielen. Darüber
hinaus sollen die Schnittstellen Spielentwicklern ermöglichen, in ihre Spiele weiterführende
KI-Techniken wie automatisierte Story-Telling-Systeme einzubinden. Letztere könnten die
Geschichte dann automatisch auf die Interessen des Spielers anpassen. Allerdings wird es
wohl noch etwas dauern, bis Spiele so flexibel auf den Anwender reagieren werden.

                                             26
10. Literaturverzeichnis

[1]   Künstliche Intelligenz – Dominik Bortis, Don Frick, Thomas Killer
      (http://alphard.ethz.ch/hafner/PPS/PPS2001/VR/KI.htm)

[2]   The General Problem Solver – Alan Newell, Herbert Simon
      (http://www.math.grin.edu/~stone/events/scheme-workshop/gps.html)

[3]   Computing Machinery and Intelligence – Alan Turing
      (http://www.abelard.org/turpap/turpap.htm)

[4]   Künstliche Intelligenz in Computerspielen: Seminar im Grundstudium – Diverse Texte
      von Studenten der Universität Erlangen
      (http://faui80.informatik.uni-erlangen.de/IMMD8/Lectures/AI-GAMES/SS2002/ps/)

[5]   Künstliche Intelligenz in Computerspielen II: Seminar im Hauptstudium – Diverse
      Texte von Studenten der Universität Erlangen
      (http://faui80.informatik.uni-erlangen.de/IMMD8/Lectures/AI-GAMES/SS2002/hs/)

[6]   Elektronische Spiele in Japan – Volker Grassmuck
      (http://waste.informatik.hu-berlin.de/Grassmuck/Texts/GamesJ/gamesj.html)

[7]   Stubborn Creatures: A Review of Creatures – Edmond Meinfelder
      (http://www.worldvillage.com/wv/gamezone/html/reviews/creature.htm)

[8]   CREATURES - Artificial Life, Autonomous Agents and Gaming Environment –
      Andrew Adamatzky
      (http://www.ias.uwe.ac.uk/~a-adamat/creatures.htm)

[9]   Excalibur: adaptive constraint-based agents in artificial environments – Alexander
      Nareyek
      (http://www.ai-center.com/projects/excalibur/)

                                            27
Sie können auch lesen