Künstliche Intelligenz in Spielen - Seminarausarbeitung Universität Paderborn
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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
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
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