Artificiell intelligens i spel En redogörelse Björn Larsson 871210-4036 bjola054 729G11 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Sammanfattning Under år 2007 omsatte den svenska tv- och datorspelsmarknaden 2,3 miljarder kronor (nyteknik.se). Vi bygger våra egna städer, räddar världen från undergång, slåss mot drakar och tar hand om vår egenskapade familj. Allt i datorns värld. Det finns många delar i ett spel som måste fungera för att sådant ska vara möjligt. Bland annat måste vi se och höra saker vi finner trovärdiga, men vi måste också kunna interagera med världen och kunna påverka den. En av de aspekter inom spelutveckling som gör det möjligt är användandet av artificiell intelligens. I följande redogörelse presenterar jag några av de tekniker som används idag för att skapa beteende och händelser i spel genom artificiell intelligens. Vilka metoder jag valt att ta upp är godtyckligt och helt baserat på eget intresse. Några av de mest klassiska spelen kommer även presenteras, tillsammans med vilka tekniker som användes för att skapa dem. Sida 2 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Innehållsförteckning Sammanfattning ................................................................................................................................2 Figurförteckning................................................................................................................................. 3 Förklaring av termer .......................................................................................................................... 4 Introduktion .......................................................................................................................................5 Om artificiell intelligens ..................................................................................................................5 Spelhistoria och den artificiella intelligensens roll ..........................................................................5 Metoder för artificiell intelligens i spel ................................................................................................ 7 Deterministisk artificiell intelligens................................................................................................. 7 Blackboard-arkitekturer ............................................................................................................. 7 Icke-deterministisk artificiell intelligens ....................................................................................... 10 Genetiska algoritmer ................................................................................................................ 10 Neurala nät ............................................................................................................................... 13 Deterministisk A.I vs. Icke-deterministisk A.I ................................................................................ 14 Fuskande artificiell intelligens....................................................................................................... 14 Spels artificiella intelligens i framtiden ............................................................................................. 16 Referenser ........................................................................................................................................ 18 Litteratur ...................................................................................................................................... 18 Figurreferenser ............................................................................................................................. 18 Spelreferenser .............................................................................................................................. 18 Internetreferenser ........................................................................................................................ 18 Figurförteckning Figur 1 – Uppdaterad blackboard-arkitektur. ..................................................................................... 8 Figur 2 – Blackboard-arkitektur med experter, blackboard och arbiter. ............................................. 8 Figur 3 – Enkel finit-state-maskin för en flock djur. ............................................................................ 9 Figur 4 – Evolutionsprocess för genetiska algoritmer. ...................................................................... 11 Figur 5 – Exempel på neuralt nät. ..................................................................................................... 13 Sida 3 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Förklaring av termer I följande uppsats kommer ett antal termer att användas för att underlätta för läsaren. Dessa är; NPC; Non-player Character. Detta syftar till karaktärer och individer i spel som är styrda av datorn och därför kräver någonsorts artificiell intelligens för att kunna agera och bete sig i spelvärlden. Spelare; Spelaren syftar till den människa som spelar spelet. Sida 4 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Introduktion Den grundläggande introduktion som följer nedan innefattar en mycket kortfattade förklaring av vad artificiell intelligens är, eller A.I, om tv- och datorspels historia och funktion samt vad artficiell intelligens används till i dem. Om artificiell intelligens Artificiell intelligens är en relativt ny vetenskap och kan i enkla ord beskrivas som ett vetenskapsfält som ämnar förstå och skapa intelligenta agenter – det vill säga maskiner, datorer eller datorprogram som är intelligenta (Russel & Norvig, 2003). En sådan vid definition leder dock vidare till frågan ”vad är intelligens då?”. Enligt Russel & Norvig finns det fyra olika egenskaper hos system som, om de innehar någon av dessa fyra egenskaper, kan sägas vara intelligenta. Dessa fyra är; [1] system som tänker som människor, [2] system som beter sig som människor, [3] system som tänker rationellt och slutligen [4] system som beter sig rationellt. (Russel & Norvig, 2003). Ett system som beter sig som en människa skulle därmed kunna kallas intelligent enligt[2]. Det sägs även finnas två olika sorters artificiell intelligens; svag och stark. Svag A.I, eller ibland applicerad A.I, beskrivs av John Searle, som myntade begreppet, som den A.I en maskin visar upp när den behandlar information utan att egentligen förstå den. En sorts mekanisk informationsbehandling om man så vill. Stark A.I är motsatsen där till exempel en dator faktiskt kan förstå den information som behandlas – likt oss människor (Searle, 1980). 1950 introducerade Alan Turing Turingtestet, vilket användes för att avgöra huruvida något var intelligent eller inte. Istället för att lista alla egenskaper som definierade intelligens föreslog Turing att man istället kunde genomföra ett test där en människa ställde skrivna frågor och om han inte kunde avgöra huruvida svaren var skrivna av en människa eller en dator så var datorn intelligent (Russel & Norvig, 2003). Spelhistoria och den artificiella intelligensens roll En vida spridd åsikt är att dator- och tvspel endast fyller en underhållningsfunktion – en uppfattning som inte delas av alla. Raph Koster skriver i boken A theory of fun for game design (2005) att de inte alls är begränsade till denna enda funktion, utan menar att spel, som visserligen strävar efter att vara underhållande, är ett viktigt inlärningsverktyg som mycket väl kan jämställas med till exempel att läsa böcker. Det ena skall självklart inte utesluta det andra, speciellt då att läsa böcker och att spela spel inte utvecklar samma mentala och fysiska förmågor, men att därmed reducera spel till endast underhållning anser Koster vara fel (Koster, 2005). Spel och lekar är något som funnits sedan urminnes tider och inte bara hos människan. Två lejonungar som leker genom att brottas med varandra är en självklar del i den övning och förberedelse de behöver för att bland annat senare kunna jaga och försvara sig. Lek är något som oftast förknippas med barn och unga åldrar men det är inte heller helt sant. En grupp vuxna som går och bowlar kan mycket väl ses som en lek även det. Poängen är att spel är lek och lek är utvecklande, oavsett ålder och oavsett om det sker framför datorn, i en bowlinghall eller på en savann (Koster, 2005). Sida 5 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] I dator- och tv-spel – lek – förekommer artificiell intelligens av flera olika anledningar. En skäl kan vara att skapa en trovärdig värld som för spelaren är intressant och väcker nyfikenhet. Nästan alla spel är idag kommersiella produkter och vinstsyftet gör därför att allt som ger fördelar gentemot konkurrenter är värdefullt. Med dagens kunskap och teknik är det fullt möjligt att skapa skogar, öknar, hav och andra miljöer med både djur- och växtliv som dels kan uppfattas som dynamiskt men också levande. Detta kan vara en avgörande faktor för hur spelupplevelsen uppfattas. Det vill säga som intressant och spännande eller tråkigt och intetsägande. A.I används även för att skapa utmaningar för spelaren. Det finns många spel som inkorporerar karaktärer som inte styrs utav spelaren, utan av datorn eller spelkonsollen, med andra ord NPC:er. Hur dessa rör sig, agerar och uppfattar situationer är en form artificiell intelligens utvecklad med olika metoder beroende på vilket spel det handlar om och vilket beteende som vill uppnås. På liknande sätt har A.I även använts för att avgöra hur allierade kan hjälpa och underlätta för spelaren. Olika karaktärer i olika spel ställer även krav på olika sorters A.I. Ett rörelsemönster för en datorspelare i ett strategispel är inte likadant som för en datorspelare i ett förstapersonsspel (så kallat FPS, first person shooter). Detta eftersom det i det ena fallet ofta handlar om att styra stora grupper av enheter medan det andra kan handla om endast en individ. Olika uppgifter ställer krav på olika artificiella intelligenser (Millington, 2006, Rabin, 2002). Utvecklandet av A.I i spel har gått hand i hand med utvecklandet av själva spelen som den förekommer i. Under 1970 och 80-talet föddes arkadspel där spelare lade i mynt i en spelautomat för att spela. Dessa spel var med dagens mått mycket enkla både i grafik, gränssnitt och artificiell intelligens. Några av de mest klassiska var Pac-man, Space Invaders och Donkey Kong, spel som alla hade gemensamt att A.I:n drevs av mycket få regler tillsammans med enkla slumpmässiga beslut för att spelen skulle vara mindre förusägbara (Rabin, 2002). Allt eftersom utvecklingeb gick framåt introducerades andra spel med andra lösningar för att förbättra spelupplevelsen. Bland annat lanserades Warcraft II (Blizzard, 1995) och Age of Empires 2: The Age of Kings (Ensemble, 1999), båda strategispel i realtid, med utmanande och till synes ”intelligenta” spelare som styrdes av datorn. Förutom dessa titlar figurerade även andra milstolpar inom utvecklandet utav mer och mer intelligenta NPC:er – där spelet Black & White (Lionhead Studios, 2001) var ett av de mest imponerande. Black & White gick ut på att träna en djurliknande varelse till att göra det du som spelare ville, vilket innebar att A.I:n fick ta stor plats. Själva grundstenen i spelet gick ut på att spelarens varelse kunde och skulle lära sig. Detta medförde att en välfungerande artificell intelligens avgjorde huruvida spelet gick att spela eller inte. Alla spel bygger inte på samma sorts princip. I många spel förekommer AI för att öka trovärdigheten och förbättra spelupplevelsen och är då inte direkt avgörande för om spelet ”fungerar” eller inte (Rabin, 2002). Sida 6 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Med kunskap om vad A.I är och hur det definieras kan dess roll i dator- och tv-spel förklaras. Är den artificiella intelligensen som hittas i spel svag eller stark? Svaret är givetvis att den alltid är svag, vilket även nämns i boken AI for Game Developers av David Bourge och Glenn Seeman – informationen som behandlas förstås inte utav datorn eller spelet utan utförs mekaniskt enligt tekniker som kommer att presenteras senare (Bourge & Seeman, 2004). Metoder för artificiell intelligens i spel Nedan presenteras ett sätt att mycket övergripande kategorisera spel-A.I. Detta exemplifieras av några olika tekniker och metoder som används idag, uppdelade enligt den kategorisering som följer. Enligt Bourge & Seeman existerar två olika sorters artificiell intelligens i spel – deterministisk, det vill säga förutbestämd och då förutsägbar, och icke-deterministisk, som är motsatsen – oförutsägbar och mer slumpmässig (Bourge & Seeman, 2004). Deterministisk artificiell intelligens Exempel på deterministisk A.I är den typ av algoritm som användes för att specificera hur ett spöke i det tidiga arkadspelet Pac-man skulle röra sig och jaga spelarens karaktär på skärmen. Detta kan enkelt bestämmas genom att låta spöket röra sig mot spelarens karaktär, eller något annat mål, genom att ta sig fram via x- eller y-axeln. Den deterministiska A.I:n är sedan länge den mest vanliga då den är enklare att implementera, billigare och mer simpel att testa, felköra och rätta till (Bourge & Seeman, 2004). Nackdelen är att sådan A.I är mycket förutsägbar. Har den mänskliga spelaren väl lärt sig ett rörelsemönster eller ett beteende som utförs av den datoriserade motparten så kommer spelet troligen uppfattas som enklare då beteendet inte förändrar sig (Bourge & Seeman, 2004). Det finns även en ytterligaren en nackdel då en deterministisk A.I kräver att alla scenarion och situationer har specificerats och programmerats in i den NPC som ska agera för att den ska fungera. NPC:n måste veta hur den ska agera i en situation och därför måste alla situationers agerande vara känt, bestämt och programmerat. Detta ställer i sin tur krav på mycket arbete ifrån spelutvecklarna (Bourge & Seeman, 2004). Faktiska exempel på deterministiska metoder är finit-state-machines och regel baserade system. Blackboard-arkitekturer När det gäller beslutsfattande inom speldesign kan något användas som kallas för Blackboard-arkitekturer, vilket kan beskrivas som ett verktyg som koordinerar handlingar från flera olika beslutstagare. En blackboard-arkitektur består av tre huvudelement; en uppsättning av olika verktyg för att ta beslut, vanligtvis kallade experter, en blackboard, liknande en svart krittavla, och en arbiter, vilken kan liknas vid en domare. Blackboarden är en area av minne vilket experterna, beslutsverktygen, kan använda för att läsa information från och skriva information till. Enkelt beskrivet kan man säga att en expert tittar på blackboarden, avgör om det finns någon information som kan använda. Om ja så efterfrågar experten kontrollen över blackboarden och gör de ändringar han vill och sedan Sida 7 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] överlåter han kontrollen till andra experter. När en expert gör ändringar skall det noteras att den information som finns på svarta tavlan troligtvis ändras. Arbitern, eller domaren, är den som avgör vilken expert som får kontrollen då flera experter kan efterfråga kontrollen samtidigt. Oftast avgörs detta genom att varje expert berättar för domaren hur användbara de tror att de kommer vara i en viss situation genom att svara genom ett numeriskt värde. Den expert med högst värde väljs, och om två eller fler experter har samma värde väljs en slumpmässigt (Millington, 2006). Nedan, i figur 1, följer ett exempel på hur en blackboard-arkitektur kan se ut, med ett antal experter och med information liggandes i den minnesarea som utgör den svarta tavlan, blackboarden. Figur 2 – Blackboard-arkitektur med experter, blackboard och arbiter. I ovanstående figur visas hur en typisk blackboard-arkitektur kan se ut. Vad som går att utläsa från den information som finns på svarta tavla är att den karaktär som arkitekturen styr har ammunition av värdet fyra, låt oss säga fyra kulor för enkelhetens skull. Att karaktären är oskadad (han är healthy), att fienden är siktad och karaktären är gömd. Detta kan nu följas av ett antal händelser. Till exempel kan flera experter efterfråga kontrollen – låt säga att arbitern ger kontrollen till smygexperten (Stealth expert) då denne har högst Figur 1 – Uppdaterad blackboard-arkitektur. Sida 8 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] värde i hur användbar den bedömmer att den kommer vara i situationen. Till exempel kan eldvapensexperten (firearms expert) avgöra att det finns för lite ammunition för att skjuta och bedömmer sig därför som mindre användbar. Smygexperten avgör att det som är bäst just nu är om karaktären gömmer sig. För enkelhetens skull säger vi även att de andra experterna håller med i denna bedömning och handlingen utförs. Karaktären gömmer sig och informationen på tavlan ändras då ”hide” tillkommer. Med andra ord ser nu arkitekturen ut som i figur 2. Regelbaserade system Regelbaserade system är en form utav blackboard-arkitektur som består utav samma sorts element. En databas med information, som den svarta tavlan, regler som kan läsa och ändra informationen, som experter, och en arbiter som avgör vilken regel som får arbeta. Finit-state-machines Så kallade finit-state-machines är en form utav blackboard-arkitektur, eller rättare sagt ett sorts regelbaserat system och därför en blackboard-arkitektur. Metoden är relativt gammal och användes i några utav de allra tidigaste arkadspelen, men används fortfarande (Bourge & Seeman, 2004, Millington, 2006, Rabin, 2002, Schwab, 2004). I grund och botten består en finit-state-maskin utav ett antal tillstånd, states, som avgör hur maskinen beter sig, samt ett antal vägar som definierar hur maskinen kan byta tillstånd. Figur 3 – Enkel finit-state-maskin för en flock djur. Ovan, i figur 3, visas en enkel finit-state-maskin som används för att definiera rörelsemönster och agerande för en flock med djur. De olika tillstånden som är möjliga för ett djur är beta (graze), Flocka (flock), Separera flocken (separate) och Fly (flee). Vilket state som råder avgörs av faktorer, som om ett rovdjur dyker upp eller om individerna i flocken kommer för nära varandra. Till exempel går det att utläsa från figur 3 att om djuren för tillfället är i tillståndet ”Flykt” och flyr tillräckligt länge för att vara långt borta från det jagande rovdjuret så kommer djuren byta tillstånd till ”flock”, det vill säga flocka. Sida 9 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Dessa sorts maskiner är relativt enkla att skapa och felsöka vilket gör att de är beprövade verktyg som fortfarande används i även moderna spel. Det ligger en styrka i verktygets enkelhet då tekniken är lätt, logisk och överskådlig (Bourge & Seeman, 2004, Millington, 2006, Schwab, 2006). Nackdelen är att det uppstår svårigheter då antalet tillstånd ökar. Låt säga att det fanns ytterligare states i den maskin som presenterades i figur 1. Exempel kan vara ”dricka” och ”sova”. Man kan även tänka sig att vissa djur försvarar sig mot rovdjur, tävlar med varandra om ledarskap och så vidare. Finit-state-machines är begränsade på så vis att de inte klarar av en oändlig mängd av states och övergångar emellan dem. Brian Schwab jämför finit-state-maskiner som silvertejp och skriver att precis som med silvertejp kommer slutprodukten att hålla ihop men det kommer inte vara särdeles vackert (Schwab, 2004). Icke-deterministisk artificiell intelligens De icke-deterministiska metoderna för att skapa A.I kan vara utnyttjandet av till exempel genetiska algoritmer eller neurala nät. ”Intelligensen” hos spelkonsollen eller spelet, och då agerandet, blir mer oförutsägbart då man önskar uppnå en effekt där beteende snarare framkommer genom träning och inlärning jämfört med de deterministiska teknikerna som utnyttjar förutbestämda scenarion i form av kod. Fördelarna med icke-deterministiska metoder är att det generellt sett tar mindre tid att skapa en fungerande A.I då varje situation och scenarion som sagt inte behöver tas i åtanke. Nackdelen är att kontrollen dock minskar och att det kan uppstå situationer som inte förutsetts. Detta på grund av att hela poängen med metoderna är att de ska producera A.I med mer slumpmässiga beteenden. Genetiska algoritmer, neurala nät och beslutsträd är exempel på icke-deterministiska tekniker (Bourge & Seeman, 2004, Millington, 2006, Rabin, 2002, Schwab, 2004). Genetiska algoritmer Djur och växtliv evolverar ständigt för att kunna klara sig bättre i sin omgivning, en insikt som nåddes av Charles Darwin. Enkelt förklarat går evolutionsteori ut på att två föräldrar, med bra gener, producerar avkomma som i sin tur drar nytta av de gener den fått av de två föräldrarna. Det sker även slumpmässiga mutationer ur detta som i vissa fall gagnar avkomman, och i andra fall är till ingen nytta. Det är oförutsägbarheten från de slumpmässiga mutationerna, tillsammans med de existerande gener från föräldrar som bär en art framåt (Darwin, 1859). Detta har inspirerat A.I-forskare att skapa så kallade genetiska algoritmer, som även används inom speldesign (Bourge & Seeman, 2004). Genetiska algoritmer används inom speldesign för att evolvera fram individer ur en population som är utrustade med egenskaper som är till stor nytta för att lösa något problem. Individerna kan ses som olika typer av kod som löser problemet på olika sätt, och koden används sedan för att specifiera till exempel ett rörelsemönster. Den evolutionsprocess som används inom speldesign för att få fram individer inkorporerar fyra steg. Det första steget innebär att tillskriva en startpopulation med ett antal egenskaper som kan användas för att lösa något problem som finns i spelet. Med andra ord olika typer Sida 10 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] av kod som ger olika beteenden och egenskaper. Problemet, eller utmaningen, kan till exempel vara att ta död på en mänsklig spelaren. De olika individerna i population får sedan försöka lösa problemet och försöken betygssätts enligt någon fördefinierad skala, vilket är steg två. Man kan tänka sig att varje individ får försöka ta död på spelaren hundra gånger och den som lyckas flest gånger är den som lyckast bäst och därför betygsätts högst. Betyg, eller rankningssystemet, hjälper speldesigner att urskilja de bästa ur populationen och dessa väljs för fortplantning – steg tre. De utvalda individerna kombineras, ”paras”, för att skapa nya individer som får genomgå samma sorts betygssättning som individerna från tidigare populationer. Här, i steg fyra, introduceras även slumpmässiga mutationer vilket gör att nya variationer och beteenden kan uppstå. Mutationerna kan till exempel ses som någon egenskap som ursprungligen inte fanns hos föräldrarna men som uppstår hos avkomman (Bourge & Seeman, 2004, Schwab, 2004). Trots att speldesignern kan ha god uppfattning om vilka egenskaper som kommer att vara användbara för en individ när denne, till exempel, ska ta död på en mänsklig spelare, så är det viktigt att introducera slumpmässiga mutationer och ha en bred första population. Även om individerna innehar egenskaper som troligen inte kommer vara till någon nytta. Detta på grund av att evolutionsprocessen blir mindre effektiv om det inte finns ett brett urval att börja med. En egenskap som kan ses som helt onödig i början kan mycket väl visa sig vara oumbärlig när den kombineras med någon annan i en senare generation (Bourge & Seeman, 2004, Schwab, 2004). Figur 4 visar nedan hur evolutionsprocessen ser ut. Figur 4 – Evolutionsprocess för genetiska algoritmer. Följande exempel och problem tas upp av Rabin (2002); ett troll ska äta så många får som möjligt, ta död på så många äventyrare som möjligt och utan att själv mista livet. Trollen kan även bli fångade i fällor som ser ut som deras egna tillflyktsorter. Efter femtio Sida 11 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] generationers evolution med en startpopulation på hundra individer kan ett antal egenskaper spritt över den evolverade populationen observeras. Hur individernas betyg räknas ut tas inte upp av Rabin, endast vilka värden de uppvisar. Dålig överlevnadsinstikt; Ingen av de 25 bästa individerna överlevde mer än 50 gånger av de 500 gånger som simuleringen kördes. Stor aptit; De 10 bästa individerna av generation 50 lyckades äta 15-18 får, av 20. Kloka slagskämpar: Trollen lärde sig snabbt att de inte behöver tillbringa tid för att leta efter äventyrare då dessa kommer att komma till dem. De 25 bästa lyckades döda 5-7 äventyrare. Ointresserade av utforskning och läkande; Den bonus ett troll får för att överleva en simulering är mindre än det straff det får då det tar skada. Detta gör trollen ointresserade av att läka gamla sår då det ändå inte kommer väga upp för den skada de tar. Bra på att undkomma fällor; Av de 25 bästa individerna var det endast 4 som tillbringade en hel simulering i fångenskap och ingen som var fångade i mer än 3 simuleringar. Detta beror på att trollen generellt sett inte söker sig till sina tillflyktsorter för att läka sår (se föregående punkt), vilket gör att de inte söker sig till varken riktiga tillflyktsorter eller ovetandes mot fällor. Generellt mycket starka (eng. fit); Vid den första generationen var det ingen individ som fick ett betyg på högre än 200 och genomsnittet låg på 133,8. Vid generation 50 låg 18 individer på 200 och genomsnittet låg på 195,5. Det är av yttersta vikt att välja ett betygsättningssystem som väl representerar hur bra individerna löser uppgiften. Om någon egenskap värdesätts för mycket, vilket leder till att individer väljs ut som annars ignorerats, kommer slutpopulationen inte uppvisa det beteende som efterfrågades. Till exempel nämner Rabin att det i början av trollen evolution lades stor vikt vid överlevnad över lång tid, vilket gjorde att en population fega troll evolverade fram. Dessa överlevde visserligen, men endast genom att fly från varje fälla, äventyrare och får (Rabin, 2002). Som i exemplet ovan evolverar spelutvecklare fram individer som är lämpade för att lösa uppgifter de skapats för. För tillfället är genetiska algoritmer något relativt nytt inom spelvärlden och har inte använts i till närmelsevis lika stor utsträckning som till exempel finit-state-maskiner. Den stora fördelen de innehar är att skapandet utav dem kräver en mindre arbetsinsats än många andra metoder – evolutionsprocessen sköter i stort sig själv. Men genetiska algoritmers stora fördel är till viss del även dess nackdel. Genom användandet av dem för att evolvera fram artificiell intelligens som uppvisar beteende som är mer oförutsägbart än till exempel beteendet som föds ur finit-state-maskiner, framkommer även problemet att tekniken mycket väl kan resultera i ett beteende speldesigners inte tänkt sig. Det är de slumpmässiga mutationerna som kan ses som ett dubbeleggat svärd. Utvecklare har relativt liten insyn och direkt påverkan på hur Sida 12 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] algoritmerna evolverar vilket innebär att felsökning och kontroll blir svårare (Bourge & Seeman, 2004). Rabin drar slutsatsen att genetiska algoritmer är ett användbart verktyg då evolutionsprocessen mycket väl kan producera strategier och kombinationer av strategier som både gör AI:n väl lämpad, men också intressant för en mänsklig spelare att möta (Rabin, 2002). Neurala nät Inom spelvärlden har det länge rått en oenighet kring huruvida neurala nät bör användas i speldesign eller inte. Bland spelarna råder en stark oppinion för att använda dem, då de ibland ses som en universallösning för allt som är fel med spel-A.I idag, medan utvecklare och programmerare snarare betraktar dem som oanvändbara och svåra (Millington, 2006). Ett neuralt nät består av ett flertal noder, belägna i olika lager. I figur 5 som syns nedan presenteras ett exempel på ett neuralt nät med inputlager, ett gömt lager och ett outputlager. I detta nät är varje nod kopplad till alla noder i både föregående och efterföljande lager. Noderna är alltid i något tillstånd, vilket beror på den algoritm som används. Algoritmen styr med andra ord vilket tillstånd noder ska befinna sig i beroende på vilket input den får. I ett nät med flera lager, som detta, kan tillståndet ses som output som skickas till noder i nästa lager. Detta är även exempel på feedforward i ett nät, vilket innebär att varje nod tar input från alla noder i föregående lager och sedan skickar output till alla noder i nästa lager. (Millington, 2006). Figur 5 – Exempel på neuralt nät. Sida 13 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Noderna kan även vara viktade, vilket innebär att det input som kommer in förändras i noden beroende på hur noden är viktad. Detta existerar eftersom man ofta vill ha någon sorts prioritering mellan noderna beroende på vilken output man vill att nätet ska producera. Till exempel kan det vara viktigare för nätet att reagera mer på om NPC:s hälsa är låg, och då nära döden, än om ammunitionen håller på att ta slut (Millington, 2006). Detta förklarar även förekomsten av ett gömt lager, Hidden layer i bilden. Noderna i det gömda lagret är här viktade för att förändra inputvärden som kommer från olika noder i föregående lager. När neurala nät används inom spel handlar det ofta om inlärning. Två tekniker är värdefulla, nämligen feedforward och backpropagation. Vid inlärning tillskrivs varje nods vikt med ett slumpmässigt värde sedan testas nätverket. Testningen genomförs i exempelscenarion, i ovanstående nätverk kan man tänka sig att exempelscenariot är en strid. När testningen är genomförd påbörjas en iteration där feedforward gissar vilket output som kommer genereras beroende på det input som finns och sedan modifierar backpropagation nätverket, och då vikterna, baserat på det output som faktiskt genererades. Sådan iterationer genomförs ofta hundra- eller tusentalsgånger för att få ett så bra nätverk som möjligt. (Millington, 2006). Fördelar med neurala nät är att de är enklare att programmera än regelbaserade system eller finit-state-maskiner. Men en kanske mer spännande fördel är att neurala nät gör det möjligt för AI:n i ett spel att ändra och anpassa sig under spelets gång och därmed lära sig (Bourge & Seeman, 2004). Neurala nät är kraftiga verktyg för AI som är mycket lämpliga för svåra problem som andra metoder inte kan handskas med. Men det får i sin tur konsekvensen att det kan vara svårt att förstå vad nätverket gör och vad det kommer generera för output. Det kan med andra ord vara svårt att veta om NPC:er i ett spel kommer bete sig underligt, eftersom processen är svår att få insyn i och slutprodukten svår att predicera (Bourge & Seeman, 2004). Deterministisk A.I vs. Icke-deterministisk A.I Även om det möjligtvis kan låta som att deterministiska metoder och tekniker är enklare och mindre komplexa och därför på något sätt skulle vara sämre är så inte fallet. Välskapad A.I handlar inte om att ha de mest komplicerade och komplexa lösningarna utan snarare rätt lösning för rätt situation och algoritm (Millington, 2006). Fuskande artificiell intelligens Det låter vid första anblick inte som något som skulle vara särdeles populärt bland spelare, det vill säga att spela mot en fuskande A.I men faktum är att många, om inte de flesta, spel använder sig utav A.I som fuskar (Bourge & Seeman, 2004). Fusk innebär i detta fall inte att datorspelaren kan gå igenom väggar eller är odödlig i spelet utan snarare vilken sorts information som är tillgänglig. I en ideal värld hade både den mänsklige spelaren och NPC:n fått samla in information och ta beslut utifrån den på samma Sida 14 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] sätt. Så är det dock inte. Istället händer det ofta, till exempel i strategispel, att det datorstyrda laget har all information om den mänskliga spelarens läger, arméer och så vidare utan att ha behövt skicka ut spioner eller liknande. Detta finns för att ge datorstyrda spelare en viss fördel eftersom som mänskliga spelare ofta är duktiga. Detta kan dock vara farligt då många spelare ofta kan se igenom illusionen (Bourge & Seeman, 2004, Schwab, 2004). Ett annat exempel på fuskande A.I hittas i en del bilracingspel. En teknik som kallas för rubber banding har använts vilket innebär att om en mänsklig spelare leder ett lopp spelar det ingen roll hur stor luckan är till bilarna som ligger efter. I slutet av loppet ökas helt enkelt hastigheten på de tidigare helt ovetande och förvirrade NPC-bilarna så att de plötsligt utgör ett hot. Visserligen blir det mer utav en utmaning för den mänsklige spelaren men det troligen även uppenbart att något inte står rätt till då de datorstyrda förarna går från att vara usla till fantastiska på kort tid (Schwab, 2004). Sida 15 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Spels artificiella intelligens i framtiden Spelutveckling har gått med rasande fart de senaste åren, egentligen på alla fronter. De grafikeffekter, ljud, spelinterface och artificiella intelligenser som först dök upp på marknaden runt 70- och 80-talet är en skugga jämte mot de spel som släppts de senaste åren. I egen mening är det till och med så att spelen nu börjar närma sig en platå då det knappt går att göra grafik och ljud bättre. Däremot finns det fortfarande utrymme för förbättring då det gäller fysik och framförallt artificiell intelligens. På förhand trodde jag att de olika tekniker och metoder jag ämnade ta upp skulle ge mig insyn i nya spännande lösningar och några gamla och förlegade. Snarare har jag insett att det visserligen finns nya och intressanta sätt att skapa A.I men de hederliga metoderna skall inte förpassas. Istället bör varje val av metod begrundas mycket noggrant så att rätt teknik används för rätt spel, situation och uppgift. Till viss del blir jag fundersam då jag ser att det absolut finns tekniker för att skapa trovärdigt beteende och att de funnits i relativt många år, då de referenser jag hittat är sedan början av 2000-talet. Det som gör mig konfunderad är varför de inte används och appliceras i större utsträckning. Jag finner det underligt då välfungerande A.I mycket väl kan lyfta ett spel från mediokert till mycket bra, vilket borde vara en morot för företagen då det absolut ger en kommersiell fördel. Men kanske är det så att fokus legat på andra aspekter de senaste åren. Det kan vara så att det är just därför vi ser att det finns plats för förbättring för A.I:n knappt någon plats för grafikutveckling då den börjat plana ut. Det har dock skett utvecklingar även inom A.I såklart. För några år sedan släpptes Elderscrolls 4: Oblivion (Bethesda Softworks, 2006) som introducerade NPC:er som samtalade med varandra och vandrade runt i den stad de bodde för att skapa en känsla av liv. Det finns med andra ord en intention. Men Oblivion var en besvikelse på denna punkt för många spelare då det visade sig att samtalen mellan NPC:erna var träigt, okoordinerat och stolpigt. Många menade att det hade varit bättre om Bethesda inte skapat de alls eftersom kvalitén var så låg. Detta belyser en poäng då A.I kan göra mer skada än nytta. Samtalen i Oblivion var inte avgörande för om spelet gick att spela eller inte men lämnade trots det djupa spår efter sig. Mina egna erfarenheter är att inom spelvärlden tycks spelare tycka att det är bättre att avstå från sådana implementationsförsök om man inte kan göra dem nästintill perfekta. För egen del håller jag med om att konversationerna är tråkiga och ibland komiskt löjliga men försöken är ändå värt något. Förhoppningsvis ser vi ytterligare förbättringar i nästa spel. AI-utvecklare står ständigt inför en svår utmaning då de produkter de skapar riktar sig mot en så bred massa. Spelare är olika. De tycker om olika saker, de reagerar olika på olika saker och framförallt så är de olika bra på att spela spel. A.I:n är i mångt och mycket till för att skapa utmaning för spelaren, men det blir självklart svårt när individerna i målgruppen är både bra och dåliga på samma gång. Det finns rum för utvecklandet av någon sorts adaptiv Sida 16 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] A.I som kan läsa av hur en spelare agerar och anpassa sig efter det. Med andra ord välkomnar jag användandet av neurala nät. I min mening har A.I i spel redan nu klarat ”Turingtestet för spel”, det vill säga om den mänsklige spelaren inte kan avgöra om motståndaren, eller medspelaren för den delen, styrs av datorn eller en annan människa. Detta är dock självklart beroende på vilket spel som det handlar om. Grafik, ljud och bild är tillnärmelsvis perfekt i de spel som släpps idag. Min förhoppning är att det nu kommer läggas mer energi på handling, att skapa levande världar och framförallt på artificiell intelligens i spelen. Det är i min mening dags för det nu. Sida 17 Artificiell intelligens 729G11 Fördjupningsuppgift Artificiell intelligens i spel Björn Larsson 871210-4036 [email protected] Referenser Litteratur Bourg, David M. & Seeman, Glenn. (2004). AI for Game Developers, O’Reilly, Sebastopol. Darwin, Charles (1859). On the Origin of Species, W. Clowes and Sons, London. Koster, Raph (2005). A Theory of Fun, Paraglyph Press, Scottsdale. Millington, Ian (2006). Artificial Intelligence for Games, Elsevier, San Francisco. Rabin, Steve (2002). AI Game Wisdom, Charles River Media INC., Hingham. Russel, Stuart & Norvig, Peter (2003). Artificial Intelligence – A Modern Approach, Pearson Education INC., New Jersey. Schwab, Brian (2004). AI Game Engine Programming, Charles River Media INC., Massachusetts. Searle, John (1980). Mind, Brains and Programs, The Behavioral and Brain Sciences 3: 140152, Cambridge University Press, Cambridge. Figurreferenser Figur 1: Millington, Ian (2006). Artificial Intelligence for Games, s. 438, Elsevier, San Fransisco. Figur 2: Millington, Ian (2006). Artificial Intelligence for Games, s. 438, Elsevier, San Fransisco. Figur 3: Millington, Ian (2006). Artificial Intelligence for Games, s. 824, Elsevier, San Fransisco. Figur 4: Inspirerad av: Rabin, Steve (2002). AI Game Wisdom, Charles River Meda INC., Hingham Figur 5: Millington, Ian (2006). Artificial Intelligence for Games, s. 634, Elsevier, San Fransisco. Spelreferenser Age of Empires 2: The Age of Kings (Ensemble, 1999) Black & White (Lionhead Studios, 2001) Donkey Kong (Nintendo, 1981) Elderscrolls 4: Oblivion (Bethesda Softworks, 2006) Pac-man (Namco, 1980) Space Invaders (Taito Corporation,1978) Warcraft II (Blizzard, 1995) Internetreferenser http://www.nyteknik.se/nyheter/it_telekom/dataspel/article68579.ece, 2008-02-19 Sida 18