Research and Development 1/^Archief/2008-2009/AI video games/Onderzoeksplan

Uit Werkplaats
Ga naar: navigatie, zoeken

Probleemstelling

Onderzoeksvraag

Waaraan kun je de computergestuurde spelers van de menselijke spelers onderscheiden?

korte beschrijving van het product

Wij hopen door middel van dit onderzoek een onderzoeksmethode uit te vinden waarmee we objectief kunnen bepalen of de bots in een videospel goed (reageren zoals menselijke spelers zullen reageren) of slecht zijn

Verantwoording

Wij hebben voor dit onderzoek gekozen omdat het goed aansluit op onze pilot. Verder zijn wij allen geinterreseerd in videogames. Ook is het uitvinden van een objectieve onderzoeksmethode naar de qualiteit van de bots erg handig. De makers van videogames kunnen dit goed gebruiken om zo de speelervaring voor de spelers van hun spellen te verbeteren.

Theoretisch kader

Game artificial intelligence refers to techniques used in computer and video games to produce the illusion of intelligence in the behavior of non-player characters (NPCs). The techniques used typically draw upon existing methods from the field of artificial intelligence (AI). However, the term game AI is often used to refer to a broad set of algorithms that also include techniques from control theory, robotics, computer graphics and computer science in general.

Since game AI is centered on appearance of intelligence and good gameplay, its approach is very different from that of traditional AI; hacks and cheats are acceptable and, in many cases, the computer abilities must be toned down to give human players a sense of fairness. This, for example, is true in first-person shooter games, where NPC's otherwise perfect movement and aiming would be beyond human skill.

Usage

Game AI/heuristic algorithms are used in a wide variety of quite disparate fields inside a game. The most obvious is in the control of any NPCs in the game, although scripting is currently the most common means of control. Pathfinding is another common use for AI, widely seen in real-time strategy games. Pathfinding is the method for determining how to get an NPC from one point on a map to another, taking into consideration the terrain, obstacles and possibly "fog of war". Game AI is also involved with dynamic game difficulty balancing, which consists in adjusting the difficulty in a video game in real-time based on the player's ability.

The concept of emergent AI has recently been explored in games such as Creatures, Black & White and Nintendogs and toys such as Tamagotchi. The "pets" in these games are able to "learn" from actions taken by the player and their behavior is modified accordingly. While these choices are taken from a limited pool, it does often give the desired illusion of an intelligence on the other side of the screen.

Voor alle informatie over AI in games klik hier

Methode

Onderzoeksfunctie


Deelvragen en methode

  • Waaraan kun je de computergestuurde spelers in fps games van de menselijke spelers onderscheiden
  • Waaraan kun je de computergestuurde spelers in stragety games van de menselijke spelers onderscheiden

Methode
Ons plan is om te onderzoeken in verschillende games waaraan computergestuurde spelers worden herkend.
In ons pilot onderzoek hebben we al een aantal bevindingen gedaan. Maar deze waren
gebaseerd op een erg klein onderzoek. Wat wij nou graag willen weten is hoe we een
computergestuurde speler zo goed mogelijk op een echte speler kunnen laten lijken. Maar om zo'n 'bot' te kunnen
maken moet je weten aan wat voor eisen zo'n 'bot' moet voldoen. Daarom gaan we in ons
2e deel experiment een soortgelijk onderzoek houden als in ons pilot experiment. Maar
nu houden we dit onderzoek ook in een totaal andere omgeving. Namelijk de wereld van het
spel 'Unreal Tournament 2004'. Belangrijk is dat we letten op verschillen met ons pilot experiment.
Blijkt nou dat er totaal andere gegevens uitkomen dan zullen we de correctheid van onze
eerdere bevindingen in twijfel moeten trekken. Verder willen we nog 2 strategy games gaan
testen om een zo algemeen mogelijk beeld te krijgen van AI in videogames.
Dit zijn 'Command & Conquer 3: Tiberium Wars' en 'Age of Empires 2'.

Het plan:

  • Onderzoek uitvoeren in UT
  • Onderzoek uitvoeren in CS
  • Resultaten vergelijken met pilot en tussen de fps games
  • Onderzoek uitvoeren in CNC3
  • Onderzoek uitvoeren in AoE2
  • Resultaten vergelijken tussen de strategy games
  • Conclusies trekken uit onderzoekresultaten
  • Uiteindelijk een objectieve onderzoeksmethode uitvinden die gebruikt kan worden om de AI in games te verbeteren

