Seminar Game Development Artificial Intelligence in Computer Games

Transcription

Seminar Game Development Artificial Intelligence in Computer Games
Seminar
Game Development
Artificial Intelligence
in Computer Games
Raphael Thierjung
1005718
18.06.2007
Institut für Softwaretechnologie
Fakultät für Informatik
Universität der Bundeswehr München
2
Inhaltsverzeichnis
1
Einleitung .......................................................................................................................... 3
2
Definition Künstliche Intelligenz .................................................................................... 4
3
4
5
2.1
Intelligenz ................................................................................................................... 4
2.2
Von der Intelligenz zur KI .......................................................................................... 4
2.3
Turing Test ................................................................................................................. 5
2.4
Anwendungsbereiche der KI ...................................................................................... 6
Künstliche Intelligenz in Spielen..................................................................................... 7
3.1
Geschichte .................................................................................................................. 7
3.2
Anforderung an KI in Spielen..................................................................................... 8
3.3
Beispiele ..................................................................................................................... 8
Module einer KI ............................................................................................................. 11
4.1
Aufbau ...................................................................................................................... 11
4.2
Interaktion ................................................................................................................ 11
4.3
Erkennung ................................................................................................................ 12
4.4
Reaktion.................................................................................................................... 13
4.5
Erinnerung ............................................................................................................... 14
4.6
Suche ........................................................................................................................ 15
4.7
Lernen....................................................................................................................... 16
4.8
Die Module im Spiel ................................................................................................. 17
Ausblick........................................................................................................................... 19
Literatur.................................................................................................................................. 20
3
1
Einleitung
Die künstliche Intelligenz (KI) ist ein Themengebiet der Informatik, welches schon seit
Beginn der Entwicklung des Computers erforscht wird. Es war schon immer ein durchaus
reizvoller Gedanke eine Maschine zu entwickeln, die ein intelligentes Verhalten aufweist. Die
Möglichkeiten die ein solches Gerät bieten würde wären unerschöpflich. Als Roboter könnte
so ein System vollkommen selbstständig dem Menschen alle Arbeiten abnehmen. Früh wurde
schon auf die Gefahren solcher künstlicher Intelligenzen aufmerksam gemacht. In einer
Vielzahl von Hollywoodfilmen oder auch Büchern wurden die Horrorszenarien, aber auch die
ethischen Fragen behandelt, die mit der Entwicklung und Einsatz von künstlicher Intelligenz
verbunden sind.
Mit der KI, welche äußert komplex und hinsichtlich ethischer Bedenken stark
diskutiertes Thema ist, befasst sich die Informatik nun schon seit einigen Jahrzehnten. Relativ
unberührt von der Diskussion blieb ein relativ kleiner Anwendungsbereich der künstlichen
Intelligenz, die Spiele. Dies liegt hauptsächlich daran, dass die bei einem Computerspiel
selten die KI im Hauptfokus des Spielers liegt. So haben Grafik und Geschichte einen
wesentlich höheren Stellenwert als die KI. Aber auch bei Spielen in denen die KI eher in den
Vordergrund rückt, würde man nicht auf den Gedanken kommen die KI des Spiels ethisch zu
hinterfragen. Schließlich ist ein Spiel eigentlich unschuldig und möchte nur unterhalten. Bei
der Anwendung von KI, u.a. in autonomen Militärgeräten, deren Einsatz Menschenleben
kosten kann, wären ethische Bedenken eher angebracht[12][1].
Für viele Spiele ist eine herausfordernde KI ein wichtiger Bestandteil. Denn kaum ein
Spiel kommt ohne Gegner aus. Als die Entwicklung der Computerspiele begann, war das
Internet noch fern und eine große Vernetzung unter den einzelnen Computer bestand nur
sporadisch. Da man allerdings dem Spieler einen Gegner bieten wollte, musste dieser vom
Computer gesteuert werden. Die meisten modernen Spiele bieten einen umfangreichen
Mehrspielermodus, mit dem man auch mit seinen Freunden das Spiel bestreiten kann. Trotz
alledem benötigen die meisten Spiele noch KI-gesteuerte Computergegner. So werden sich
beispielsweise selten bei einer Fußballsimulation 22 Spieler für eine Partie zusammenfinden.
Daher müssen die restlichen Fußballspieler auf dem virtuellen Feld, welche nicht durch eine
Person gesteuert werden, von der KI übernommen werden. Die Entwicklung einer solchen KI
ist, vor allem in den modernen komplexen Spielen, nicht gerade einfach. Diese Seminararbeit
befasst sich mit dem Thema der KI in Spielen und erläutert die einzelnen Bestandteile einer
solchen KI.
4
2
Definition Künstliche Intelligenz
Dieses Kapitel befasst sich mit den theoretischen Grundlagen zu künstlicher
Intelligenz allgemein bzw. zu künstlicher Intelligenz in Spielen. Dazu wird im ersten
Abschnitt ergründet, wie genau Intelligenz definiert ist. Der nachfolgende Abschnitt befasst
sich dann mit den Ansätzen zur Definition von künstlicher Intelligen. Der Turing Test ist der
dabei wohl bekannteste Test für Systeme mit künstlicher Intelligenz. Aus diesem Grund wird
er im Abschnitt 2.3 näher erläutert. Neben den Spielen gibt es noch eine Vielzahl anderer
Anwendungsbereiche für KI. Diese werden im abschließenden Abschnitt 2.4 vorgestellt.
2.1
Intelligenz
Das größte Problem an der Definition von Intelligenz ist, dass es keine eindeutige
Definition gibt. Relativ logisch erscheint dabei die Feststellung, dass Wissen allein noch
niemanden als intelligent ausweist. Einige Forscher halten den IQ-Test als die Messlatte für
Intelligenz. Somit sind für sie die Faktoren räumliches Vorstellungsvermögen, verbaler
Ausdruck und abstraktes Denkvermögen, welche alle im Intelligenztest abgefragt werden, als
Messkriterien für Intelligenz entscheidend. So war auch der Forscher Binet, welcher den
ersten Intelligenztest entwickelte[2], der Meinung, dass Intelligenz „die Art der Bewältigung
einer aktuellen Situation,…, gut urteilen, gut verstehen und gut denken“ ist[3]. Einige
Forscher halten den IQ-Test für keine wirkliche Spezifikation von Intelligenz und behaupten
so scherzhaft „Intelligenz ist das, was ein Intelligenztest misst“.
Andere Forscher halten die Intelligenz für weit aus facettenreicher. So fallen für sie
auch Aspekte wie soziale Intelligenz unter den Begriff Intelligenz allgemein. Die
Schwierigkeit Intelligenz eindeutig zu definieren hat sich zwangsläufig auch auf die
Forschung der künstlichen Intelligenz ausgewirkt. Die Definition von künstlicher Intelligenz
wird im nächsten Abschnitt behandelt.
2.2
Von der Intelligenz zur KI
Wenn sich schon Intelligenz sich nicht eindeutig definieren lässt, so ist die logische
Konsequenz, dass auch die künstliche Intelligenz nicht per se auf eine Definition festzulegen
ist. Im Lauf der Geschichte haben sich 4 Ansätze durchgesetzt künstliche Intelligenz näher zu
definieren[4]. Man unterscheidet dabei zwischen denkenden und handelnden Systemen bzw.
Systeme die wie Menschen agieren und Systeme die vernünftig agieren. Letztere Einteilung
ist auch als starke bzw. schwache künstliche Intelligenz bekannt. Dabei wird mit einer starken
KI eine menschenähnliche künstliche Intelligenz bezeichnet und mit einer schwachen
künstlichen Intelligenz eine vernunftbasierte. Somit ergeben sich insgesamt 4 Kategorien:
•
•
•
•
Systeme mit menschenähnlicher Denkweise
Systeme mit vernunftbasierter Denkweise
Systeme mit menschenähnlicher Verhaltensweise
Systeme mit vernunftbasierter Verhaltensweise
Mit der Unterscheidung vernunftbasiert und menschenähnlich ist allerdings nicht gemeint,
dass Menschen nicht vernünftig agieren können. Allerdings lassen sich Menschen bei ihren
Entscheidungen und Reaktionen oftmals durch Emotionen, Gefühle und persönliche
Einstellungen beeinflussen. Darüber hinaus macht ein Mensch nun mal Fehler, schließlich ist
er nicht perfekt. Eine vernunftbasierte KI bezeichnet eine Maschine oder ein Programm,
5
welche Formen von Intelligenz aufweist, ohne dabei Gefühle oder ähnliches zu imitieren, um
möglichst perfekt ihre Aufgabe erfüllen zu können.
Bei der Entwicklung von Systemen mit menschenähnlicher Denkweise bezieht man
sich hauptsächlich auf die Ergebnisse der Erkenntnistheorie (cognitive science). In der
Erkenntnistheorie versucht man die Gedankengänge des Menschen zu ergründen und diese zu
simulieren, um so beliebige Probleme von einem System lösen zu können. Eine der
bekanntesten Beispiele für diesen Bereich ist der General Problem Solver von Allen Newell
und Herbert Simon[5].
Die Anwendungen der Systeme mit vernunftbasierter Denkweise beschränken sich
weitestgehend auf die Logik. So versuchte man bereits 1965 Systeme zu entwickeln, welche
selbstständig beliebige logische Probleme lösen können. Die Systeme basierten dabei auf
einer Vielzahl von voreingestellten logischen Schlüssen. Aufgrund dieses vorprogrammierten
Wissens werden diese Systeme auch Expertensysteme genannt[6]. Bei der Entwicklung dieser
Systeme gibt es allerdings einige Probleme. So macht es durchaus einen Unterschied ein
Problem prinzipiell lösen zu können und dieses dann praktisch auch zu tun. Des Weiteren
lässt sich nicht immer jegliche Form von Wissen als logische Sätze formulieren. Eine
Programmiersprache mit der man solche Systeme entwickeln kann ist die Logiksprache
Prolog[7].
Die wohl in der praktischen Anwendung von KI am meisten verbreiteten Systeme sind
Systeme mit vernunftbasierter Handlungsweise. Das Feld der Anwendungen dieser Systeme
ist riesig. So sind unter anderem die Mustererkennung, wie sie u.a. für Handschrifterkennung
oder Fingerabdruckscanner gebraucht wird, oder autonom agierende Maschinen, wie
beispielsweise Aufklärungsdrohnen, als einzelne Beispiele für diese Kategorie zu nennen.
Prinzipiell werden diese Systeme überall dort eingesetzt, wo zwar Bestandteile künstlicher
Intelligenz gebraucht werden, wie u.a. die Fähigkeit zu Lernen, aber man auf menschliche
Eigenheiten, wie z.B. Emotionen und auf menschlichem Versagen begründete Fehler,
verzichten will. Kurzum Systeme mit vernunftbasierter Handlungsweise sollen möglichst
perfekt, äußerst effizient und höchst effektiv agieren.
Die KI in Computerspielen lässt sich in die Kategorie Systeme mit menschenähnlicher
Verhaltensweise einordnen. Eine KI in einem Computerspiel sollte in der Regel immer
möglichst menschlich agieren. So wäre ein Rennspiel relativ unspannend, wenn die KI-Fahrer
immer nur an einer perfekten Ideallinie die besten Rundenzeiten fahren. Viel interessanter
wäre die KI, wenn die Fahrer beispielsweise bei einer knappen Führung nervös werden und
dadurch Fehler machen. Dadurch wird der Spieler fortwährend herausgefordert und bekommt
das Gefühl mit menschliche Gegenspieler zu spielen, anstatt gegen eine Horde perfekter
Maschinen. Aber neben der KI in Computerspielen gibt es auch andere Anwendungsbereiche
für solche Systeme. So können z.B. Roboter mit menschlichen Verhaltensweisen zur Therapie
bzw. Unterhaltung Behinderter oder in Altenheimen eingesetzt werden.
Der wohl bekannteste Test für künstliche Intelligenz, der Turing Test, ist
hauptsächlich für Systeme aus dieser Kategorie gedacht. Der Test wird ausführlich im
nachfolgenden Kapitel 2.3 vorgestellt.
2.3
Turing Test
Der Turing Test ist speziell für Systeme ausgelegt die, nach der Einteilung aus dem
vorherigen Abschnitt, eine menschenähnliche Verhaltensweise aufweisen. Die Idee des Testes
ist relativ einfach. Wenn sich eine Maschine tatsächlich wie ein Mensch verhält, so sollte ein
Mensch nicht unterscheiden können, ob er mit einer Maschine oder mit einem Menschen
spricht. So lässt Turing in seinem Test einem Testkandidaten über einen Chat jeweils mit
einem Menschen und mit der Maschine, welche getestet werden soll, kommunizieren. Wenn
der Proband dann nicht feststellen kann, welcher seiner beiden Kommunikationspartner die
Maschine und welcher der Mensch war, hat die Maschine den Turing Test bestanden[8][9].
6
Theoretisch reicht es dabei sogar, wenn der Proband bei seiner Wahl merklich zögert. Eine
glückliche Auswahl kann schließlich immer noch auf das Zufallsprinzip zurückgeführt
werden
Der Erfinder Alan Turing hatte damals erkannt, dass eine Maschine, aus Sicht des
Menschen, in der Lage sein wird, so menschliche Dinge wie Mitgefühl, Humor etc zu
entwickeln[10]. Nach der Annahme von Alan Turing sollte Spätentestens bis zum Jahre 2000
eine Maschine entwickelt worden sein, die den Turing Test besteht. Bis heute gibt es
allerdings kein Programm oder System, welches sich mit dieser Ehre schmücken darf. Dabei
ist auf das Bestehen des Turing Tests die goldene Loebner Medaillie ausgeschrieben, sowie
ein Preisgeld von $200.000. Bis heute wurde allerdings nur jedes Jahr die Bronze Medaille
verliehen. Diese bekommt das Programm, welches zwar den Turing Test nicht besteht, aber
die beste Simulation eines menschlichen Gesprächspartners bietet[11]. Eines dieser
Programme ist zum Beispiel die Software ELIZA, die bereits 1966 von Joseph Weizenbaum
entwickelt wurde[6]. Dieses Programm ist allerdings relativ simpel aufgebaut. Es formuliert
die Eingabe des Nutzers in eine Frage um und suggeriert so, dass die Maschine aktiv zuhört.
2.4
Anwendungsbereiche der KI
In dem großen Themengebiet der künstlichen Intelligenz, repräsentiert die KI in
Computerspielen lediglich einen kleinen Teil. Genau genommen sind die beiden Bereiche
relativ abgetrennt voneinander. Dies liegt an den sehr unterschiedlichen Anforderungsprofilen
die an die verschiedenen Anwendungsbereiche der KI gestellt werden. Mit der Besonderheit
des Anforderungsprofils von KI in Spielen im Vergleich befasst sich das Kapitel 3.2.
In der heutigen Zeit ist KI mittlerweile in vielen Systemen allgegenwärtig. Betrachtet
man allein die Mustererkennung, die nur einen relativ kleinen Teil der Gesamtheit von KI
Anwendungen ausmacht, so ist allein dafür eine Vielzahl an Anwendungen zu finden. So
basiert zum Beispiel die Handschrifterkennung, wie man sie aus den meisten PDAs oder
Smartphones kennt, auf solchen Mustererkennungen. Allerdings ist die Mustererkennung
nicht nur auf die Handschrifterkennung beschränkt. Die US Air Force beispielsweise
experimentiert mit Flugdrohnen, welche Ziele selbstständig erkennen und bekämpfen kann.
Die Firma Samsung hat einen Roboter in der Entwicklung, welcher menschliche Ziele, auch
in der Nacht, erkennen kann und auf Befehl bekämpft[12]. All das sind Beispiele für die
Anwendung von Mustererkennung in der Praxis.
Ein weiterer Anwendungsbereich für Systeme mit künstlicher Intelligenz sind
autonom agierende Roboter. Diese Roboter lassen sich vor allem dort effektiv einsetzen, wo
die direkte Steuerung durch den Menschen schwierig zu bewerkstelligen ist. So besaßen
schon die, von der amerikanischen Raumfahrtbehörde NASA entwickelten, Marsroboter
Oppurtunity und Spirit autonome Fähigkeiten. Dies wurde nötig, weil die direkte Steuerung
von der Erde aus durch die hohe Latenzzeit sehr ineffizient ist. So wird von der Bodenstation
der NASA lediglich der nächste Zielpunkt für die Roboter vorgegeben. Den besten Weg
dorthin berechnen die Roboter anhand von Bildern und Bodenprofilkarten selbst.
Eine andere Anwendung für künstliche Intelligenz sind so genannte Bots. Bots
bezeichnen kleine Programme die selbstständig eine Aufgabe bearbeiten. So nutzt die Firma
Google für ihre Suchmaschine Bots die das Internet durchforsten, um neue Suchergebnisse zu
finden. Andere Firmen wiederum nutzen diese Bots, um zum Beispiel E-Mail Adressen aus
Internetseiten auszulesen und zu sammeln.
Dies ist lediglich eine kleine Anzahl an Beispielen, in denen künstliche Intelligenz
bereits eingesetzt wird. Es bleibt festzuhalten, dass die künstliche Intelligenz in Computer
Spielen einen kleinen Teil der Einsatzmöglichkeiten von künstlicher Intelligenz darstellt und
künstliche Intelligenz in vielen Bereichen, wenn auch mit anderen Anforderungsprofilen,
eingesetzt wird.
7
3
Künstliche Intelligenz in Spielen
Künstliche Intelligenz in Computerspielen gibt es im Prinzip schon seit der
Programmierung der ersten Spiele für den Computer. Doch waren die KI-Routinen in diesen
Spielen eher primitiverer Natur. Dieses Kapitel befasst sich allgemein mit der künstlichen
Intelligenz in Spielen.
Mit der Geschichte der künstlichen Intelligenz in Spielen befasst sich der Abschnitt
3.1 – Geschichte. Die KI, wie sie in der theoretischen Informatik bzw. in vielen
Anwendungsgebieten behandelt wird, unterscheidet sich deutlich von der KI in Spielen. Dies
liegt besonders an den speziellen Anforderungen an die KI-gesteuerten Computergegner.
Diese besonderen Anforderungen werden im Abschnitt 3.2 – Anforderungen näher
spezifiziert. Das Kapitel wird durch den Abschnitt 3.3 – Beispiele abgeschlossen, indem
einige nennenswerte Beispiele für KI in Spielen vorgestellt werden.
3.1
Geschichte
Mit welchem Spiel die Ära der KI in Computerspielen eingeläutet wurde, lässt sich
heute nicht mehr genau bestimmen. Es gibt Quellen die bezeichnen Asteroids, erschienen im
Jahr 1979, der Firma Atari als erstes Computerspiel mit einer echten KI[13]. In dem Spiel
steuert man einen Raumgleiter, mit dem man Asteroiden abschießt und versucht den
Bruchstücken auszuweichen. Aber hin und wieder erschien ein UFO auf dem Bildschirm,
welches der Flugbahn des eigenen Raumgleiters folgte. Dieses, wenn auch auf sehr simplen
Algorithmen basierendes, Verhalten kann bereits als KI bezeichnet werden. Allerdings könnte
man auch das erste Auftreten von Schachcomputern in den 1970er Jahren als das erste
Auftreten von KI in Spielecomputer ansehen[14].
Während in der akademischen Welt die KI stetig weiterentwickelt wurde, erfuhr die
KI in Computerspielen lange Zeit kaum eine Entwicklung. Dies ist durchaus nicht
verwunderlich, da die damalige Rechnerleistung einfach nicht für komplexe KI-Muster
genügte und die bestehenden Algorithmen für die damaligen Spiele genügend Spaß boten.
Ein erster nennenswerter Entwicklungsschritt waren die Spiele Alter Ego und Little
Computer People (kurz LPC) der Firma Activision. Beide Spiele erschienen im Jahre 1985 für
den Commodore C64. Bei dem Spiel Alter Ego konnte man mittels gewisser Parameter einen
Charakter generieren und ihm durch das Leben folgen. Gewisse Bedürfnisse des Charakters
konnte der Spieler stillen bzw. bei Vernachlässigung dieser Bedürfnisse hatte dies
Auswirkungen auf das Spiel, welche bis zum Tod des Charakters führten. Das Spiel Alter Ego
lässt sich gut mit den in den 1990er Jahren bekannt gewordenen Tamagotchis vergleichen.
LPC stellt dann gewissermaßen eine Erweiterung von Alter Ego dar. Denn anstatt wie Alter
Ego den Spielverlauf nur in Textnachrichten darzustellen, zeigte LPC die Spielwelt, eine Art
Puppenhaus, mit dem darin lebenden Charakter grafisch an. LPC ist daher auch ein Vorbild
für das spätere Computerspiel Die Sims[15]. Die KI-Merkmale bei dieser Art von Spielen
liegen in der Simulation eines menschlichen Wesens im Computer. Es werden dabei die
Gefühle und Bedürfnisse des Menschen simuliert und so glaubt der Spieler die Spielfigur
besäße ein eigenes Bewusstsein. Dies ist gemäß der Definition aus Kapitel 2.2 bzw. 2.3 ein
System mit menschenähnlicher Verhaltensweise.
Abgesehen von diesen Vorzeigeprojekten tat sich allerdings nicht viel bei der KI in
Spielen. Selbst bis in die späten 1990er Jahre herein war die KI meist nur von einfacher
Natur. Allerdings begann dann, mit den steigenden Rechnerleistungen, auch die KI einige
Entwicklungsfortschritte zu machen. So startete 1996 mit dem Spiel Creatures 1 der Firma
Creature Labs die Serie der Creatures Spiele. Diese Spiele gelten bis heute als eine der besten
Lebenssimulationen, die jemals für den PC entwickelt wurde. Creatures war ein Spiel,
8
welches vom Aufbau dem LPC ähnelte, aber statt Menschen so genannte Norns simulierte.
Diese hatten eine komplex generierte DNA, konnten lernen und sogar das Gelernte an andere
Norns weitergeben. Weitere Spiele mit interessanter KI werden in einem späteren Abschnitt
näher behandelt.
3.2
Anforderung an KI in Spielen
Die Anforderung an KI in Spielen unterscheidet sich deutlich von der an KI in
sonstigen Anwendungsbereichen. Eine künstliche Intelligenz in der zivilen Anwendung sollte
immer fehlerfrei Arbeiten und die bestmöglichsten Ergebnisse liefern. So ist u.a. für ein
Programm zur Gesichtserkennung eine an 100% annähernde Trefferrate notwendig, um
überhaupt in irgendeiner Weise sinnvoll einsetzbar zu sein.
Allerdings haben Computerspiele eine völlig andere Anforderung an künstliche
Intelligenz. Wäre bei einem Spiel der Computergegner immer perfekt, würde das Spiel schon
nach kurzer Zeit den Spieler frustrieren. Die logische Konsequenz daraus ist die KI so zu
schwächen, dass der menschliche Spieler immer gefordert, aber nie überfordert wird. In
diesem Punkt unterscheidet sich die KI in Spielen dann auch im Wesentlichen von der KI wie
sie, unter anderen, in der Informatik behandelt wird. Die KI in Spielen soll vorrangig
unterhalten, was natürlich der wichtigste Faktor, neben Grafik, Geschichte, etc., bei einem
Computerspiel ist.
Ein Effekt der bei dieser Schwächung erzielt wird ist zudem, dass der Computergegner
wesentlich menschlicher wirkt. Die KI hat nämlich schon von Anfang an viele Vorteile
gegenüber dem menschlichen Gegner. So kann er alle Daten des aktuellen Spiels direkt in
dem Programm einsehen. Wie man die KI in ihrer Übermacht einschränken kann wird im
Kapitel 4.3 behandelt.
Diese besondere Anforderung, den Spieler zu fordern aber nicht zu überfordern, ist
dann auch der Grund, weshalb die mächtigen Schachcomputer, wie z.B. DEEP BLUE[16],
nicht in den Bereich der KI in Spielen fällt, auch wenn dieser durchaus Strukturen einer
Spiele-KI besitzt. Der DEEP BLUE ist nämlich rein auf den Sieg ausgelegt, ohne dem
Gegenspieler eine Chance zu geben. Dies widerspricht, gemäß obiger Definition, dem
Anforderungsprofil einer Spiele-KI.
3.3
Beispiele
Die KI in den meisten Spielen basiert auf so genannten Triggern. Dies sind Bereiche in
den jeweiligen Leveln, die eine Aktion der NPC1 auslösen, wenn der Spieler in diesen Bereich
tritt. Diese Art der KI ist besonders häufig in Egoshootern, aber auch in Rollenspielen und
Strategiespielen vorzufinden. So könnte man einen solchen Trigger beispielsweise an einen
Punkt in einer Schlucht setzen. Wenn der Spieler dann über diesen Trigger geht, erscheinen
an den Klippen Gegner. Dadurch würde der Spieler das Gefühl bekommen in eine Falle
getappt zu sein.
Ein ähnliches System findet man häufig in Rennspielen vor. Dort folgen die
Computerfahrer prinzipiell einer Ideallinie. Dieses Verhalten führt dann auch zu
merkwürdigen Phänomenen. So fahren die Fahrer beim Start direkt in die Ideallinie, anstatt zu
versuchen bis zur ersten Kurve Plätze gut zu machen. „Wer etwa beim ersten DTM Race
Driver am Scheitelpunkt einer Kurve parkt, wird selten überholt, selbst wenn links auf dem
Asphalt noch vier Meter Platz ist.“[13]
1
Ein NPC (non-playing-character) bezeichnet eine Figur / Charakter im Spiel, die durch den Computer, also
durch die KI gesteuert wird.
9
Abbildung 1
Szene aus dem Spiel Far Cry
Solche Trigger sind allgemein in Spielen sehr hilfreich, um zum Beispiel
Spannungsmomente zu erzeugen. Allerdings sind die darauf basierenden KI Gegner weniger
anspruchsvoll und darunter leidet dann auch wieder die Spielqualität. Die meisten neueren
künstlichen Intelligenzen in Spielen arbeiten mittlerweile mit Hilfe von Expertensystemen.
Ein Expertensystem ist eine Art Regelwerk, anhand der die KI eine Reaktion berechnet. Eine
Möglichkeit zum Beispiel ein Expertensystem zu verwirklichen sind Entscheidungsbäume,
welche im Kapitel 4.4 behandelt werden.
Als ein Spiel mit einer besonders herausragenden KI gilt der Egoshooter Far Cry, der
2004 von der deutschen Firma CryTek veröffentlicht wurde. In diesem Spiel wurden zum
ersten Mal eine vollkommen neue Form von KI-Gegner implementiert, welche es so bei
einem Shooter vorher noch nicht gab. Die Computergegner in den meisten solcher Spiele
konnten nur auf den Spieler schießen und gegebenenfalls sich gleichzeitig ein wenig
bewegen, um nicht getroffen zu werden.
Far Cry geht nun diesbezüglich einen anderen Weg. Um die Möglichkeiten der KI zu
verstehen muss man aber vorher die Spielwelt erläutern. Die Handlung von Far Cry spielt auf
einer Insel. Die Levels sind allgemein sehr weitläufig und bestehen in der Regel aus Stränden,
Wasser und Dschungel, wobei auch Teile des Spiels in Gebäuden handeln. Als Gegner
erscheinen dem Spieler unterschiedlichste Kreaturen. Da gibt es zum einen die regulären
Söldnertrupps, sowie stärkere speziellere Einheiten. Aber auch relativ primitive Gegner, wie
z.B. Monster muss man im Spiel bekämpfen.
Die Besonderheit der KI macht dabei das Verhalten der Gegner aus. So hat jeder
Söldnertrupp einen Commander, der seinen Trupp kommandiert. Trifft nun der Spieler auf
einen Söldnertrupp, so lässt der Commander einen Söldner zurückschießen, während die
restlichen Soldaten Deckung suchen und dabei versuchen dem Spieler in den Rücken zu
fallen. Die Soldaten sind dabei selbst dafür verantwortlich, nur aus der Deckung heraus
anzugreifen. Der Commander ist für die Aufteilung und die Koordination seiner Soldaten
verantwortlich. Die Computergegner schießen dann auch immer nur aus der Deckung heraus.
Nur selten greifen sie direkt frontal an. Gelingt es dem Söldnertrupp nicht, den Spieler
rechtzeitig auszuschalten, ruft der Commander Unterstützung heran. Flieht der Spieler,
nehmen die Gegner die Verfolgung auf und verwenden dazu auch meist Fahrzeuge, welche
sie sehr geschickt steuern können.
Das Interessante dabei ist jedoch, dass die Söldner auf jedem beliebigen Terrain so
agieren. Ihr Verhalten ist also nicht an spezielle Levels gebunden, sondern sie können
10
beliebig in jedem Level eingesetzt werden und finden selbstständig Deckungsmöglichkeiten
und Routen. Dieses Verhalten ist nicht auf freie Areale begrenzt. Selbst in Räumen agieren
die Gegner geschickt, suchen hinter Ecken Deckung und holen sich bei Bedarf Verstärkung.
Auch die vermeintlich dümmeren Monster haben gewisse Fertigkeiten. Sie nutzen ihre
teilweise vorhandenen Spezialfähigkeiten, wie beispielsweise die Möglichkeit sich unsichtbar
zu machen oder sie nutzen ihre große Sprungkraft, geschickt aus um sich dem Spieler schnell
aus der Deckung heraus zu nähern[17].
Die KI aus Far Cry bezeichnet durchaus eine neue Ära im Bereich der KI. Auch der
nächste Shooter aus dem Hause Cry Tek soll ebenfalls sich durch eine eindrucksvolle KI
auszeichnen. Auch in anderen Spielen lassen sich nun Fortschritte verzeichnen, wie z.B. bei
den sehr guten Gegner aus DTM Race Driver 2. Diese Spiele bezeichnen alle einen wichtigen
Schritt in der Entwicklung der KI in Spielen. Denn die KI-Gegner aus diesen Spielen agieren,
anders als es bei Spielen vorher üblich war, nämlich wesentlich flexibler. Dies liegt unter
anderem daran, dass die KI nicht mehr auf festen KI-Skripten, vergleichbar mit einem
Drehbuch, beruhen, sondern völlig autonom ihre Entscheidungen fällen. Dadurch können die
KI-Gegner nun auch in jeder Situation agieren, ohne dass man ihnen erst ein Skript zur
Verfügung stellen muss.
11
4
Module einer KI
Eine künstliche Intelligenz, ob nun in einem Computer Spiel oder in einer anderen
Anwendung, hat prinzipiell immer den gleichen Aufbau. Der in diesem Kapitel vorgestellte
Aufbau ist primär für die Entwicklung von künstlicher Intelligenz in Spielen gedacht.
Dennoch beruht eine künstliche Intelligenz, wie sie u.a. bei den Marsrobotern der NASA
eingesetzt wurde, zumindest weitestgehend auf diesen Modulen.
Mit diesem Aufbau der KI befasst sich dieses Kapitel. Dazu werden im Abschnitt 4.1
die Module, aus denen die KI aufgebaut wird, vorgestellt. In den Abschnitten 4.2 bis 4.6
werden dann die einzelnen Module beschrieben.
4.1
Aufbau
Natürlich unterscheiden sich die KI – Routinen in den meisten Spielen voneinander.
Allein schon in den verschiedenen Genres im Bereich der Computerspiele, wie beispielsweise
Fußballsimulation, Rennspiel oder 3D-Shooter, gibt es verschiedene Arten und Strukturen
von künstlichen Intelligenzen. Dennoch kann man den Aufbau aller künstlichen Intelligenzen
grob in 6 Module einteilen. Diese Module sind namentlich:
•
•
•
•
•
•
Interaktion
Erkennung
Reaktion
Erinnerung
Suche
Lernen
Die Reihenfolge bildet dabei gewissermaßen eine Hierarchie. So sind Interaktion,
Erkennung und Reaktion Elemente die jede vernünftige KI besitzen sollte. Sie bilden die
Basis einer künstlichen Intelligenz in einem Spiel. Die weiteren Elemente Erinnerung, Suche
und Lernen sind Erweiterungen, die die künstliche Intelligenz besser bzw. menschlicher
werden lassen. Mit Hilfe dieser Erweiterungen kann man den Spieler immer wieder neue
Herausforderungen bieten und so das Spiel attraktiver und interessanter werden lassen.
Im Nachfolgenden werden die einzelnen Module vorgestellt und ihr Inhalt näher
erläutert. Um die Auswirkungen der einzelnen Module besser darstellen zu können, wird ein
einfaches Spiel als Beispiel herangezogen, nämlich das Spiel PONG. Das Spiel besteht, wie in
Abbildung 2 dargestellt, aus 2 Balken, am linken und rechten Bildschirmrand, sowie einem
Punkt der den Spielball darstellt. Die Spieler können den Balken nur in der jeweiligen
Horizontalen bewegen. Der Ball wandert nun immer von einer Seite zur anderen und wird,
sofern er einen Balken berührt, in die andere Richtung zurückgeschlagen. Schafft es der
Spieler nicht, den Ball rechtzeitig zurückzuschlagen, so dass dieser hinter den Balken gerät,
bekommt der andere Spieler einen Punkt gutgeschrieben. Für unseren Fall wird das Spiel in
sofern modifiziert als dass nur ein Spieler mitspielt und dass der andere Balken durch eine KI
gesteuert werden soll, die nun im Nachfolgenden aufgebaut wird.
4.2
Interaktion
Damit eine KI in einem Spiel überhaupt wirken kann, muss sie das Spielgeschehen
(Game State), auch Spielstand genannt, beeinflussen können. Die Aktionen (engl. Actions)
die ein so genannter Spielercharakter (engl. player character, PC) oder ein NichtSpielercharakter durchführen kann, sind in der Regel begrenzt. So kann ein Spieler in einem
12
Abbildung 2
Spielszene aus PONG
Rennspiel in der Regel nicht viel mehr als Beschleunigen, Bremsen und Lenken, so wie es
auch in einem realen Auto vorgesehen ist. In unserem Spiel beschränkt sich der
Handlungsspielraum für den PC bzw. NPC sogar noch weiter. So kann dieser lediglich in dem
Spiel PONG seinen Balken nach oben oder nach unten bewegen.
Das Spielgeschehen darf nur durch den Simulator verändert werden. Damit nun eine
Aktion durchgeführt wird, muss ein Controller eine Aktion an den Simulator schicken. Ein
Controller kann z.B. direkt durch die Tastatur gesteuert werden. Aber auch NPC Spieler
werden durch Controller gesteuert. Diese geben dann die, von der KI als nächste bestimmte,
Aktionen an den Simulator weiter.
Da in unserem Beispiel die KI keine weiteren Fähigkeiten außer der Interaktion
beherrscht, also vor allem auch noch nicht das Spielgeschehen wahrnehmen kann, muss die
KI provisorisch agieren. In diesem Fall bedeutet es den Balken so zu bewegen, dass die
Chance möglichst hoch ist, den ankommenden Ball zu treffen, ohne dabei zu wissen an
welcher Position der Ball oder der eigene Balken sich befindet. Dies wird dabei am besten
erfüllt, wenn die KI den Balken einfach abwechselnd rauf und runter bewegt. Dadurch ist der
Schläger stetig in Bewegung und die Chance den Punkt zu treffen ist höher, als wenn der
Balken bloß still steht.
4.3
Erkennung
Damit eine künstliche Intelligenz in einem Spiel überhaupt halbwegs sinnvoll handeln
kann, muss sie das aktuelle Spielgeschehen wahrnehmen können. Der Spieler selbst bekommt
in der Regel das Spielgeschehen als Grafik auf dem Bildschirm dargestellt bzw. zusätzlich
noch über die Soundkarte. Bei modernen 3D Spielen werden dafür aufwändige Grafiken
erstellt und so hat sich die Grafik als eines der Hauptkriterien für die Bewertung eines Spieles
entwickelt. Allerdings ist eine solche anspruchsvolle Grafik sehr rechenintensiv und so
benötigen die meisten Spiele mittlerweile eine teure Grafikkarte um ein Spiel flüssig
darstellen zu können.
Um den Computer also dieselbe Spieldarstellung zu geben, müsste man für jeden
einzelnen NPC das Spielgeschehen aus seiner Sicht rendern und anschließend noch
aufwendig auswerten. Dies ist allerdings, gerade in modernen Spielen, mit den heutigen
Rechenkapazitäten nicht machbar. Es wäre auch im Endeffekt sinnlos. Schließlich sitzt die
KI, als Bestandteil des Computerspiels, direkt an der Quelle aller Daten. So bekommt sie also,
anstatt als grafische Darstellung, das Spiel in Zahlen repräsentiert. In unserem Beispiel
würden das u.a. die Position des Balls, der Balken, der Spielstand oder die momentane
Bewegungsrichtung des Balls sein.
13
Allerdings bietet der Abgriff der Informationen direkt aus dem Programm der KI sehr
viele Möglichkeiten. Die KI wird dazu sehr leicht zu einem „allsehenden Auge“. So wäre es
zum Beispiel gegenüber dem menschlichen Spieler höchst unfair, wenn der Computer bei
einem 3D – Shooter die Positionen aller Mitspieler aus dem Programm bekäme und somit
faktisch durch sämtliche Wände und Mauern sehen könnte. Daher muss die KI für jeden
Charakter im Spiel berechnen, ob er ihn tatsächlich sehen kann oder nicht. Dadurch wird die
KI noch nicht endgültig fair sein. Weitere Verfahren, die KI fairer zu machen, werden in den
folgenden Abschnitten besprochen, aber im Bereich der Wahrnehmung hat die KI nun keinen
übermächtigen Vorteil mehr.
Da auch für den menschlichen Spieler die Position und Bewegungsrichtung, die
Geschwindigkeit des Balls, sowie die Positionen der beiden Balken einsehbar sind, kann man
ohne weitere Bedenken der KI auch dieselben Daten zur Verfügung stellen. Es wäre
allerdings sinnvoll die Aufnahmefähigkeit der KI ein wenig zu schwächen, da ein Mensch
nicht alles auf einen Blick realisiert und Zeit für eine Reaktion braucht. Dies könnte man
beispielsweise durch eine Verzögerung des Datenflusses zur KI bewerkstelligen. Trotzdem
verändert sich das Spiel momentan nicht, obwohl die KI nun das Spielgeschehen wahrnehmen
kann. Um auf das jeweilige Spielgeschehen reagieren zu können benötigt die KI das Modul
Reaktion.
4.4
Reaktion
Nachdem unsere KI im Spiel PONG jetzt das Spielgeschehen wahrnehmen kann,
sollte sie auch auf jegliche Situation im Spiel reagieren können. Mit der Thematik befasst sich
dieses Modul. Im Prinzip kann man die Reaktion einer KI mit einer Funktion f vergleichen die
bei einem gewissen Spielstand x eine Reaktion y berechnet.
Die Reaktion bei den meisten Spiele-KIs wird mit Hilfe von Entscheidungsbäumen
ausgeführt. Diese haben als Blätter einzelne Produktionsregel. Die Produktionsregeln
bestehen aus einzelnen Fragen, deren Antwort den weiteren Weg im Entscheidungsbaum
bestimmen. Am Ende des Entscheidungsbaumes steht dann eine Reaktion, die die KI dann an
den Controller weitergibt. Die Tiefe des Baumes, bzw. die Anzahl aller Produktionsregeln,
sowie die Anzahl aller möglichen Entscheidungen sind hierbei ein gewisses Gütekriterium für
die KI. Kann die KI sich zwischen vielen Reaktionen entscheiden, so wirkt sie gleich
menschlicher, da sie dadurch ein differenziertes Verhalten aufweist. Allerdings benötigt ein
größerer Entscheidungsbaum auch wesentlich mehr Rechenzeit, welche nach wie vor für die
KI in Spielen knapp bemessen ist[18].
Eine andere Möglichkeit der KI ein gewisses menschliches Verhalten zu verpassen ist
die Nutzung von stochastischen Entscheidungsbäumen. Bei diesen werden mehrere mögliche
Entscheidungen berechnet und mit einer Wahrscheinlichkeit belegt, so dass die KI anhand
dieser Wahrscheinlichkeit eine Reaktion auswählen kann. So kann man z.B. erreichen, dass
ein Computergegner auch bei einer vollkommen aussichtslosen Situation anstatt der Flucht
einen Kamikazeangriff versucht. Nun werden wir das Modul in die KI von unserem Spiel
integrieren. Das zugrunde liegende Prinzip ist recht einfach. Die KI soll die Position des Balls
bestimmen und anschließend den Balken immer auf der Höhe des Punktes halten. Dies dürfte
mit einem relativ einfachen Entscheidungsbaum zu machen sein. Dieser vergleicht die
Position des Balkens mit der von dem Punkt. Je nach Lage des Punktes zum Balken, verlagert
er diesen um den Punkt abwehren zu können. Der beschriebene Entscheidungsbaum ist in
Abbildung 3 dargestellt.
Diese KI wäre allerdings sehr gut, da sie immer den Balken auf der richtigen Stelle
hätte. Es gibt nun mehrere Wege die KI zu schwächen. Zum einem könnte man die Abfrage
der Position verlangsamen, so dass die KI auch langsamer reagiert. Dies wurde im vorherigen
Kapitel bereits vorgeschlagen. Man könnte auch einfach eine Stochastik einbauen und bei
14
Abbildung 3
Entscheidungsbaum aus dem Spiel PONG
jeder x-ten Entscheidung die KI falsch entscheiden lassen. Wir entscheiden uns bei unserer
KI für die erstere Möglichkeit.
4.5
Erinnerung
Bei unserer bisherigen KI wird eine Reaktion anhand von dem aktuellen Spielstand
berechnet. Dies birgt allerdings einen gewissen Nachteil. Denn immer wenn dieselbe
Situation aufkommt, reagiert die KI gleich. In unserem kleinen Beispiel mit dem Spiel PONG
mag dies nicht gravierend ausfallen, die KI lenkt schließlich nur den Balken nach oben oder
unten, aber bei durchaus komplexeren Spielen ist dies ein Nachteil. Denn dadurch wird die KI
berechenbar und stellt für den Spieler dann keine allzu große Herausforderung mehr dar.
Von daher wäre es nur sinnvoll, wenn die KI sich gewisse Dinge aus vorherigen
Spielsituationen merken könnte. Also, um die Funktion aus dem vorherigen Abschnitt
aufzugreifen, wenn zur Berechnung der Reaktion nicht nur der aktuelle Spielstand, sondern
auch vorherige Spielstände mit einfließen könnten. Dies würde die KI weniger berechenbar
werden lassen und gleichzeitig deutlich menschlicher erscheinen lassen.
Allerdings wird es technisch eher unmöglich sein, sich alle vorherigen
Spielsituationen zu merken. Auch würde die zu bearbeitende Datenmenge ein Maß
überschreiten, so dass sich nicht mehr in vernünftiger Zeit eine Reaktion berechnen lässt. Im
Endeffekt würden über die Dauer hinweg die NPC immer langsamer reagieren, bis sie
schließlich gar keine Reaktion mehr zeigen. Um dieses Problem zu vermeiden muss man
explizit vorher definieren, was sich die KI merken soll. So wäre es zum Beispiel sinnvoll sich
bei einem Strategiespiel die Position des Gegners zu merken, nachdem man ihn das erste Mal
aufgedeckt hat, um für einen neuen Angriff nicht erneut die Stellungen erkunden zu müssen.
Ein weiterer Punkt der hierbei berücksichtigt werden muss ist die Verfallzeit der
Erinnerungen. Merkt sich die KI in einem 3D-Shooter beispielsweise die Position eines
Gegners, so wird diese wahrscheinlich nur sehr kurz aktuell bleiben. Daher muss die KI stets
prüfen, ob die Informationen die sie sich gemerkt hat weiterhin aktuell sind oder in
zukünftigen Entscheidungsberechnungen nicht mehr berücksichtigt werden.
Durch die Möglichkeit sich verschiedene Informationen zu merken, kann man in der
KI auch Gefühle nachbilden. So könnte u.a. ein von der KI gesteuerter Fahrer bei einem
Rennspiel aggressiv werden, wenn man ihn beim Überholen schneidet oder streift. Der
Computerfahrer könnte daraufhin dann versuchen den Spieler zu schneiden oder zu
bedrängen. Man kann relativ leicht über einen endlichen Automaten der KI Gefühle
15
„beibringen“. Die Zustände repräsentieren die jeweiligen Gefühlszustände, die die KI
einnehmen soll. Die Übergänge werden dann durch gewisse Schlüsselereignisse
bewerkstelligt. Der jeweilige Gefühlszustand beeinflusst die KI dann in ihrer Reaktion. Die
Abbildung 4 zeigt ein Beispiel für so einen endlichen Automaten.
Allerdings gilt es zu beachten, dass man die bloße Möglichkeit sich Dinge zu merken
keineswegs mit Lernen verwechselt. Lernen würde bedeuten, dass die KI aus den gemerkten
Handlungen Rückschlüsse für das eigene Verhalten zieht. Beim Merken wird der KI direkt
vorgegeben was sie sich merken soll und wie sie das berücksichtigen soll. Ein Lernverhalten
liegt dabei nicht vor.
Ein interessanter Ansatz, das Modul Erinnerung in unser Spiel einzubinden, wäre die
Möglichkeit Gefühlszustände in die KI zu integrieren. So könnte z.B. der Gegenspieler bei
zunehmendem Rückstand nervös werden bzw. wenn er wieder aufholt, sicherer und
aggressiver spielen. Abhängig vom Gefühlszustand würde die KI dann den Balken sicherer
bzw. weniger sicher beherrschen. Dies könnte man mit einem Unsicherheitsfaktor im
Controller bewerkstelligen. Man könnte auch die KI sich merken lassen, in welche Ecke der
Spieler bevorzugt den Punkt spielt. Die KI könnte dann beispielsweise ihren Balken
bevorzugt in dieser Region lassen, um dann besser auf den Spieler reagieren zu können. Auch
dies wäre eine sinnvolle Anwendung des Moduls Erinnerung in dem Spiel PONG.
4.6
Suche
Das Modul Suche ist wesentlich weitläufiger als die Bezeichnung vermuten lässt.
Bisher beruft sich die KI auf eine Art Expertensystem um eine Entscheidung zu berechnen.
Anhand von gewissen Kriterien wird die Reaktion berechnet und durchgeführt, ohne
letztendlich wirklich zu wissen, ob dies für den jeweiligen Spielstand die beste Reaktion ist.
Der Entwickler der KI muss in den Entscheidungsbäumen für jede Situation vorab die richtige
Lösung programmieren, damit diese dann die KI auswählen kann. Allerdings kann der
Entwickler natürlich nie alle Spielsituationen vorab kennen.
Eine sinnvolle Anwendung der Suche in einer KI ist die Berechnung des kürzesten
Pfades zwischen zwei Punkten, auch Wegpunktsuche genannt. Die Wegpunktsuche wird in
den meisten Spielen benötigt und ist daher ein Gebiet in der KI, welches sich verhältnismäßig
stark entwickelt hat. Denn ob nun ein 3D-Shooter oder ein Strategiespiel, ob Rollenspiel oder
Lebenssimulation, wie Die Sims, überall gibt es Levels mit Hindernissen in denen sich die
Protagonisten zu Recht finden müssen. Eine Wegpunktsuche soll also, bei Angabe der
derzeitigen Position und dem Ziel, möglichst schnell den günstigsten Weg berechnen. Damit
dieser berechnet werden kann, braucht die KI eine Karte, auf der Wegpunkte und mögliche
Wege der aktuellen Spielkarte verzeichnet sind. Die Wege sollten dabei bewertet sein. So
kann z.B. ein Weg über einen Berg schlechter bewertet werden, als ein Weg durch eine
Ebene. Die Bewertungsgrundlage ist von Spiel zu Spiel unterschiedlich und auch die Nutzung
von verschiedenen Wegpunktkarten als Grundlage ist denkbar. Eine Wegpunktkarte aus dem
Spiel CounterStrike 2D zeigt die Abbildung 5.
Um nun den besten Weg in dem System zu berechnen kann man auf eine Vielzahl von
Algorithmen zurückgreifen. Ein Algorithmus ist u.a. der Djkstra-Algorithmus. Bei den
Spielen hat sich allerdings der A* Algorithmus durchgesetzt. Dieser ist eine
Weiterentwicklung des Djkstra-Algorithmus und arbeitet wesentlich schneller[19].
Im Modul Suche ist aber nicht nur die Suche nach dem besten Weg von Interesse,
sondern auch die Suche nach der richtigen Reaktion. Wie anfangs schon angesprochen basiert
die bisherige KI auf einer Art Expertensystem. Wesentlich besser wäre es, wenn die KI die
beste Reaktion für den nächsten Schritt berechnen könnte. Dafür bieten sich so genannte
Suchbäume an. Bei denen berechnet die KI alle möglichen Reaktionen die sie tätigen kann
und wählt dann die aus, welche sie ihrem Ziel am nähesten bringt. Im Prinzip probiert die KI
16
Abbildung 4
Endlicher Automat zur Simulation von Gefühlszuständen
„in Gedanken“ alle möglichen Reaktionen aus und führt dann die mit dem besten Ergebnis
aus. Damit die KI auch die beste Reaktion erkennen kann, muss ein Bewertungskriterium
gewählt werden. Dies könnte z.B. die Anzahl der feindlichen Einheiten sein, welche die KI
bei dem jeweiligen Schritt schlagen kann. Dabei wird die Reaktion besser, je mehr Schritte
berechnet werden, also je tiefer der Suchbaum aufgestellt wird. Allerdings ist auch die Höhe
des Berechnungsaufwandes direkt mit der Tiefe des Suchbaumes verbunden. Mit dieser Art
von Suchbäumen arbeiten die großen Schachcomputer wie DEEP BLUE, welche eine
Vielzahl von Schritten gleichzeitig berechnen können.
Für die KI in unseren Spiel PONG gibt es allerdings keine wirkliche sinnvolle
Anwendung des Moduls Suche. Aufgrund der sehr einfachen Struktur des Spiels ist ein
Wegsuchealgorithmus sinnlos. Der Spieler kann seinen Balken schließlich nicht in dem Level
frei bewegen, sondern nur den Balken nach oben oder unten verschieben. Die einzige
Möglichkeit das Modul Suche anzuwenden, wäre zur Entscheidungsfindung. Zwar würde man
mit einem Suchbaum ähnliche Ergebnisse erzielen, wie bei der bisherigen Lösung mit dem
Entscheidungsbaum, allerdings wäre der Berechnungsaufwand wesentlich höher. Das Spiel
PONG zeigt damit dann auch sehr deutlich, dass nicht unbedingt jede Erweiterung für ein
Spiel sinnvoll sein muss.
4.7
Lernen
Das Modul Lernen ist ein recht komplexes Feld, welches sich so in Spielen bisher
noch nicht etabliert hat. Zwar behaupten einige Spieledesigner, dass die KI in deren Spielen
bereits lernen kann, aber in der Regel sind das nur vordefinierte Verhaltensänderungen bei
bestimmten Aktionen des Spielers. So merkt sich zum Beispiel ein Computergegner in dem
Ego-Shooter Unreal Tournament 20042, wenn der Spieler sich immer an derselben Stelle
versteckt und plant dann eine Ausweichroute für die nächsten Angriffe[20].
Dies kann man jedoch kaum als wirkliches Lernen bezeichnen, auch wenn das auf den
Spieler auf den ersten Blick so wirkt. Wirklich lernen bedeutet, dass die KI ihr eigenes
Verhalten analysiert und daraufhin ihr Verhalten ändert und zwar auf jede Aktion die sie
durchführt. Das oben beschriebene Verhalten ist jedoch bloß die Nutzung des Moduls
Erinnerung, wobei genau definiert wird, was die KI sich merken soll und wie sie das
gemerkte in ihre Entscheidungsfindung einfließen lässt.
Damit KI wirklich lernen kann bedarf es anderer Ansätze. Ein Verfahren, welches in
der Informatik schon länger erforscht wird, sind die künstlichen neuronalen Netze (kurz
KNN). Ein künstliches neuronales Netz simuliert praktisch ein neuronales Netz aus der
Biologie. Wie auch bei dem realen Vorbild, verbinden sich bei einem KNN die künstlichen
Neuronen während des Lernprozesses miteinander. Je länger dieser Prozess andauert, desto
komplexer wird das Netz und desto „klüger“ wird die KI[21].
2
Unreal Tournament 2004 wurde von der Firma Epic Games im Jahre 2004 veröffentlicht. Das Spiel ist ein
futuristischer Ego-Shooter, der hauptsächlich für Multiplayerpartien ausgelegt ist.
17
Abbildung 5
Wegpunktkarte aus dem Spiel Counterstrike 2D
Wichtig bei den KNN ist das Lernen, also die Verknüpfung der künstlichen Neuronen
untereinander. Dafür gibt es mehrere Ansätze. Nämlich das überwachte Lernen, das
bestärkende Lernen und das unüberwachte Lernen. Im Beispiel einer Handschrifterkennung
kann man sich das wie folgt vorstellen. Bei dem überwachten Lernen wird der KI ein Wort in
Handschrift übergeben und gleichzeitig auch das Wort in Klartext. Das KNN bildet daraufhin
die notwendigen Verbindungen zwischen den einzelnen künstlichen Neuronen, um so in
Zukunft die Muster erkennen zu können. Bei einem bestärkenden Lernen würde man dem
neuronalen Netz ebenfalls ein handgeschriebenes Wort übergeben. Anders als bei dem
überwachten Lernen übermittelt man dem Netz nur noch, ob das erkannte Wort richtig oder
falsch ist. Bei einem Unüberwachten Lernen wird nur das Muster vorgegeben. Die restlichen
Einstellungen bewerkstelligt das Netz dann selber.
KNN haben sich bis heute in Spielen noch gar nicht durchgesetzt. Dies liegt unter
anderem an der zum einen schwierigen Implementierung. Auf der anderen Seite bedarf es
einen hohen Aufwand das Netz einzurichten und zu pflegen. Es ist mitunter auch ein großes
Problem die Entwicklungsrichtung des KNN fest vorzugeben. Schwierig ist zudem zu
überwachen, welche Reize in das KNN mit einfließen. So könnte es passieren, dass das KNN
auf einmal auf merkwürdigste Ereignisse reagiert, welche bei der Einrichtung des Netzes
irgendwo präsent waren, ohne dass das wirklich gewollt ist.
Für unser Beispiel PONG wäre ein KNN bestimmt ein interessanter Ansatz. Man
würde die KI einfach eine Weile gegen einen menschlichen Spieler spielen und so die KI das
Spiel selbst lernen lassen. Man müsste der KI nur vorgeben, welches Ziel das Spiel besitzt.
Dabei würde es sogar reichen ihr mitzuteilen, dass sie mehr Punkte braucht als der andere
Spieler. Den Rest würde die KI dann selbst erlernen. Die KI würde dadurch eine viel
menschlichere Spielweise erlangen, was den Spielwert um einiges erhöhen würde.
4.8
Die Module im Spiel
Nachdem die einzelnen Module nun ausführlich erläutert wurden, stellt dieser
Abschnitt noch mal diese gebündelt in einem Spiel vor. Als Spiel wird dazu ein Rennspiel
ausgewählt, vergleichbar mit dem schon angesprochenen DTM Race Driver 2.
Damit die KI überhaupt das jeweilige Rennfahrzeug steuern kann, benötigt sie einen
Controller. Dieser sendet die Steuerdaten dann an den Simulator weiter, der die Änderungen
im Spielgeschehen durchführt. Der Controller ist also ein wichtiger Bestandteil des Spiels und
ein Element aus dem Modul Interaktion.
Da ein Fahrer allgemein blind keine Chance haben wird ein Rennen zu gewinnen,
benötigt der KI-Fahrer Sinne, um die Strecke und die anderen Fahrzeuge wahrzunehmen.
Dies erfordert Funktionalitäten aus dem Modul Wahrnehmung. Dabei nimmt die KI die
18
Strecke nicht als Bild, sondern nur als Sammlung von Spieldaten war. Diese Daten beinhalten
beispielsweise die Position auf der Strecke, die Geschwindigkeit des Fahrzeuges oder auch,
ob die nächste Kurve in Sichtweite ist. Dabei gilt es zu beachten, dass die KI nicht zum
„allsehenden Auge“ wird. Dazu werden die Daten, welcher der KI zur Verfügung gestellt
werden und die Zugriffszeiten eingeschränkt.
Damit das Spiel eine Basis-KI besitzt, brauchen die Computerfahrer noch die
Funktionen aus dem Modul Reaktion. Dabei werden den KI gesteuerten Rennfahrern
Entscheidungsbäume zur Verfügung gestellt, nach dessen Regeln sie ihre nächste Aktion
berechnen. So errechnet die KI als Reaktion „bremsen“, wenn die nächste Kurve in Sichtweite
und die eigene Geschwindigkeit noch zu hoch ist.
Nun kann man die KI des Rennspiels mittels Erweiterungen noch ein wenig ausbauen.
Damit die KI-Fahrer sich nicht nur wie kühl berechnende Maschinen verhalten, sollten ihnen
Gefühle einverleibt werden. So fährt dann ein Computerfahrer auf einem hinteren Platz
wesentlich aggressiver, als der KI-Fahrer auf dem 1. Platz. Die Nachbildung von diesen
Gefühlen bzw. Gefühlszuständen ist ein Bestandteil des Moduls Erinnerung.
Da es prinzipiell mehrere Möglichkeiten gibt eine Rennstrecke zu bewältigen, ist es
möglicherweise sinnvoll die KI-Fahrer die beste Route vorher selbst bestimmen zulassen.
Dies könnte man mit einer Wegpunktsuche bewerkstelligen. Die Möglichkeit eine
bestmögliche Route zu berechnen, die so genannte Wegpunktsuche, stammt aus dem Modul
Suche. Aber auch wäre es denkbar, dass die KI mittels Suchbäumen berechnet, in welcher
Runde der nächste Boxenstopp am günstigsten ist.
Am praktischsten wäre jedoch das Modul Lernen für die KI. So könnte man zum
Beispiel mittels eines künstlichen Neuronalen Netzes die KI von einem professionellen
Rennfahrer lernen lassen und somit dem Spieler eine große Herausforderung bieten. Auch
wäre es dann durchaus möglich, dass die KI auch vom Spieler weiter lernt. Dadurch kann die
KI noch über lange Zeit hinweg den Spieler immer wieder herausfordern, da die KI sich
fortwährend ändert und verbessert.
Dieses Beispiel soll noch einmal verdeutlichen, dass sich die verschiedenen Techniken
aus den vorgestellten Modulen beliebig in verschiedene Spiele integrieren lassen. Natürlich
achtet eine KI in einem Strategiespiel auf völlig andere Spieldaten, als eine KI aus einer
Fußballsimulation. Trotzdem basieren die Module bei beiden Spielen auf den hier
vorgestellten Prinzipien. Wie auch schon vorher erläutert wurde ist dabei nicht jedes Modul in
jedem Spiel sinnvoll einsetzbar. Meist genügt auch eine einfache KI, um dem Spieler
genügend Spielspaß zu bieten.
19
5
Ausblick
Bezüglich der Zukunft von künstlicher Intelligenz in Spielen sind die Spieledesigner
unterschiedlicher Meinung. Die einen sehen schon das Ende des ewigen Grafik-Booms in
Spielen kommen und glauben, dass die KI einen ähnlichen Entwicklungsschub erfahren
wird[19]. Andere Designer sind da in ihren Aussichten etwas verhaltener. Dieser Meinung ist
auch Brian Reynolds, der Designer des Strategiespiels Rise of Nation, über die Zukunft der
KI. Er sieht für die KI einen „langsamen evolutionären Prozess“ [14].
Der wohl kostenaufwändigste Teil eines Spieles ist mit Sicherheit die Grafik. Dies ist
durchaus nachvollziehbar, schließlich ist die Grafik eines Spiels die wichtigste Schnittstelle
zwischen dem Spiel selbst und dem Menschen. Darüber hinaus ist die Grafik eines der
wichtigsten Bewertungskriterien eines Spieles und mit ihr wird schon früh in der Entwicklung
für ein Spiel geworben. Ob sich die Bedeutung der Grafik in der Zukunft so schlagartig
ändern wird, wie es teilweise angekündigt wurde, bleibt daher fragwürdig. Somit wird auch in
Zukunft ein hoher Teil der Entwicklungskosten in die Grafikengine investiert werden und für
die KI bleibt dann nicht mehr allzu viel übrig.
Fakt ist aber, dass die alten Beschränkung für die KI, nämlich die geringe verfügbare
Rechenkapazität, am schwinden ist. Heutzutage haben sich Computer mit
Mehrfachkernprozessoren mit mind. 2 Rechenkernen mittlerweile etabliert. Damit sollte es
dann in naher Zukunft kein Problem mehr darstellen genügend Rechenkapazität für die KIRoutinen in einem Spiel zur Verfügung zu haben.
Theoretisch ständen also den Entwicklern bei Computerspielen alle Tore offen für eine
gute KI, die sich dann vielleicht sogar im Verhalten einem Menschen ähneln kann. Auch
lassen sich nun eher aufwändige Algorithmen für künstliche Intelligenz aus der Informatik in
Spiele integrieren. Wann und ob überhaupt jemals so etwas in einem Spiel integriert wird
kann man allerdings noch nicht absehen. Denn wie der Entwickler Brian Reynolds sagte:
„Momentan ist den Leuten die Optik wichtiger“[14]. Die Grafik eines Spiels ist nun mal das
Verkaufsargument Nr. 1 und auch das Kriterium, wonach Spiele in ihrer Entwicklung
beurteilt werden. Mit der KI kann man schlecht auf einem Screenshot für Aufregung sorgen.
Außerhalb des Spielemarkts wird die KI nach wie vor weiter erforscht werden. So sind
momentan gerade im Bereich der autonomen Systeme, vor allem für die militärische Nutzung,
viele Projekte in Arbeit. Bis diese Fortschritte allerdings in die KI in Spielen vorgedrungen
sind, wird es dann aber auch einige Zeit brauchen. Bisher haben sich Errungenschaften der
Informatik in der KI nur zögerlich in der Spielewelt etabliert.
Allerdings wird mit Sicherheit die Entwicklung der KI auch in Spielen weitergehen.
So wird man mit Sicherheit in Zukunft komplexere KI – Strukturen in Spielen vorfinden
können. Dennoch gilt es bei Spielen immer zu beachten, dass das Spiel zu jedem Zeitpunkt
Spaß machen muss. Damit wäre dann zum Beispiel eine zu leistungsfähige KI, die in wenigen
Partien sämtliche Schwachstellen eines Spielers erlernt und somit ihn in jeder weitereren
Partie besiegen kann, nicht sehr vorteilhaft für den Spielspaß.
20
Literatur
[1]
Lucas, Richard (2005), An Outlining for Determining the Ethics of Artificial
Intelligence, Centre for Applied Philosophy and Public Ethics, Charles Sturt
University, Australien
[2]
Cruse, Holk / Dean, Jeffrey / Ritter, Helge (1998), Die Entdeckung der Intelligenz
oder Können Ameisen denken?, Beck, München, 1. Auflage
[3]
Breitenbach, Dr. Erwin, Intelligenzdefinitionen
http://wwwalt.uni-wuerzburg.de/sopaed1/breitenbach/intelligenz/def.htm
(letzter Aufruf 17.06.2006)
[4]
Russel, Stuart / Norvig, Peter (2003), Artificial Intelligence – A Modern Approach,
Prentice Hall, New Jersey, 2. Auflage
[5]
Winston, Patrick Henry (1987), Künstliche Intelligenz, Addison-Wesley, Bonn,
1.Auflage
[6]
Görz, Günther (1995), Einführung in die Künstliche Intelligenz, Addison-Wesley,
Bonn, 2. Auflage
[7]
Bratko, Ivan (1991), PROLOG programming for artificial intelligence, AddisonWesley, Workingham, 2. Auflage
[8]
Shapiro, Stuart C. (1992), Encyclopedia of Artificial Intelligence (1+2), Wiley, New
York, 2. Auflage
[9]
Saygin, Ayse Pinar / Cicekli, Ilyas / Akman, Varol (2000), Turing Test: 50 Years
Later, aus Minds and Machines 10 (S. 463 – 518), Kluwer Academic Publishers
[10]
Oppy, Graham / Dowe, David (2005): The Turing Test
http://plato.stanford.edu/entries/turing-test/
(letzter Aufruf: 17.06.2007)
[11]
Home Page of The Loebner Prize in Artificial Intelligence (2006)
http://www.loebner.net/Prizef/loebner-prize.html
(letzter Aufruf 17.06.2007)
[12]
Marsiske, Dr. Hans-Arthur (2007), An der langen Leine, C’t Ausgabe 9, Heise
Verlag, Hannover
[13]
Löwenstein, Richard (2007) : Der Geist der Maschine
http://www2.onspiele.t-online.de/dyn/c/83/22/58/8322584.html
(letzter Aufruf: 13.06.2007)
[14]
Schwerdtel, Markus, Schlaue Spiele 2, Gamestar August 2004, IDG Entertainment
Media GmbH, München
21
[15]
Steiger, Dirk / Schmid Christian, Guck mal wer da lebt, Gamestar Juni 2005, IDG
Entertainment Media GmbH, München
[16]
Newborn, Monty (2003), Deep Blue – An Artificial Intelligence Milestone, Springer,
New York, 2. Auflage
[17]
Schmitz, Petra, Far Cry, Gamestar Mai 2004, IDG Entertainment Media GmbH,
München
[18]
Funge, John David (2004), Artificial Intelligence for Computer Games, A K Peters,
Wellesey, 1.Auflage
[19]
Nareyek, Alexander (2004), AI in Computer Games
[20]
Schwerdtel, Markus, Schlaue Spiele 1, Gamestar Juni 2004, IDG Entertainment
Media GmbH, München
[21]
Haykon, Simon S. (1999), Neural Networks – a Comprehensive Foundation, Prentice
Hall, Upper Saddle River, 2. Auflage