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

Ai planer

Bestämde mig för att skapa ett par illustrationer som beskriver hur informationen ifrån den föregående posten kan tillämpas i ett AI exempel.

En myra som interagerar enligt beskrivningen ifrån experimenten beskrivs här igenom olika flowsharts.

Varje grå box är ett “State” alltså ett tillstånd som den artificiella intelegensen kan befinna sig i och då utför olika handlingar och byter mellan states för att ta hand om problemen.

Ett state byte sker när flowchartet når en röd nod. En blå nod är en selektor som bestämmer vad som ska hända härnäst. Gröna noder är handlingar.

StateSearchingInspectState StateAttacking

Myror

Idag har jag läst igenom den första artikeln “Defensive behavior of ants in a mutualistic relationship with aphids” som jag har plockat ut ur Behav Ecol Sociobiol (2005) 59: 321–325.

Artikeln handlar om myrors som tar hand om bladlöss beteende. I artikeln beskrivs tydligt vilka experiment de utfört för att ta reda på detta och i vilka fall som myrorna väljer att göra olika saker.

Experimenten de utförde var till för att ta reda på hur myrorna reagerar vid introduktionen utav andra insekter. Och vilka utav de som myrorna försvarade sig emot.

Vid introduktionen utav en insekt reagerade myrorna igenom att attackera eller att inte göra det och gå tillbaka till sitt ordinarie arbete.

I alla fall förutom vid introduktionen utav ett bladlus rovdjur (en nyckelpiga) så gick myrorna fram till den potentiella invaderande insekten och undersökte den med hjälp utav sina antenner. Och efter det bestämde sig mycket snabbt om den skulle gå till attack eller inte.

I 20% utav fallen attackerades även kontroll insekterna som i princip var vanliga husflugor.

Vid introduktionen av en myra ifrån samma koloni så attackerade inte myrorna (P < 0.001).

Däremot om en myra ifrån en annan koloni som också tar hand om bladlöss blev resultatet alltid att den försvarande myran gick till attack. (P<0.001)

Då en nyckelpiga introducerades attackerades den direkt utav myrorna i kolonin utan att bli undersökt.

Och i fallet då myrorna blev tvungna att välja i mellan att attackera en invaderande myra och en nyckelpiga så attackerade myran i 90% av fallen den invaderande myran. Men till en början attackerade myrorna nyckelpigan först men sedan ändrade sig och började attackera den invaderande myran. Medans detta hände så åt nyckelpigan upp stora mängder utav de bladlöss som myran skulle försvara.

Vid introduktionen av en bladlus oavsett om den var ifrån en annan koloni så omhändertogs den och placerades på ett löv med andra bladlöss för att äta och tas hand om. Alltså adopterade myrorna bladlusen i 100% av fallen. (Pillips I.D och Willis C.K.R 2005)

Continue reading