Literatuur

Werkplan voor het onderzoek

Counter-Strike

Opstelling

De onderzoeksopstelling bij CS blijft in grote lijnen hetzelfde als die in de pilot (link).
We spelen nu echter met 1 menselijke speler (naast de testpersoon).

Plan van aanpak

Het plan van aanpak blijft ook grotendeels hetzelfde als in de pilot.
De verschillen is dat we de test nu gaan uitvoeren zonder dat de testpersoon de zogenaamde 'spectator-mode' kan gebruiken.
Dit betekent dat hij niet met andere spelers kan meekijken als hij dood is.

Age of Empires 2

Opstelling

We hebben 2 kamers, in kamer 1 zit 1 speler met 1 computer met daarop de "games" die we gaan testen.
game. In kamer 2 zit de testpersoon met ook zo'n computer. De computers zijn met een LAN-verbinding op elkaar
aangesloten en ze nemen deel aan een LAN-server van de betreffende Op de server zit 1 menselijke
speler, 2 'bots' en 1 testpersoon (ook menselijk natuurlijk).
We spelen AoE2 (elke speler speelt in zijn eentje tegen de 3 tegenstanders).

Plan van aanpak

Elke test duurt 60 minuten. De testpersoon krijgt alleen te horen dat er 1 menselijke speler is, verder vertellen we de testpersoon niets.
Op het einde moet de testpersoon ons vertellen wie hij/zij denkt dat de menselijk speler is van alle spelers
(ze mogen niet de scores bekijken en ze mogen ook niet gokken).

Unreal Tournament 2004

Opstelling

De onderzoeksopstelling bij UT2004 blijft hetzelfde als bij CounterStrike. Op deze manier kunnen we beter vergelijken tussen de 2 games.

Plan van aanpak

We pakken dit onderzoekje hetzelfde aan als bij Counterstrike. Ook zetten we dus weer de 'view score' functie uit.
Waar we bij dit spel in gaan verschillen is het spel type. Er hoeft geen bomb meer geplant te worden. Dit maal spelen
we 'Capture The Flag'. Bij dit speltype moet de vlag van de tegenstander worden veroverd en terug worden gebracht
naar de eigen basis. We kiezen voor dit spel type omdat er dan ook echt een strategie bedacht moet worden bedacht
om de vlag te veroveren.

Command and Conquer 3

Opstelling

De Onderzoeksopstelling bij C&C3 is hetzelfde als die bij AoE. Echter duurt elke test bij C&C 3 maar een half uur. Dit omdat
de de potjes bij C&C3 over het algemeen niet lang duren. Verder spelen we team deathmatch als gametype.

Plan van aanpak

Elke test duurt 60 minuten. De testpersonen krijgen alleen te horen dat er 1 menselijke speler is, verder vertellen we de testpersonen niets.
Op het einde moeten de testpersonen ons via het vooraf gemaakte vragenlijstje vertellen wie hij of zij er van verdenkt de menselijke speler te zijn.
(ze mogen niet de scores bekijken en ze mogen ook niet gokken).

Product

