Sammanfattning block 3

Bakgrund

I många av dagens spel används artificiell intelligens och har används sedan ganska tidigt i spelhistorien.

I med hjälp utav den teknologiska utveklingen har vi kunnat bygga mycket mer avancerad AI.

AI används utav spelvärlden för att bland annat skapa ett motstånd i spel så som fiender och monster men också för att förstärka känslan av att spelet är mer levande än vad det egentligen är.

Jag vill undersöka hur spelutvecklare kan dra nytta utav beteenden observerade ifrån naturen.

Och för att specificera mer så vill jag försöka skapa en AI som beter sig som en myra skulle betee sig i olika situationer.

Fråga

Hur kan spelutvecklare använda sig utav observerat beteende ifrån myror som lever i kolonier vid utvecklingen utav en AI?

Arbetsplan:

https://practicalproblem.wordpress.com/arbetsplan-block-3/

 

Metod

Under detta block ville jag undersöka artificiell intelligens som utgår ifrån observerat beteende taget ifrån myror igenom att läsa igenom forsknings resultat och försöka applicera det vid utvecklingen utav en AI.

-Litteratur studie utav beteenden hos myror som lever i kolonier.

– Skapa AI Diagramm/flowcharts för att visualisera hur en simpel AI kan tänka.

– Utföra en spelanalys för att se vilket djup som AI i spel idag kan ha.

– Undersökning med hjälp utav prototyp i C++ Polycode (Safrin I & Polycode Team, 2013) för att se hur det går att anpassa den forskning som finns runt just beteenden ifrån naturen.

 

Beteenden

I min undersökning har jag läst igenom artikeln “Defensive behavior of ants in a mutualistic relationship with aphids” tagen ur Behav Ecol Sociobiol (2005) 59: 321–325.

I artikeln beskrivs tydligt de experiment som utförts på myror som tar hand om bladlöss och hur de reagerar på insekter som blir introducerade till deras territorier.

I undersökningen hittar (Pillips I.D och Willis C.K.R 2005)tydliga beteende mönster hos myrorna som de beskriver med hjälp utav sannolikheter att en myra tillexempel attakerar en viss typ av insekt. Med hjälp utav detta kunde jag skapa diagram som beskriver hur en AI skulle använda detta beteende på et simplifierat sätt.

Diagramen jag skapade är inspirerade utav flowcharts.

flowcharts används inom allt ifrån ekonomi till process teknik och beskriver ett flöde av någonting. I mitt fall beskriver det ett flöde utav logik som flödar ifrån de gråa state lådorna medans de röda lådorna beskriver vilket state som ska bytas till för att fortsätta processa omgivningen. De blåa lådorna är selektorer alltså logiska enheter som bestämmer vilket håll flödet ska flöda.

De gröna lådorna är handlingar som kan utföras.

StateSearching InspectState

 

 

Spelanalys

Jag har analyserat spelet Skyrim (Bethesda Softworks, 2011) och de har använt artificiell intelligens mycket flitigt. I Skyrim finner man alla möjliga sorters djur och monster.

En del djur som lever i Skyrims natur är där för att antingen fylla ut skogarna för att skapa känslan av liv men fyller också syftet att de kan jagas för mat och säljas till de människor som finns i Skyrim.

Skogarna är också fulla utav andra monster som är där för att skapa en utmaning för spelaren igenom att vara aggressiv och vilja ha ihjäl spelaren.

Skyrim skapar en känsla av liv och verklighet igenom att använda sig utav mänsklig AI. De har lyckats ganska bra med att undkomma ”Uncanney valley” igenom att blanda förskriptade konversationer med den artificiella intelligensen.

Om man pratar med en karaktär i Skyrim så kommer karaktären att anpassa sig till hur väl karaktären känner spelaren och ge svar som passar er relation vilket iallafall ger en svag känsla utav att spelet observerar spelarens handlingar. Denna intelligens är ganska så statisk och är mestadels för-inställd dialog som beter och uttrycker sig väldigt mänskligt.

Om denna karaktär skulle ogilla spelaren starkt så kan karaktären gå till attack mot spelaren och då tar den artificiella intelligensen över och gör sitt bästa för att få död så spelaren.

Ett par exempel på typisk djur AI ifrån Skyrim är rådjur de går runt i ett ”roaming state” och letar efter till exempel föda och om den hittar det så stannar den och betar.

Så fort rådjuret hör spelaren börjar det genast försöka komma undan.

En varg däremot har ett territoriellt beteende om spelaren börjar närma sig vargen så kommer den att yla och morra för att indikera att spelaren närmar sig den distansen som vargen kommer att gå till attack på.

I Borderlands är fienderna mycket mer rakt på sak. Oavsett om man försöker smyga sig på dem eller inte så attackerar de direkt så fort man kommer inom en viss distans. De har dock ett par olika sätt att attackera spelaren på vissa kastar is block på spelaren medans andra hoppar på spelaren och skapar förvirring.

Prototyp

I min C++ prototyp letar en myra efter mat och samlar in den.

Myran har den artificiella intelligens som beskrivits ovan och man kan testa hur myran reagerar om man introducerar en annan insekt.

Under utvecklingen av denna simpla prototyp som är skriven i C++ har jag haft en hel del problem. Mestadels eftersom jag inte har arbetat med C++ på en längre stund men också för att ramverket Polycode jag har arbetat med Myra som ltarmatinte är helt färdigbyggt och har en del problem.

 

 

 

 

 

 

 

 

 

 

 

 

 

Resultat

Att använda forsknings rapporter för att göra artificiell intelligens utav djurs beteende är mycket intressant och ett roligt sätt att utföra det på.

Igenom att ta ut de viktiga delarna som handlade om de olika val och de olika ”states” som en myra skulle kunna vara i så blev det ganska lätt att överföra till ett flödesschema som sedan kan användas för att göra objekt kod för en AI.

Att skapa en realistisk AI för spel igenom att använda sig utav forsknings rapporter kan nog vara en aning överflödigt speciellt med tanke på att i ett spel så som Skyrim till exempel så framställs den artificiella intelligensen på ett sätt som spelaren föreställer sig att en viss djurart ska beter sig.

Även om Skyrims AI är mycket utförlig så behöver man inte gå in på lika djup nivå som en forskningsrapport kan göra.

Man behöver alltså till exempel inte förmedla till spelaren att vid vissa årstider då vargarna har ungar så beter sig vargarna på ett annorlunda sätt och de är mer intresserade utav att säkra mat och så vidare.

Spelaren kanske till och med finner detta vara ett overkligt beteende eftersom det inte har förväntats eller att spelaren inte har någon aning om att det brukar beter sig på detta sätt och i och med det reagerar negativt på att vargarna ur spelarens synpunkt beter sig konstigt.

Självklart kan man ha nytta av att veta hur de faktiskt beter sig i naturen men man behöver inte alltid följa verkligheten för att förmedla en känsla av verklighet, vid ljudläggning utav film överdriver man ofta ljudeffekter för att det annars inte skulle kännas verkligt. Man förstärker alltså verkligheten för att få den att kännas verkligare men man går egentligen längre ifrån verkligheten.

Om man utvecklar en simulation av något slag kan det vara en mycket bra ide att använda sig utav forsknings resultat då tanken är att efterlikna verkligheten för att kunna utföra forskning. Men vid användning i spel räcker alltså det upplevda beteendet.

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s