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