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

Sammanfattning

Sammanfattning

Grundproblem

Jag började mitt arbete med att läsa in mig på problematiken med att använda sig utav GPS positionering i plats-baserade spel.

Det blev snabbt ganska tydligt att användningen utav GPS inomhus var opraktisk i och med den dåliga mottagningen så jag bestämde mig för att undersöka möjligheten att använda sig utav informations teknologi i omgivningen så som trådlösa nätverk för att försöka skapa ett slags plats-baserat spel där man inte behöver GPS satelliter utan bara en byggnad med trådlösa nätverk och en mobiltelefon.

Syftet med mitt arbete är att undersöka användningen utav trådlösa nätverk som substitut för GPS satelliter i ett plats-baserat spel.

Min frågeställning lyder

”På vilket sätt kan informations teknologi så som trådlösa nätverk användas i ett plats-baserat spel för att undvika användningen av GPS?”

Processen

Jag började med att ta reda på hur vida ett trådlöst nätverks signalkvalité kan användas för att göra en avstånds bedömning.

Detta visade sig vara ganska problematiskt och involverade en aning fysik. Igenom lite experimenterande, läsande och matteboks pluggande lyckades jag rätta till den felaktiga matematiska formel som jag hittat på en bloggsida.

Och kunde testa den med hjälp utav min mobiltelefon. Avståndsbedömningen mellan dig och access punkten fungerade ganska bra när man ser antennen och inga väggar sitter i vägen men så fort ett annat material än luft hamnade i mellan dig och radio källan så blev mätningen otroligt oexakt.

Ett bild exempel följer nedan.

Mätningsproblem

 

 

 

 

Formeln för uträkningen av signalstyrkans avtagande i luft ser ut på följande sätt

där d är distansen och f är frekvensen som används vid utsändningen och konstanten på slutet beskriver i vilket format distansen matas in.

Resultatet på detta försök ledde till att jag valde att inte använda mig utav en distans uträkning och istället baserade min närhets detektion på den råa signalstyrkan så att om man har en radio länk som har 100% kvalité så räknas det som att man är nära nog.

Speldesign

Jag spenderade också tid med att läsa om speldesign för att förbättra mitt sätt att använda det jag lärt mig för att göra ett mer intressant spel. I boken ”A theory of fun for game design.” pratar Koster, R. Om hur man igenom att använda sig utav mönster och pussel som det tar tid för hjärnan att vänja sig vid och lista ut så kan man få spelet att kännas lite djupare och intressant en längre tid.

Jag valde att försöka mig på detta igenom att implementera ett litet kryptografiskt pussel i min prototyp.

Prototypen jag byggde består utav en Android app som använder sig utav närheten till ett trådlöst nätverk för att säkerställa att spelaren befinner sig på rätt plats.

Efter att spelaren lyckats ta sig till det trådlösa nätverket i en byggnad så kommer appen att börja avkoda ett meddelande som innehåller en ledtråd som leder spelaren på en liten skattjakt. För att hitta skatten behöver spelaren också lösa ett lättare kryptografiskt pussel där lösenordet för den sista ledtråden är täcken förskjutet så att ett A till exempel hoppar en bokstav framåt i alfabetet och blir ett B och så vidare igenom hela alfabetet tills man kommer till Ö som då går runt och blir ett A.

APA skulle då se ut som BQB till exempel.

Resulat:

Resultatet utav min undersökning är en Android app som visar på att plats baserade spel är möjliga att göra utan tillgång till GPS men att precisionen blir lidande. Ur ett speldesigns perspektiv så finns det sätt att arbeta runt den dåliga precisionen och avsaknaden utav exakta koordinater som till exempel att ha Access punkter och deras signalstyrka för att bedöma om en spelare befinner sig inom området för en checkpoint.

Alltså kan signalstyrkan på ett trådlöst nätverk användas för att skapa en distans approximation, användas som checkpoint eller som radiofyr för ett gömställe i en “geocashing” eller skattjakts spel.

Android plattformen möjliggör också implementation utav pussel och jag implementerade ett litet kod pussel för att låsa upp en ledtråd.

 

w code

Prototyp byggd

Prototypen.

