Professional Documents
Culture Documents
Stefan Neidig
1 Einleitung 3
1.1 Arbeitsbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Thema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Hauptteil 4
2.1 Vorbetachtungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Künstliche Intelligenz in Spielen . . . . . . . . . . . . . . . . . . . 4
2.1.2 Formulierung eines rationalen intelligenten Agenten . . . . . . . . . 4
2.2 Entwicklung des intelligenten Agenten . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Die Umwelt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Wahrnehmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.3 Aktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.4 Die Nutzenfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.5 Der Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Auswertung des Programms . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 Die Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Wegfindung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3 Gegner-Erkennungsmodul . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.4 Entscheidungsmodul . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Zusammenfassung 21
2
1 Einleitung
1.1 Arbeitsbeschreibung
Im Rahmen des Kurses “Angewandte Systeme der künstlichen Intelligenz“ hat jeder teilneh-
mende Student ein Praktikum zu besuchen. Dieses Praktikum soll den Studenten befähigen,
sich mit einem Thema auf diesem Gebiet selbstständig auseinander zu setzen und dieses
wissenschaftlich zu bearbeiten. Auf der Basis dieser Recherchen entsteht eine schriftliche
Arbeit in der die Ergebnisse dargelegt werden.
1.2 Thema
Der Lehrstuhl stellt einige Themen bereit, für die sich ein Student entscheiden kann. Zu-
dem stellt er aber auch die Möglichkeit, sich für ein selbstgewähltes Thema zu entscheiden,
welches dann vom Praktikumsleiter abzusegnen ist. In meinem Fall habe ich mich für ein
eigenes Thema entschieden.
Ziel meiner Arbeit wird es sein, für das Spiel Bomberman einen intelligenten Agenten
zu schreiben, der später fähig ist gegen Menschen eingesetzt zu werden. Zudem wird ei-
ne Simulationsumgebung entwickelt, in dem verschiedene Verhaltensmuster des Agenten
parametrisiert, untersucht und getestet werden. Das Programm wird mit der Programmier-
sprache C++ und der frei erhältlichen Spiele-Engine Irrlicht 1 entwickelt.
1.3 Motivation
Dieser intelligente Agent soll Teil meines Projektes RPGBomber2009 werden, mit des-
sen Entwicklung ich im Herbst letzten Jahres angefangen habe. RPGBomber2009 ist ein
Bombermanklon, der sich im Wesentlichen durch das Hinzufügen von Rollenspielelementen
zum originalen Spielkonzept unterscheidet. Um einen Einzelspielermodus zu ermöglichen,
musste ein Bot - fachlich ausgedrückt ein intelligenter Agent - programmiert werden.
Ich habe daher meine Lehrveranstaltungen entsprechend gewählt, um auf diesen Vorle-
sungen basierend mir Fachwissen anzueignen, welche mich befähigen dieses Ziel in meinem
Projekt erfolgreich umzusetzen.
1 http://irrlicht.sourceforge.net/
3
2 Hauptteil
2.1 Vorbetachtungen
2.1.1 Künstliche Intelligenz in Spielen
Künstliche Intelligenz findet gerade in Spielen ein großes Anwendungsgebiet. In fast jedem
Spiel hat man die Aufgabe, sich an den Mitspielern zu messen. Hierbei wird meistens so-
wohl der Mehrspielermodus, in dem man sich mit menschlichen Mitspielern messen kann,
oder auch der Einzelspielermodus angeboten, bei dem man gegen einen sogenannten in-
telligenten Agenten antritt. Hierbei werden je nach Spielkonzept verschiedenste Methoden
der Logik und künstlichen Intelligenz verwendet, wie beispielsweise Wegfindungsalgorith-
men, Bewertungsstrategien, regelbasierte Systeme oder verschiedene Erkennungsmuster.
Das heißt, die formalen Konzepte, die sich hinter diesen Begriffen verbergen, werden
durch die Projektion auf eine Programmiersprache angepasst.
Ein rationaler intelligenter Agent ist eine Spezialisierung eines intelligenten Agenten, der
seine Aktionen insofern wählt, dass gemäß einer Nutzfunktion und des Wissens über die
4
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
5
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
Nun muss das Konzept eines rationalen intelligenten Agenten auf Bomberman projiziert
werden. Das bedeutet wir definieren die Umwelt, mögliche Aktionen, die Wahrnehmung
und die Nutzfunktion.
D = (destroyable, nondestroyable)
E = (enterable, nonenterable)
M : N × N → D × E, (x, y) 7→ (d, e)
Die Umwelt muss zudem eine Schnittstelle bereithalten, über die Informationen (per-
ception) an den Agenten gelangen können. Diese Informationen, wie zum Beispiel der
Aufenthaltsort von Bomben, Gegnern oder auch Gegenständen, werden über eine Metho-
de im Spielmanager bereitgestellt. Weiterhin bietet dieser die Möglichkeit, eine Aktion an
die Umwelt zu übergeben, sodass auch die Umwelt über die Entscheidungen des Agenten
informiert wird.
2.2.2 Wahrnehmung
Die Wahrnehmung erfolgt über die Umwelt. Sie liefert eine sogenannte Wahrnehmungsse-
quenz aus, die aus folgenden Daten besteht:
6
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
Dieser Wahrnehmungsvektor ist exakt derjenige, der auch dem menschlichen Spieler zur
Verfügung steht. Somit sind beiden Spielparteien die gleichen Chancen auf den Sieg ge-
währt.
So ist es dem Spieler möglich, die Situation bestmöglich einzuschätzen und somit auch
die optimale Aktion - gemäß der Nutzenfunktion - auszuwählen. Diese Informationen helfen
dem Agenten dabei einzuschätzen, wie stark die unterschiedlichen Spieler sind, woraufhin
er dann einen bestimmten Spieler angreifen wird. Diese Berechnungen werden über ein
Gegner-Erkennungsmodul ermittelt.
Gegner-Erkennung Ein Agent speichert sich eine Liste, in der er die Gegenspieler durch
einen Wert - angegeben in Prozent - gewichtet. Je höher der Wert ist, desto bedrohter fühlt
sich der Agent von diesem Spieler. Dieser Wert wird derzeit über 2 Parameter ermittelt.
Einerseits ist die Nähe zum Agenten entscheidend, da ein Spieler, der sich nahe beim
Agenten befindet eine Bombe platzieren kann, die dann wieder eine Bedrohung für den
Agenten ist.
Jeder Agent bekommt daher einen Einzugsradius, in dem er sich bedroht fühlt, sobald ein
Gegenspieler diesen betritt. Je näher ihm ein Mitspieler ist, desto bedrohter fühlt er sich
und wird ihm entsprechend hohe Bewertungen geben. Die folgende Abbildung soll dies nun
erläutern:
7
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
Der schwarze Bomberman wird eine höhere Bewertung bekommen als der blaue. Diese
Punkte werden aber zu den schon vorhandenen Punkten addiert, sodass der Agent nicht
auf Basis der aktuellen Wahrnehmung sein Gefährlichkeitsmaß bildet, sondern über alle
Wahrnehmungssequenzen interpoliert.
Ein weiterer Faktor, der in die Berechnung eingeht, sind die verbleibenden Lebenspunk-
te, die der Gegenspieler hat, da es durchaus leichter sein kann einen schon geschwächten
Gegner zu besiegen, als einen, der noch alle Lebenspunkte besitzt.
Diese Beiden Faktoren werden nun zu einem Endwert errechnet und dann auf ein Maß
von 0 - 100 normiert:
maxhp − chp
edv(Agentx ) = dv(Agentx ) ∗
maxhp
edv(Agentx ) = norm(edv(Agentx ))
Somit ergibt sich eine Liste von Bewertungen für alle Mitspieler wie folgt:
Mit dieser Liste kann er nun die Spielstärke eines jeden Gegners einschätzen und gezielt
angreifen. Hierbei ist nun fraglich, ob er sich den Spieler mit der höchsten Bewertung,
also den für ihn am gefährlichsten aussucht, oder den mit der niedrigsten. Derzeit wird
statisch der mit der höchsten Bewertung als Ziel der Angriffe ausgesucht. Aber um dies
dynamisch zu gestalten, wäre es denkbar, ein Persönlichkeitsmodul zu implementieren.
Mit diesem könnten individuell Persönlichkeitsausprägungen, wie zum Beispiel Mut, Angst
oder ähnliches, erstellt werden, die dann solche Entscheidungen chaotischer und weniger
statisch gestalten könnten.
8
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
9
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
City-Block-Distanz Die Kosten ergeben sich aus der Summe der vertikalen und hori-
zontalen Entfernung.
h = (xs + xe ) + (ys + ye )
Geometrische Distanz Die Kosten ergeben sich aus der tatsächlichen Entfernung, die
mit dem Satz des Pythagoras berechnet wird. Diese Heuristik wurde in Anlehnung an
[Len08, ab Seite 687] implementiert.
10
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
p
h= (|xs − xe |)2 + (|ys − ye |)2
Beide Heuristiken haben sich als gleichwertig herausgestellt bezüglich des Speicherplatz-
bedarfs und der verwendeten Knoten. Dennoch ergeben sich unterschiedliche Wege:
Die Linke Grafik zeigt den ermittelten Weg unter Verwendung der City-Block-Distanz,
rechts hingegen der Weg der Heuristik geometrische Distanz. Blaue Felder kennzeichnen
den gefundenen Weg, grüne Felder die zusätzlich untersuchten Felder und rote sind nicht
betretbare Felder. Hierbei ist es denkbar, beide Wege erst einmal berechnen zu lassen und
dann zu untersuchen, welcher Weg der bessere ist. Unter besser ist hierbei derjenige Weg
zu verstehen, der ungefährlicher ist - also weniger Bomben oder Explosionen aufweist -
11
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
Bisher wird aus Optimierungsgründen bezüglich der Laufzeit darauf verzichtet und aus-
schließlich die City-Block-Distanz-Heuristik verwendet.
2.2.3 Aktionen
Das Spiel bietet im Grunde nur wenig mögliche Aktionen, die dann taktisch geschickt
aneinander gereiht werden müssen, um an sein Ziel zu kommen. Unter Aktion versteht
man einen Schritt im atomaren Sinne. Der Spieler hat somit folgende Möglichkeiten:
Handlungsmöglichkeiten, wie “einer Bombe ausweichen“ ist nur eine semantisch aufbe-
reitete Summe von einzelnen Entscheidungen (Sich zu einem bestimmten Ziel hinbewegen
und stehen bleiben). Diese sind somit keine Aktion im oben beschriebenen Sinne. Die beste
Aktion wird über die Nutzenfunktion ermittelt und dann an die Umwelt übergeben.
Der Agent hat nun die Aufgabe, mit Hilfe seiner Wahrnehmung, den Nutzwert N zu
maximieren.
Überleben
Das ist das Hauptziel. Der Agent darf nicht in eine Explosion hineinlaufen oder im Ein-
zugsbereich einer Bombe stehen, bevor diese explodiert. Jede Aktion, die hilft, dieses Ziel
zu erreichen, hat höchste Priorität. Hierbei kommt aber nun hinzu, dass der Agent nicht
zwangsweise bei jeder Explosion stirbt, sondern lediglich eine bestimmte Anzahl von Le-
benspunkten verliert, die abhängig ist von der Angriffsstärke (strength) der Bombe. Dieser
Wert fließt direkt als Gewichtung in den Nutzwert des Agenten ein. Je mehr Lebenspunkte
er also besitzt, desto eher wird er auch einen Treffer in Kauf nehmen, um vielleicht gleich-
zeitig einen anderen Spieler zu besiegen. Sollten die Lebenspunkte aber in einen kritischen
12
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
Bereich fallen, so wird der Agent auf Nummer sicher gehen und das Ausweichen der Bombe
als wichtigstes Ziel wahrnehmen.
hp = chp − strength(bomb)
3000 hp < 0
N1 = 3000
hp sonst
N2 = max(edvs)
Gegenstände einsammeln
Dies ist nur ein Nebenziel, da es nicht aktiv dazu beiträgt, das Ziel des Spieles zu erreichen,
sondern lediglich unterstützt. Der Agent berücksichtigt stets die drei Gegenstände, die am
nächsten sind. Hierbei wird je nach Gegenstand unterschieden, wie wichtig es ist, diesen
zu besitzen. Weiterhin wird der Agent vorher prüfen, wie weit er von diesem entfernt
steht und ob er einen solchen Gegenstand schon besitzt, da bei den meisten Items, die
man einsammeln kann, kein Sondereffekt eintritt, wenn man ihn mehrfach einsammelt.
Im Entscheidungsmodul ist eine Funktion weight vorhanden, die den Nutzwert für einen
beliebigen Gegenstand liefert.
Sofern es die Hauptziele des Agenten nicht beeinträchtigt, wird der Agent versuchen,
stets alle Gegenstände einzusammeln, da es ihm nicht nur einen Vorteil bringt, wenn er
sie besitzt, sondern auch einen weiteren Vorteil, wenn seine Gegner keine Gegenstände
besitzen.
N3 = max(weight(nextT hreeItems))
Nmax = max(N1 , N2 , N3 )
13
2.2. ENTWICKLUNG DES INTELLIGENTEN AGENTEN KAPITEL 2. HAUPTTEIL
Der Agent berechnet nun mit Hilfe des DecisionMaking-Moduls den maximalen Nutz-
wert aus und ermittelt über die Methode getBestChoice(...) die zugehörige Aktion. Für
diesen Vorgang stehen ihm in erster Linie der Wahrnehmungsvektor und diverse Subsys-
teme, wie die Kapselung von Wegfindungsalgorithmen oder Gegner-Erkennungsmodulen,
zur Verfügung.
Nun interagiert der Agent mit seiner Umwelt insofern, dass die ermittelte Aktion in die
Umwelt zurückgeschrieben wird und dadurch den als nächstes ausgegeben Wahrnehmungs-
vektor beeinflusst. Somit ergibt sich folgendes UML-Diagramm für das System.
14
2.3. AUSWERTUNG DES PROGRAMMS KAPITEL 2. HAUPTTEIL
15
2.3. AUSWERTUNG DES PROGRAMMS KAPITEL 2. HAUPTTEIL
1 Das Spielfeld
2 Der intelligente Agent (Weiß)
3 Der menschliche Spieler (Schwarz)
4 Die Benutzeroberfläche
Der weiße Spieler steuert sich selbst, je nachdem in welchem Modul man sich befindet.
Der schwarze Spieler wird durch den Spieler über die Pfeiltasten kontrolliert, sodass der
Agent auch gegen einen Menschen getestet werden kann.
Über die Tastenkombination Alt + F4 wird das Programm verlassen. Es stehen bisher
drei Module zum testen bereit, wobei die Möglichkeiten, wie man mit dem Programm und
dem Agenten interagieren, kann von der jeweiligen Sicht, in der man sich gerade befindet,
abhängen.
16
2.3. AUSWERTUNG DES PROGRAMMS KAPITEL 2. HAUPTTEIL
2.3.2 Wegfindung
In der ersten Sicht hat man umfassende Möglichkeiten, die Wegfindungsalgorithmen des
Agenten auf verschiedene Art und Weise zu testen.
1 Debugmodus umschalten
2 Suchalgorithmus auswählen
3 Start- und Zielfeld des Agenten zufällig setzen
4 Suchalgorithmus mit den Einstellungen starten
5 Suchalgorithmus stoppen
6 Den schwarzen Spieler verfolgen
Der Debugmodus visualisiert den Suchalgorithmus und gibt dem Anwender Aufschluss
über die verschiedenen Algorithmen, da nicht nur der gefundene Weg, sondern auch die
untersuchten Felder angezeigt werden. Interessiert man sich nur für den Weg und nicht
über die Güte des Weges oder den Suchalgorithmus selber, so kann man diesen Modus
ausschalten. Ist der Debugmodus eingeschaltet, wird enorm Rechenkapazität beansprucht.
Das liegt an den Grafikroutinen der Engine, dessen Methoden einiges an Overhead mit sich
bringt.
Derzeit sind drei Suchalgorithmen implementiert. Breitensuche, die als Standard fest-
gesetzt ist, und der A*-Suchalgorithmus mit der City-Block-Distanz-Heuristik und der
Geometrischen-Distanz-Heuristik. Diese können über das Dropdownfeld ausgewählt wer-
den. Dabei ist zu beachten, dass die aktuelle Suche des Agenten vorher gestoppt werden
sollte, da es sonst zu Fehlinitialisierungen kommen kann.
Weiterhin können Start- und Zielfeld zufällig verteilt werden. Dabei wird der Agent au-
tomatisch auf das neu gefundene Startfeld bewegt. Sofern man dann den Suchalgorithmus
über den dazugehörigen Button startet, wird die Suche mit dem Startfeld initialisiert und
17
2.3. AUSWERTUNG DES PROGRAMMS KAPITEL 2. HAUPTTEIL
das Zielfeld als Ziel vorgegeben. Der Agent wird versuchen einen Weg zwischen diesen bei-
den Feldern zu finden. Das Spielfeld bietet keine Einschlüsse, sodass kein Feld unerreichbar
ist. Daher liefert die Suche immer eine Lösung.
Eine weitere Möglichkeit die Wegfindung zu testen, bietet sich mit der Maus. Dabei wird
eine Schnellsuche gestartet, wenn man einen Linksklick auf ein Feld auslöst, welches dann
als Zielfeld angesehen wird. Weiterhin kann man ein Feld als Startposition bestimmen,
wenn man auf das entsprechende Feld rechtsklickt.
Um die Wegfindung im richtigen Einsatz zu testen, gibt es die Möglichkeit, den Agenten
ein sich bewegendes Ziel zu verfolgen. Dabei sucht er sich den menschlichen Spieler aus,
der über die Pfeiltasten gesteuert werden kann. Der Agent bekommt periodisch eine Wahr-
nehmungssequenz ausgeliefert, in der er die aktuellen Koordinaten des Spielers erfährt und
somit seine Suche aktualisieren kann.
Die Verfolgung kann über den gleichen Button wieder gestoppt werden.
2.3.3 Gegner-Erkennungsmodul
Die zweite Sicht ermöglicht tieferen Einblick in die Bewertungsalgorithmen des Agenten.
Er registriert zunächst alle Gegenspieler und initialisiert ihre Bewertungen mit 0. Im Laufe
der Zeit passt er die Bewertung entsprechend dem Verhalten des Spielers an und erzeugt
daraus ein Ranking.
18
2.3. AUSWERTUNG DES PROGRAMMS KAPITEL 2. HAUPTTEIL
Der Anwender hat die Möglichkeit, die aktuellen Bewertungen wieder zu reinitialisieren
und sozusagen eine neue Runde laufen zu lassen. Außerdem werden die Bewertungen nur
auf Anfrage auf der Konsole ausgegeben, da die Bewertungen zu jeder Zeit vorgenommen
werden, egal in welcher Sicht man sich befindet. Sollte man also noch etwas mit der Weg-
findung experimentieren, würden die ganze Zeit Log-Ausgaben erzeugt werden und der
Anwender müsste sich dann eine Vielzahl von Meldungen erst einmal durchforsten bevor
er wirklich die einzelnen Bewertungen nachvollziehen kann.
In der Log-Ausgabe kann der Anwender nicht nur die aktuelle Bewertung mitverfolgen,
sondern auch wie viel Prozent “Gefahr“ dem Gegenspieler zugesprochen wird, Dies wird
gemessen an allen Gegnern. Das ist im übrigen auch genau der Wert, der später an die
Nutzenfunktion übergeben wird.
2.3.4 Entscheidungsmodul
Die dritte und wichtigste Sicht, gewährt dem Anwender Einblick in das “Denken“ des
Agenten. Hier können genauere Informationen zu den Aktionen und deren Nutzen für den
Agenten eingesehen werden.
19
2.3. AUSWERTUNG DES PROGRAMMS KAPITEL 2. HAUPTTEIL
3 Der Agent erzeugt auf Basis der Nutzwerte aller 500 ms eine Aktion
Für den Anwender ist es interessant zu wissen, welche Aktion welchen Nutzen für den
Agenten bringt. Derzeit werden drei Faktoren berücksichtigt. Die eigene Bedrohung des
Lebens, der gefährlichste Gegner und die Chance auf Gegenständen zu kommen, wobei
letzteres noch nicht implementiert ist. Ermittelt werden diese Werte wie in 2.2.4 beschrie-
ben.
Somit kann der Anwender Schritt für Schritt eine Aktion erzeugen, um zu jedem Zeit-
punkt nachzuvollziehen, wie der Agent seine Entscheidung trifft. Oder aber kann er den
Agenten automatisieren, sodass er selbst in einem Abstand von 500 ms seinen Wahrneh-
mungsvektor aktualisiert, den maximalen Nutzwert ermittelt und dann die entsprechende
Aktion auslöst und diese an die Umwelt propagiert. Dabei wird dem Anwender aber kaum
Möglichkeit gegeben, die Logausgaben zu verfolgen, da der Agent auf den Spieler losgehen
wird.
Dieser Button ist letztendlich die Synthese dieses Projektes. Hier kann der intelligente
Agent - mit den bisher eingestellten Möglichkeiten - gegen einen menschlichen Spieler ge-
testet und evaluiert werden. Sollten die bisherigen Einstellungen in den einzelnen Modulen
die Güte des Agenten mindern, so kann man diese Nachträglich rekonfigurieren und eine
neue Runde starten.
20
3 Zusammenfassung
Hier möchte Ich noch einmal einen Bezug zu meiner Einleitung, speziell zu meinem The-
ma 1.2 herstellen. Ziel war es einen Agenten zu entwickeln, der fähig ist gegen einen
Menschen eingesetzt zu werden. Das heißt, dass der Agent nicht wesentlich besser aber
auch nicht wesentlich schlechter spielt als ein Mensch. Da es auch unter Menschen unter-
schiedliche Spielstärken gibt, muss auch der intelligente Agent graduierbar sein. Durch die
Einstellung einzelner Parameter kann der Agent individuell an das Spielerlevel angepasst
werden - und das sogar dynamisch während des Spiels. Diese Einstellungen können der-
zeit noch zur Laufzeit vom Anwender vorgenommen werden. Denkbar wäre aber, dass der
Agent ein Spielstärke-Erkennungsmodul bekommt und so seine Parameter mit Gewichten
versehen kann, um sich selbst an den menschlichen Spieler anzupassen.
Ein solche Möglichkeit würde sich im Entscheidungsmodul bieten, speziell bei der Ent-
scheidung, ob ein Agent sich lieber in Sicherheit bringt, oder doch einen Treffer in Kauf
nimmt, um dafür ein anderes (für ihn wichtigeres) Ziel zu erreichen. Eine Gewichtung
würde hier charakteristische Spielzüge erzeugen und könnte zu einer Art Persönlichkeits-
ausprägung, wie etwa mutig, ängstlich, leichtsinnig und so weiter führen.
Hier bieten sich noch sehr viele Möglichkeiten, den simplen Ansatz der Entscheidungs-
findung zu erweitern.
Zurück zur Ausgangsthese: Der Agent kann ohne weiteres gegen menschliche Spieler
eingesetzt werden. Auch bei der Spielstärke nehmen sind die beiden Parteien gleich stark.
Dennoch ist es für den menschlichen Spieler sehr schwer, den Agenten zu stellen oder gar
in eine Falle zu locken. Einerseits, weil Spieler und Agenten derzeit noch Felder, auf denen
sich Bomben befinden, betreten können. Andererseits liegt das daran, dass der Agent ab
einen gewissen Zeitpunkt, genau dann, wenn er sein Leben in Gefahr sieht, keine Fehler
mehr macht. Oberste Priorität ist das Schützen seiner Lebenspunkte. Das geht sogar so-
weit, dass er nichts anderes macht als auszuweichen, sodass der Spieler in der Pflicht ist
selbst wiederholt anzugreifen.
Dahinter steckt ein Konzeptionsfehler. Es wurde versucht, dem Agenten eine möglichst
menschliche Wahrnehmung zu vermitteln. Beide nehmen absolut das gleiche wahr, aber
auf einem völlig unterschiedlichem Level. Der Agent bekommt Zahlen und Daten, während
der Spieler nur den Blick auf den Bildschirm hat und somit einzelne Abstände nur schätzen
kann. Der Agent hingegen kann genauestens berechnen und somit seine Aktionen dahin-
gehend optimieren. Optimal berechnete Aktionen des Agenten stehen somit mehr oder
weniger gut abgeschätzte Aktionen des Spielers gegenüber. Das führt zu einem nicht un-
bedingt kleinen Vorteil für den Agenten, der sich ab und an bemerkbar macht, wenn man
21
KAPITEL 3. ZUSAMMENFASSUNG
versucht einer Explosion auszuweichen und dabei an einer Wand hängen bleibt, weil man
doch ein Stück zu weit hineingelaufen ist. Um dieses Problem zu lösen oder zu mindern,
könnte man die Wahrnehmung des Agenten mit einer gewissen Unschärfe versehen, sodass
er nur ein unscharfes Set an Daten bekommt und dadurch auch eher zu Fehlern neigt,
genau wie der Mensch auch.
Dennoch ist das Resultat überraschend gut. Es wurde teils wirklich intelligentes Ver-
halten beobachtet, beispielsweise als der Agent durch einen Feuerteppich lief nur um den
Spieler erfolgreich zu bedrohen. Einer Anfangs offensiven Taktik weicht dann aber immer
mehr einer defensiveren.
Zusammenfassend lässt sich sagen, dass mit Bombermans Playground das Ziel dieser
Arbeit nicht im mindesten verfehlt wurde, da Ansätze intelligenten Denkens zu beobachten
sind und der Agent sehr wohl mit dem menschlichen Spieler mithalten kann. Dennoch muss
man sich eingestehen, dass noch einiges an Potential zur Verfügung steht, um den Agenten
auf ein optimales Level zu bringen.
22
Literaturverzeichnis
[Irr05] Irrlicht engine - a free open source 3d engine. http://irrlicht.sourceforge.net/.
23
Abbildungsverzeichnis
24