aangepast plan:
Ons ideale product zou natuurlijk een programma zijn die je aanzet tijdens het gamen. Het programma kijkt dan naar dingen als score, reactietijd van de bots en dat soort dingen en geeft vervolgens de AI een bepaalde score. Ons oorspronkelijke doel was om een zo objectief mogelijke manier hier voor te vinden. Zodat als 2 verschillende mensen de game spelen er dezelfde score uit komt voor de AI in de game. Maar na wat gedachten werk leek ons dit een beetje te hoog gegrepen.
Enerzijds omdat zo'n programma dat de eigenschappen van AI monitort ingame heel erg moeilijk te realizeren is. Dit ook omdat heel veel games een anti-cheat beveiliging hebben die voorkomt dat je dingen kan uitlezen of veranderen in de engine van de game. Anders zouden ze het hackers wel erg makkelijk maken.
Anderzijds omdat je nooit dezelfde score kan krijgen bij 2 totaal verschillende spelers. Het is namelijk zo dat er gigantisch veel gamers maar ook niet gamers zijn die allemaal zo'n spel op een verschillende manier spelen. Om deze reden is het praktisch gezien onmogelijk om bij elke speler exact dezelfde score te krijgen. Zo kan het zijn dat iemand gaat spelen die nog nooit een spelletje heeft gespeeld op de computer. Dan zit de kans er dik in dat hoe slecht je de bots ook maakt, de speler geen punten zal scoren. Vervolgens zou het programma dus een slechte score aan de game geven terwijl er bij normale gamers juist een hele hoge score uitkomt. Maar deze uiterste buiten beschouwing gelaten is het dus nog steeds zo dat de score meer afhangt van hoe de menselijke speler speelt en minder van de AI in de game zelf. Daarom geeft zelfs ons ideale programma een score die past bij hoe jij de game speelt.
Wat we echter wel kunnen bereiken is een programma wat je opstart na het spelen van de game. Je vult dan een aantal dingen in zoals wat voor een soort game, wat was je score, hoe lang heb je gespeeld enzovoorts. Wat we moeten proberen te vermijden is dat er dingen gevraagd worden die afhankelijk zijn van de mening van een persoon. Een voorbeeld van een slechte vraag kan zijn: "Vond je dat AI in het spel goed?" Aan dit soort vragen hebben we werkelijk niks dus we moeten dingen bedenken die niet afhangen van wat een persoon van het spel vind. Voorbeelden hiervan zijn: verschil in score tussen speler en bot, score van speler. En bij een strategy game: hoe lang duurde het potje? (Een kort potje is een indicatie van erg slechte AI want de game is natuurlijk ontworpen om je zo lang mogelijk bezig te houden zonder dat het saai wordt).
Nadat je alles hebt ingevuld gaat het programma met behulp van een algoritme of een tabel op zoek naar de juiste score. Ook hier geldt weer deze score is persoonlijk. Hele goeie gamers kunnen dus een lage score krijgen bij een bepaalde game terwijl hele slechte gamers een uitmuntende score te zien krijgen. Dat brengt ons op het volgende punt. Als we nou een online database maken, waarin elke keer als iemand het programma gebruikt wordt opgeslagen wat de score was, dan kunnen we een gemiddelde scoren berekenen. Op deze manier kun je een overzicht opvragen waarin staat hoeveel mensen het programma voor die game hebben gebruikt en wat dan de gemiddelde score was. En als je dan iets verder denkt kun je ook gegevens opslaan als: wat voor score krijgen de ervaren gamers eruit?

Hypothese

Bij de FPS-games verwachten we dat de resultaten van de beide games erg van elkaar zullen verschillen. We denken dat de bots bij UT2004 beter te herkennen zijn dan bij CS.
Dit omdat de bots in CS gewoon een betere reputatie hebben op het gebied van intelligentie. Ook verwachten we dat het aantal succesvolle ontmaskeringen bij CS zal afnemen,
omdat nu de spectator-mode niet meer gebruikt kan worden.
Bij de strategy-games verwachten we dat de computer gestuurde spelers bij C&C3 beter (en dus menselijker) zullen zijn dan bij AoE2, simpelweg omdat de game veel nieuwer is.
We denken dat er ook een verschil zal zijn tussen de resultaten van de FPS- en strategy-games. Bij de strategy-games is de omgeving donker.
Deze wordt pas zichtbaar als je er daadwerkelijk naartoe gaat. Daardoor zal het moeilijk zijn veel te weten te komen over de tegenstanders. Waarbij je bij de FPS-games de tegenstanders van ver ziet aankomen.

Resultaten van het onderzoek

Resultaten Counter-Strike

De resultaten waren exact hetzelfde als bij het pilotonderzoek. Bij slechts 1 poging werd de verkeerde speler als "menselijke speler" betiteld.
Ook de redenen om spelers ervan te verdenken de menselijke speler te zijn waren grotendeels hetzelfde. Behalve bij de hogere moeilijkheidsgraad van de bots.
De bots waren duidelijk een stuk beter, maar ondanks dat werden redenen gegeven als:

  • 3 headshots in 3 seconden (uiterst uniek, of je bent ontzettend goed of je cheat)
  • hij ontwijkt de kogels steeds
  • hij is gewoon beter dan de rest.

In afbeelding 1 hieronder zie je dat bij poging 2 waarbij de moeilijkheidsgraad hoger was de tijd die nodig was om spelers te ontmaskeren ook een stuk langer werd, met uitzondering van testpersoon 1.
Dit was de testpersoon met weinig tot geen ervaring met CS. De ervaren spelers hadden dus meer tijd nodig om te ontdekken wie de menselijke speler was.
Resultaten-cs.pngResultaten-cs v2.png

Resultaten Unreal Tournament 2004