Min prototyp består utav en Android-applikation som har ett hårdkodat uppdrag som går ut på att man ska ta sig till ett access punkt och få en tillräckligt bra mottagning för att kunna ”avkryptera” ett meddelande som beskriver vart i byggnaden man kan hitta det hemliga lösenordet. Lösenordet är nyckeln ett litet kryptografiskt pussel som spelaren får lista ut för att sedan kunna hitta den gömda skatten.

Spelkonceptet är löst baserat på så kallad geocaching, och använder sig utav trådlösa nätverk som beacons. Beacons har använts i geocaching och det finns till och med produkter som är anpassade för att sända ut meddelanden och beskriva positioner vid geocaching. Lite så är det jag använder de trådlösa nätverken för att räkna ut signal styrkan.
w code

När signalstyrkan når 100% så börjar avkodnings processen och när den är klar så får användaren en ledtråd om vart nästa meddelande kan hittas. Avkodnings processen är egentligen bara ett sätt att säkerställa att spelaren står tillräckligt nära platsen där han behöver befinna sig. Prototypen på bilden är inte funktionell och saknar lite siffror för att den inte körs på en mobiltelefon med wifi. Prototypen fungerar mycket väl på en handhållen Android enhet.

Referencer:

Geocashing. (2013). The History of Geocaching. Hämtad 2013-11-02 från, http://www.geocaching.com/about/history.aspx

Murph, D.M. (Oct 15th, 2010) Garmin’s $23 Chirp wireless beacon brings geocaching thrills to Oregon, Dakota GPS units. Hämtad November 2, 2013, från http://www.engadget.com/

Prototyp koncept.

För att kunna utvärdera och reflektera över hur vidare det är möjligt att skapa plats baserade spel som inte nödvändigtvis behöver GPS kommunikations möjligheter så behöver jag testa distans bedömning med hjälp utav trådlös signalstyrka.

För att snudda lite vid ett par punkter ifrån boken ”A Theory of Fun”, att använda lite pussel för att göra spelet mer intressant utnyttja lite kryptografi i form utav Enkla krypteringar och lösenords hashnings metoder.

Tanken med prototypen är att den ska använda sig utav Mobilteknologi och operativsystemet Android.

Det jag tänkt mig är att man ska gömma en beskrivning in ut i en access punkt (trådlös nätverks sändare) där spelaren ska få komma tillräckligt nära accesspunkten och sedan använda accesspunktens MAC adress för att dekryptera ledtråden som leder spelaren på en liten skattjakt för att hitta det gömda lösenordet som behövs för att knäcka det hemliga krypterade meddelandet.

Principen är väldigt lik Geocashing där man letar reda på ledtrådar som leder en på en liten skattjakt . Men vi kan utnyttja access punkter som checkpoints och sedan några kryptografiska pussel för att få fram det hemliga meddelandet.

A theory of fun, en bok

Efter att ha listat ut vad en Android kan hjälpa till med vad det gäller trådlösa nätverk så har jag hoppat på Speldesigns tåget och läser boken ”A Theory Of Fun In Game Design”, denna bok fick jag rekommenderad ifrån mina designer kollegor. Den tar upp vad ett spel är för något och vad som faktiskt gör ett spel roligt, intressant och fängslande. Med den kunskap som boken delar med sig av hoppas jag kunna skapa roligare och intressantare spel/spelprototyper.

En mycket intressant sak som Koster (2005) säger är “To make games more long-lasting, they need to integrate more variables (and less predictable ones) such as human psychology, physics, and so on.” (p. 34.).

Det här citatet är väldigt relevant för det jag arbetar med för tillfället, bakgrunden till citatet handlar om pussel och mönster som man som människa gärna vill reda ut och lösa och för att göra ett spel “djupare” och ge det mer speltid och roligare pussel så måste man ta in fler variabler i sitt spel alltså fler data som spelar roll i hur spelet utspelar sig.  Jag använder mig utav variabler ifrån verkligheten i mitt prototyp arbete  för plats baserade spel och om jag kan använda mig utav mer data än vara nätverks information skulle det kunna förbättra upplevelsen avsevärt.

Koster, R. (2005). A theory of fun for game design. Scottsdale, AZ: Paraglyph Press.