Artificiell Intelligens inom datorspel – Är det ett seriöst ämne? Tobias Andersson, [email protected] Erik Johnasson, [email protected] Information – kunskap – vetenskap – etik DVA223 SAMMANFATTNING Häri kommer ämnet artificiell intelligens inom datorspel att diskuteras med hjälp av frågan ’hur seriöst är egentligen ämnet AI inom datorspel?’. Det börjas med en liten förklaring om vad artificiell intelligens(AI) egentligen är och hur det kan användas inom samhället för att göra det lättare för läsaren att förstå sig på rapporten. Detta följs av en historik med olika datorspel genom tiderna som har använt sig av AI och en liten förklaring om hur dessa spel använde sig av den AI de har, samt en lite djupare titt på klassikern Pac-­‐Mans AI. Huvuddelen av rapporten börja med att förklara varför AI inom datorspel inte endast är där för nöjets skull, hur det passar in inom akademiska områden. Det finns även en kort beskrivning av hur ett antal olika sorters algoritmer och typer av metoder fungerar som används till AI inom spel, där det även förklaras vad dessa används till. Som slutdel av rapporten spekulerar rapportens författare om framtiden inom AI till datorspel, med lite extra information utifrån, som sedan följs av författarnas slutsatser ifrån denna rapport. INNEHÅLLSFÖRTECKNING Artificiell Intelligens inom datorspel – Är det ett seriöst ämne? ............................................................ 1 SAMMANFATTNING ................................................................................................................................ 2 INNEHÅLLSFÖRTECKNING ....................................................................................................................... 3 INLEDNING .............................................................................................................................................. 4 Vetenskaplig metod ............................................................................................................................ 4 Källkritik ........................................................................................................................................... 4 Artificiell intelligens inom datorspel ....................................................................................................... 4 AI inom spel genom tiden ................................................................................................................... 4 1979 – Pac-­‐Man .............................................................................................................................. 5 1987 – Metal Gear, 1990 – Metal Gear 2 ........................................................................................ 7 1991 – Civilization ........................................................................................................................... 7 1992 – Mortal Kombat .................................................................................................................... 7 1994 – X-­‐COM: UFO Defense .......................................................................................................... 7 1997 – Age of Empires .................................................................................................................... 8 2001 – Black and White ................................................................................................................... 8 2004 – Hitman: Contracts ............................................................................................................... 8 2008 – Left 4 Dead .......................................................................................................................... 8 2011 – Crysis 2 ................................................................................................................................ 8 2013 – Last of us ............................................................................................................................. 8 Användning av spel till forskning ........................................................................................................ 8 Olika AI metoder ................................................................................................................................. 9 Pathfinding ...................................................................................................................................... 9 Behavior trees ................................................................................................................................. 9 State Machine ............................................................................................................................... 10 Planning ......................................................................................................................................... 10 Learning ......................................................................................................................................... 10 Social intelligence .......................................................................................................................... 11 Framtiden för AI inom spel ............................................................................................................... 11 SLUTSATSER .......................................................................................................................................... 11 REFERENSER .......................................................................................................................................... 12 INLEDNING För att kunna förstå sig på vad denna rapport går ut på bör man först förstå vad artificiell intelligens är. Zhongzhi Shi förklarar i [Shi11] att artificiell intelligens oftast definieras som vetenskapen och ingenjörs skap att imitera, förlänga och augmentera mänsklig intelligens med artificiella sätt och tekniker för att skapa intelligenta maskiner. Detta betyder att artificiell intelligens är i huvuddel skapad för att hjälpa människor med olika sorters problem som skulle ta för lång tid för en vanlig människa att ta hand om. Shi berättar i boken att artificiell intelligens är där precis som den industriella revolutionen var där för att ta bort tungt fysiskt arbete, men istället för fysiskt arbete hjälper den med mentalt arbete. Utvecklingen av matematik, logik och automatateori är några av de saker som lade grunden för utvecklingen av artificiell intelligens, förklarar Shi. Under åren som artificiell intelligens har använts har självklart algoritmerna och möjligheten med den ökat, vilket betyder att mer och mer mentalt arbete kan flyttas över till maskiner istället för människor. Genom detta, med mer möjligheter inom den artificiella intelligensen, blir det även mer möjligheter inom spel som använder sig av artificiell intelligens för att ge spelarna en utmaning. Vetenskaplig metod Detta kan anses vara en populärvetenskaplig rapport då den håller sig till vetenskap men är riktad mot den bredare allmänheten. Tillvägagångssättet har varit litteraturstudier och en hel del internetstudier. Anledning till att dessa metoder blev valda var på grund av ämnets storlek och den stora tillgången till AI inom datorspel på internet. Just i denna rapport har det dykt upp en hel del oförutsedda delar som det skulle kunna forskas mycket djupare i, men med tanke på vår frågeställning, är AI inom datorspel ett seriöst forskningsämne, räcker det med en översikt på dessa oförutsedda delar. Källkritik [GHOST]-­‐ Denna rapport skriven av Jamie Pittman där han bryter ner mekaniken bakom Pacman och dess AI för spökena. [AIGames]-­‐ Denna artikel är över tio år gammal, vilket betyder att stora delar inte har någon betydelse just nu. Dock tar han upp några punkter som inte bör ha någon stor relevans om det är ifrån detta år eller tio år tillbaka, som att datorspel är en objektiv plats att testa AI på enligt den AI de skapade. Artificiell intelligens inom datorspel AI inom spel genom tiden För att ge några bra exempel på AI inom spel kan det vara bra att börja vid ett tidigt skede och arbeta oss till dagens AI inom spel. (notera att dessa exempel inte nödvändigtvis reflektera omgivningens syn på den bästa AI under den tiden utan är endast exempel på typer av AI.) 1979 – Pac-Man Ett av de första spel som använder sig av något som börjar likna AI är Pac-­‐Man, där fienderna ser ut som om de samarbetar för att få tag på spelaren. I boken [AIG09] förklarar författaren att det antagligen är det första spel där en något ordentlig AI användes. Han berättar att de fyra spöken, som är fienderna, använder sig av en State Machine. Denna State Machine kunde bestämma om fienderna jagar spelaren eller inte. Sedan har dessa spöken olika beteendet i hur de tar sig mot Pac-­‐Man, för att få det att se ut som om de samarbetar ordentligt. “Blinky” Blinky är det röda spöket och har ett väldigt enkelt beteende. Den siktar på den ruta som spelaren, Pac-­‐Man, befinner sig på vilket gör att Blinky förföljer Pac-­‐man. Fig. 1 Blinky och hur Blinkys AI fungerar. “Pinky” Pinky (rosa spöket) använder sig av Pac-­‐Mans position och riktning för att placera sin ”mål ruta” fyra rutor framför. Detta fungerar om Pac-­‐Man är riktad till vänster, neråt och till höger. Men uppåt genererar koden fel och Pinkys ”mål ruta” placeras fyra rutor uppåt och fyra till vänster. [Ghost] Fig. 2 Pinky och hur Pinkys AI fungerar. “Inky” Inky (blåa spöket) är lite annorlunda. Han är det ända som använder sig av andra faktorer än spelaren. Inky använder sig av Blinkys (det röda spöket) position och drar en vektor från dess position till en ruta två rutor framför Pac-­‐Man, sedan fördubblas denna vektor och där den pekar är nu Inkys ”mål ruta”. Fig. 3 Inky och hur spökets AI fungerar. Detta genererar i ett litet konstigt beteende när Blinky inte är i närheten av Pac-­‐Man men när Blinky kommer ikapp kan du räkna med att Inky inte är långt ifrån. [Ghost] “Clyde” Clyde (orangea spöket) ger intrycket av att han har sin egen stil och bryr sig inte om Pac-­‐ Man. Om Pac-­‐Man är längre än åtta rutor ifrån använder Clyde samma taktik som Blinky, dvs. att Clydes “mål ruta” blir Pac-­‐Mans position. Om Pac-­‐Mans position är mindre än åtta rutor bort kommer Clyde att markera sin “mål ruta” till nedre vänster hörn. [Ghost] Fig. 4 Clyde och hur spökets AI fungerar. 1987 – Metal Gear, 1990 – Metal Gear 2 En grundläggande start på fiendens artificial intelligence, med primitiva patrullmönster. Metal Gear introducerade också ordentliga reaktioner från fienden som reagerade på spelaren. I Metal Gear 2 blev det möjligt för fienden att b.la höra misstänksamma ljud vilket byggde till en alltmer realistisk AI. 1991 – Civilization Civilization var det första spelet då “datorn” kunde dynamiskt ändra mellan passiv och fientlig. Med strid-­‐ och förhandlingskunskaper som lika viktiga delar inom spel mekaniken. 1992 – Mortal Kombat Mortal Kombat ett av dom tidigaste “fighting” spelen med AI när den är som bäst. AI motståndaren kunde effektivt blockera och reagera till dina rörelser vilket genererade en ny utmaning inom “fighting” genre. 1994 – X-COM: UFO Defense Ett klassiskt RTS (Real Time Strategy) spel där AIn hade otroliga strategiska kunskaper som revolutionerade RTS genren. 1997 – Age of Empires Tidiga RTS spel gjorde att AIn kunde fuska till sig pengar och gratis resurser för att utmana spelaren på ett bra sätt. Age of Empires var det första spelet dom tog bort denna strategi och ersatte den med en generellt smart taktik istället. Det var inte alltid effektiv men det var en början. 2001 – Black and White AIn i detta spel varierade allt från hur du tränar upp ditt djur till hur stadsinvånarnas reaktioner skulle vara, vilket var baserat på om du gjorde goda gärningar eller onda gärningar. Det var ett stort steg framåt för AI inom spel. 2004 – Hitman: Contracts Hitman har alltid tvingat dig att vara väldigt försiktig på grund av en realistisk AI. Denna AI kollar efter abnormalt beteende som vapen i handen, om du springer där du inte borde springa eller vill gå in i en dörr du inte borde vara utan rätta klädseln. 2008 – Left 4 Dead Left 4 Dead hade inte den bästa fiende intelligensen men det var en AI som byggde på att göra varje möte med fienden så spännande som möjligt för att alltid hålla dig på tårna. Det AIn tog hand om var t.ex. omgivningens händelser som ljud och rörelser. 2011 – Crysis 2 Crysis 2 har en fiende AI som tillåter dem att undvika dina skott, ducka och ta skydd när det behövs men också samarbeta med varandra för att t.ex. “flankera” dig på sidorna. 2013 – Last of us Last of us fokuserade på en “AI-­‐buddy” som ska hjälpa dig i ditt äventyr på bästa sätt. Detta genererade i en AI som t.ex. hjälper dig att “flankera” fienden på ett effektivt sätt. Med hjälp av dessa exempel blir det möjligt att se hur den AI som används inom spel har blivit mer komplicerad under åren, vilket betyder att AI inom spel fortfarande utvecklas. Vad kan man då göra för att forska inom AI? Användning av spel till forskning De flesta ser nog på allt inom datorspel som rent nöje, där det inte finns någon plats för någon seriös forskning. Men när det kommer till artificiell intelligens har faktiskt spel en användning. De förklarar i artikeln [RTSL] att real time strategy spel används för att testa de senaste fynden inom artificiell intelligens. Ett sådant spel brukar oftast gå ut på att spelaren möter andra spelare eller en “datorstyrd” spelare, där artificiell intelligens är vad som styr allt som har med fiender att göra, vilket betyder att intelligensen hos det datorstyrda laget måste hållas på en nivå som kan ha en chans mot människor. John E. Laird förklarar i artikeln [AIGames] hur de använde sig av datorspelet Quake II för att skapa en artificiell intelligens som är smart nog för att kunna ha en chans mot en spelares intelligens, och inte endast deras reaktionsförmåga. Han förklarar även att AI inom datorspel undviker den kritik som riktas mot forskning inom simuleringar, eftersom en simulering oftast använder sig av en förbestämd sorts värld där det redan är bestämt vilka delar av simuleringen som blir lätt att göra och vilka som blir svåra. Alltså är spel en bra plats för test att se hur väl det går att simulera en människas beteende med artificiell intelligens, vilket betyder att spel inte endast är bra för nöje. Olika AI metoder Pathfinding Pathfinding är som det låter. Den tillåter AIn att finna bästa möjliga väg från A till B. Några exempel på pathfinding är: Dijkstras algoritm Denna algoritm startar med en nod och en mängd av öppna noder. När agenten har besökt en ruta i sin “grid” stängs den ruta som agenten var på och öppnar upp de rutor som är runtomkring och väljer sedan den ruta som anses ha den kortaste distansen från vart du står. Agenten fortsätter på detta sätt för att hitta den kortaste vägen till målet. A* Algoritm A* (uttalas A star) är en variant av Dijkstras algoritm och används väldigt ofta inom spel. Tillskillnad från Dijkstras algoritm använder A* sig av en så kallad “tyngd” till varje öppen nod på banan vilket betyder att varje nod har en egen uträkning på hur långt ifrån noden är från mål. A* tar alltid ut den kortaste vägen till målet, som Dijkstras algoritm, och algoritmen var uppfunnen av Raphael Nilsson år 1968 och forskare har sedan dess visat stort intresse i att analysera och förbättra algoritmen. [AAofAI09] D* Algoritm D* (uttalas D star) är en algoritm främst för robotar men används också för spel. Fungerar på ungefärligt samma sätt som A* men till en början antar D* att det är ett tomt fält och att det inte finns något hinder. Utifrån detta sätter D* ut en riktning för den kortaste vägen till mål (baserat på en bana utan hinder) och när datorn observerar den nya informationen om hinder och annat lägger man till den informationen och räknar ut en ny väg. Behavior trees Behaivor trees är ett sätt att modellera olika beslut som kan tas genom andra beslut. T.ex. om du vill att din karaktär skall gå in i "combat" som visas i Fig. 5 då behöver den först ta beslut om vilken typ av combat innan AIn kan ta "action". Behvior tree är alltså en serie tillstånd som din AI är tillåten att vara i eller ta ställning till. Fig. 5 Exempel på ett behavior tree. State Machine En state machine är likt ett behavior tree som förklaras ovan. De kan användas för att bestämma vad för sorts beteende en AI skall använda sig av vid olika tillfällen. Ett exempel vore Pac-­‐Man spelet. Om Pac-­‐Man har ätit det föremål som gör att de spöken som jagar honom blir blå, då ändras den state machine som fienderna använder sig av så att den säger till dem att fly istället för att jaga. Planning Inom ”planning” får AIn en beskrivning av hur världen i spelet ser ut och vad som förväntas av den för att slutföra och hamna i “mål”. ”Planning” problemet handlar om att hitta en plan som garanterar en sekvens av händelser som kommer att leda till mål. Detta ämne är en av de stora delarna inom AI där det utförs en hel del forskning. Learning En learning machine är en branch av AI som används för att lära sig saker i ett system. T.ex. kan du “träna” upp AIn till att fördela vad som är skräppost och inte på en mailklient. Social intelligence AI handlar om att få personen i fråga att känna att man inte spelar ett spel mot en dator utan försöker att få det så likt människan som möjligt. Därför kommer Social intelligence in, ta Siri från iPhone som exempel. Ställer du samma fråga igen och igen till Siri får du olika svar. Ställer du samma fråga igen och igen till en vanlig dator får du alltid samma svar. Detta skulle kunna användas för att få NPC i spel att bli mer mänskliga. Framtiden för AI inom spel Vad kan förväntas av AI idag och vad kan vi förvänta oss imorgon? Inom spel (som styr i stort sätt all efterforskning inom datorer) är vi väldigt fokuserade på grafiken. Det ska vara den bästa grafiken i det senaste spelet. Som det står i artikeln, när grafiken har planat ut och vi har fått ut så mycket vi kan från grafiken kommer mer fokus och resurser läggas på att få den bästa AI som möjligt. [AIGames] Vad kan då göras? NPC (non-­‐player character) kan förbättras väldigt mycket. T.ex. skulle en NPC kunna reagera på hur många gånger den har pratat med dig eller reagera på vad du har på dig. En NPC kanske inte gillar blåa sköldar och kommer därför att ha en dålig attityd mot dig. NPC skulle också kunna ändra uppdragen för varje omgång du har spelat igenom spelet vilket skulle höja värdet på en om spelning radikalt. Learning Machines kommer också att vara en stor faktor i framtiden inom AI. Tänk en “agent” som lär sig dina rörelser mer och mer och det blir svårare och svårare! Det går inte att säga emot när man säger att datorerna får mer och mer kraft, vilket betyder att även om det skulle bli så att grafiken fortsätter att vara i centrum inom de flesta spelen kommer det bli möjligt att göra mer med allt. Detta leder till att dessa möjligheter som tidigare har diskuterats blir mer möjliga med denna nya kraft i datorerna. Alltså kan mer information sparas och mer komplicerade algoritmer kan användas, vilket leder till att AI bör förbättras i framtiden. SLUTSATSER Vi kom fram till att AI inom datorspel inte bara används för nöjes skull utan kan också appliceras i seriös forskning som skrivet om tidigare. När man ska dra paralleller mellan dagens forskning och datorspel behöver man bara kolla åt fysikens håll. Tack vare spel och de stora kraven av spelare skall fysiken i spel, som gravitation och verkliga kollisioner, vara så verklig som möjligt. Detta tillåter alla andra industrier att ta hjälp av spelmotorer för att simulera t.ex. kranar och hur dessa står emot utomstående krafter. Vi tror att evolutionen inom spel har gått som följer: Vi börjar med ett simpelt spel och försöker öka grafiken tills dess att vi inte kan öka den mer, efter det gör vi allt så fysiskt rätt som möjligt enligt den verkliga världen och snart kommer alla resurser att läggas på att göra AI så bra som möjligt. För att svara på vår egen frågeställning, är AI inom datorspel ett seriöst forskningsämne, vill vi säga, ABSOLUT! Det är genom efterfrågan av alla datorspel som kommer att leda till de resurser som krävs för att utveckla AI och när detta sker kommer resten av industrin kunna åka på denna våg precis som den åker på fysik vågen eller grafik vågen. REFERENSER [Shi11] Zhongzhi Shi, “Advanced Artificial Intelligence”, Vol. 1, page 1-­‐5, 2011 [RTSL] 2014-­‐03-­‐07 http://eds.a.ebscohost.com/eds/detail?vid=21&sid=b588f24b-­‐26bd-­‐ 49a4-­‐a2f4-­‐ 47745ccee10b%40sessionmgr4005&hid=4213&bdata=JnNpdGU9ZWRzLWxpdmU%3d#db=e dsarx&AN=1401.5424 [AIGames] John E. Laird, “Using a Computer Game to Develop Advanced AI”, 2001 [GHOST] 2014-­‐03-­‐07 http://home.comcast.net/~jpittman2/pacman/pacmandossier.html [AIG09] Ian Millington, John Funge, “Artificial Intelligence for Games”, Vol. 2, page 4-­‐8, 2009, [AAofAI09] Enn Tyugu, “Algorithms and Architectures of Artificial Intelligence”, Vol. 1, pages 60-­‐62, 2009