Research and Development 1/^Archief/2008-2009/AI in FPS games/Pilot
Inhoud
Inleiding
Uit een onderzoek dat vorig jaar gedaan is, bleek dat bijna driekwart van de Nederlanders van 8 jaar en ouder computerspelletjes speelt. Gemiddeld per persoon kwam dit neer op 4 uur per week. Niet alleen jongeren spelen games, ook meer dan de helft van de ouderen speelt wel eens een spelletje. Deze games zijn in de huidige maatschappij niet meer weg te denken. Een steeds groter gedeelte van de bevolking zal computerspelletjes spelen, een groot deel van de huidige kinderen wordt ermee grootgebracht. Doordat er zo enorm veel mensen deze spellen spelen, wordt er veel onderzoek naar games gedaan. De onderzoeken die gedaan worden kijken bijvoorbeeld naar de geschiktheid voor kinderen en hoe games steeds mooier gemaakt kunnen worden. Ook wordt er gekeken naar de game-ervaring, het doel van de makers is vaak deze zo realistisch mogelijk te maken. Deze vraag interesseert ons ook enorm, meer specifiek is de vraag: 'Hoe goed kunnen computers menselijke spelers tegenwoordig nabootsen?'. Één soort game is bij uitstek geschikt om dit te onderzoeken, de FPS-games (first person shooters). FPS-games zijn schietspellen waarin de gebruiker met zijn team (bestaande uit andere spelers en computerspelers) tegen een ander team (bestaande uit dezelfde soort spelers) vecht. Vooral de spelers die door de computer bestuurd worden spelen een grote rol. Deze moeten precies binnen het spel passen, ze moeten zich aan de regels houden, niet te goed maar ook niet te slecht zijn, zich gedragen net als menselijke spelers enz. Kortom, het beste zou zijn als ze niet te onderscheiden zouden zijn van de menselijke spelers.
Dit is dus precies wat wij willen onderzoeken:
Onderzoeksvraag
Zijn we op het punt beland dat de huidige AI in First Person Shooters niet meer te onderscheiden is van menselijke tegenstanders?
Over de computergestuurde spelers
De computergestuurde spelers die je tegenkomt in FPS-games worden ook wel bots genoemd. Bots zijn dus de niet-menselijke spelers in video-games. Zij komen niet alleen in FPS-games voor als medespelers, maar hebben in bepaalde games ook andere functies. Sommige non-player characters, ofwel NPC's, een meer omvattende term van computer gestuurde spelers, hebben bijvoorbeeld als functie je informatie te verschaffen of je de mogelijkheid te geven bepaalde items te kopen. Het Artificiële Intelligentie aspect van bots is echter wel het grootste in FPS-games, aangezien het hier echt om kunstmatige intelligentie gaat. De bots moeten beslissingen kunnen maken en taken uitvoeren, iets wat niet het geval is bij een NPC wiens enige taak is je informatie te verschaffen als je op hem klikt.
De bots waar we het hier over hebben, komen in twee varianten, namelijk statische en dynamische bots. Statische bots: De statische bots zijn geprogrammeerd om bepaalde paden te volgen, bepaalde lijnen te lopen en standaard acties uit te voeren. Een aantal vaste patronen dus. Dynamische bots: De dynamische bots moeten de levels echt leren kennen en beslissingen kunnen nemen op basis wat ze tegenkomen op hun pad.
In deze pilot maken wij gebruik van de bots uit Counter Strike: Source, omdat de bots enorm aanpasbaar zijn in dit spel. We kunnen het niveau van de bots en hun acties aanpassen naar onze wensen. De bots in dit spel zijn, hoe gek het misschien ook klinkt, een beetje van beide. Ze zijn zowel statisch als dynamisch, aangezien ze wel bepaalde paden moeten volgen (de paden die in het betreffende level beschikbaar zijn), maar toch beslissingen moeten nemen op basis van wat zij tegenkomen. Zo zullen nooit twee bots die tegelijk in een spel zijn, dezelfde lijnen gaan lopen, ze houden rekening met elkaar en met de tegenspelers.
Aanpak
Ons idee is, om een groep proefpersonen bij elkaar te zoeken om te zien of zij bots kunnen onderscheiden van menselijke spelers. We zullen de spelers selecteren op hun ervaring met FPS-games om op die manier zo goed mogelijke resultaten te verkrijgen, dit wil zeggen dat goede spelers betere bots en menselijke spelers tegen zullen krijgen en dat minder ervaren spelers ook slechtere bots tegen zullen krijgen. Het idee is eigenlijk om onze eigen versie van de Turing Test de maken: We laten proefpersonen potjes spelen tegen bots en menselijke tegenstanders waarna de proefpersoon probeert te zeggen of hij zojuist tegen een menselijke of computer speler gespeeld heeft. Om de test zo nauwkeurig mogelijk te maken gebruiken we per categorie genoeg proefpersonen, we zullen 5 proefpersonen per groep nemen en hen testen. Resultaten zullen genoteerd worden en met een verwerkingsprogramma zullen grafieken gemaakt worden om zo hopelijk een duidelijke conclusie te kunnen trekken.
Onderzoek
Om het onderzoek te starten, zijn we bij elkaar gekomen en hebben we op twee laptops het betreffende spel, Counter Strike: Source, geïnstalleerd. Één laptop voor de proefpersoon en één voor ons als 'gamemaster' om zelf te spelen, of een bot het werk te laten doen.
De test voor één proefpersoon: -Proefpersoon zit voorin de terminalkamer, of in een andere ruimte dan de gamemaster. -Gamemaster zit achterin de terminalkamer, of in een andere ruimte dan de proefpersoon. Daarna wordt 5 keer het volgende herhaald: -De gamemaster start een spel op en kiest of hij zelf speelt of een bot laat spelen. -Gamemaster/bot speelt totdat er 3 keer iemand dood is gegaan.
Per ronde (van 3 kills) schrijft de proefpersoon op, wie hij denkt dat hij tegenover zich had op bijgevoegde vragenlijst en beantwoord nog een aantal extra vragen.
Voor iedere ronde hebben we dus gekozen voor een 1-op-1 gevecht. De proefpersoon vecht óf tegen een bot óf tegen een menselijke speler. Dit hebben we gekozen, zodat het, net als de Turing Test, een zo eerlijk mogelijk resultaat geeft. We hebben er uiteraard over nagedacht om met 2-op-2 te werken en de proefpersoon tegen én een bot én een menselijke speler te laten spelen en hem na iedere ronde te laten beslissen welke van de twee tegenstanders een bot was, maar dit was volgens ons geen goede opstelling, omdat de proefpersoon dan per definitie al weet dat hij tegen een bot speelt.
De vragenlijst: Vragenlijst
Resultaten
De resultaten van ons onderzoek zijn hieronder te vinden.
Categorie 1 = Geen/Weinig ervaring met FPS-games. Categorie 2 = Gemiddeld/Veel ervaring met FPS-games. Score = Aantal van de 5 rondjes goed besloten of het een menselijke speler of bot was. Percentage = Percentage dat met de score overeenkomt.
- De redenen die de doorslag gaven over de beslissing mens/bot
- Gemiddelde score
Conclusie
Voordat we de testen uitvoerden verwachtten we dat de mensen van categorie 2 (met veel ervaring) de bots beter zouden kunnen onderscheiden dan de mensen van categorie 1 (met weinig ervaring). In de resultaten komt dit echter niet zo goed naar voren. De proefpersonen van categorie 2 kunnen gemiddeld 0.5 keer vaker de bots van mensen onderscheiden. Dit is toch wel te verklaren als we kijken naar de lijndiagram van de scores. Er zijn namelijk twee ‘dipjes’ in de diagram te zien. Dezen kunnen worden geïnterpreteerd als niet representatieve waardes. De testpersonen kunnen namelijk ook gewoon domweg pech hebben gehad bij de test. Dit standpunt is ook nog eens te versterken met het feit dat als deze twee waarden weggelaten worden er ook daadwerkelijk een patroon te herkennen is, namelijk fluctuerend rond waarde 4,5. Hiermee rekening houdende zal de gemiddelde waarde van categorie twee significant verhoogd worden wat overeenkomt met onze verwachtingen. We zijn ervan overtuigd dat de testpersonen uit categorie 1 het onderscheid tussen bot en mens niet kunnen maken, en dat correcte resultaten bij de test vaak voortkomen uit gokken. Dit baseren wij op de reacties van de proefpersonen tijdens het spelen, alsmede de reacties tijdens de besluiten. De testpersonen wisten ook vaak geen reden te noemen waarom een tegenstander al dan niet een bot zou zijn, en zo de voorgaande stelling te versterken. Dit is natuurlijk de testpersonen niet kwalijk te nemen, je weet immers geen ‘bot-gedrag’ te herkennen als je niet vaak met bots werkt/speelt. De bots vallen merkwaardig genoeg bij beide categorieën door hetzelfde gedrag door de mand, en wel door steeds op dezelfde plaats te gaan zitten. Dit zal dus door de testpersonen als het meest onlogisch worden beschouwd (als bots iets onlogisch doen valt het immers het meeste op).