Alle testpersonen behalve 1 iemand wisten wie de menselijke speler was.
Degene die het niet wist had niet de verkeerde speler uitgekozen, maar wist helemaal niet die de menselijke speler zou moeten zijn
De redenen die gegeven werden waarom een speler menselijk zou zijn:

  • gaat voor de 'kills' (de bots liepen soms gewoon aan spelers voorbij)
  • gebruikt vaak 'teleport' (dit is een slimme manier van snel voortbewegen)
  • richt wapen beter
  • andere manier van schieten (de meeste wapens in UT2004 hebben verschillende "schiet-modes")

De reden waarom testpersoon 3 niet wist wie de menselijke speler was:

  • de spelers zijn allemaal ongeveer even goed
  • het was moeilijk om de spelers van je eigen team goed te kunnen bestuderen

In afbeelding 1 hieronder zie je dat testpersoon 1 veel sneller wist die menselijk was dan testpersoon 2. Testpersoon 1 had wel veel ervaring met het spel en testpersoon 2 niet.
(de 3e kolom in de grafiek is eigenlijk niet van toepassing omdat de testpersoon het niet wist)
Resultaten-ut.pngResultaten-ut v2.png

Resultaten Age of Empires 2 & Command and Conquer 3

UPDATE

We hebben in overleg besloten de nog openstaande onderzoeken van de strategy-games te schrappen om ons bij het product meer te kunnen focussen op de kwaliteit van het product i.p.v. de breedte.

Enquetes

Mogelijke enquetetools voor het maken van enquetes

Wij hebben de volgende enquetetools gevonden op het internet. Deze kunnen wij gebruiken voor ons uiteindelijke vakproduct. Zo kun je op de site http://www.studentenonderzoek.com/ gratis een enquete maken en deze hosten. Op deze site staat een FAQ waarmee je een goede enqute op kan stellen. Het maken van een enquetelijste kan zowel gratis als betaald.

Verder hebben we ook nog de site http://www.studentenenquete.nl/phpsurveyor/admin/admin.php?action=newsurvey gevonden. Deze site is net als www.studentenonderzoek gratis. We zijn er nog niet helemaal uit welke tool we gaan gebruiken. Om deze keuze te maken moeten we ons eerst verdiepen in de beide tools.

Conclusie

De resultaten van het CS-gedeelte van het onderzoek komen erg veel overeen met de resultaten van het onderzoek in de Pilot. In de meeste gevallen werd de menselijke speler herkend en ook de redenering waarom een speler een 'bot' was, was goed onderbouwd.
Ook bij het UT-gedeelte van het onderzoek wist de testpersoon meestal wel de menselijke speler er tussen uit te halen. De redenenen waarom een speler een 'bot' was volgens de testpersonen kwamen in grote lijnen overeen met die uit het CS-gedeelte.
Het kleine verschil zat in het verschil tussen de spelprincipes van beide spellen, hier dient dus rekening mee gehouden worden bij ons vakproduct.
Omdat we bij beide tests dezelfde testpersonen gebruikt hebben konden we na afloop van alle test vragen wat ze nou het verschil vonden tussen beide tests. Bijna alle testpersonen vonden het moeilijker de menselijke speler te bepalen bij het spel UT.
Dit vonden we opvallend, omdat wij vantevoren verwacht hadden dat het UT-gedeelte makkelijker zou zijn voor de testpersonen.
Volgens ons is de verklaring hiervoor dat het tactisch vermogen en vermogen om rationeel te kunnen handelen in het spel CS veel belangrijker is dan in het spel UT. In het spel UT kun je als menselijke speler zijnde best "dom" spelen, omdat je dan nog steeds kunt winnen.
In CS is samenspel, tactiek en de accuraatheid van je manier van schieten doorslaggevend.

Waaraan kun je de computergestuurde spelers van de menselijke spelers onderscheiden?

De voornaamste reden is dat 'bots' vaak dingen doen die voor mensen onlogisch zijn. Ze bewegen niet altijd helemaal vrij, alsof ze op een rails lopen. Het is moeilijk ze hetzelfde reactievermogen te geven als een doorsnee mens, vaak is het iets te langzaam of te snel.
Ze doen vaak dezelfde dingen, dus geen variatie in hun spel. In de huidige tijd zitten de 'bots' nog niet op het niveau dat ze zoveel op mensen lijken dat je het verschil niet zomaar kunt zien.
Met al deze info gaan we een zogenaamd AI rating systeem maken waarmee je zelf de 'bots' in FPS-games een score kunt geven door het systeem te vertellen wat jou game ervaring was tegen de 'bot'.