En modell för att generera beteendemönster baserat på Smart Terrain



Relevanta dokument
Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum:

Simulering av brand i Virtual Reality

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum:

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

Real-time requirements for online games

Slutrapport för Pacman

Spel som interaktiva berättelser

6-stegsguide för hur du tänker positivt och förblir positiv.

TDDB96 Projekt: Object priming med visuell stimuli

Kommentar till bilderna. Att spara hörsel för framtiden. Bara det värdefulla är vi beredda att skydda! Hörseln vad kan vi förstå?!

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Planeringsspelets mysterier, del 1

Det första steget blir att titta i Svensk MeSH för att se om vi kan hitta några bra engelska termer att ha med oss på sökresan.

Objektorienterad programmering

Just nu pågår flera satsningar för att förbättra svenska elevers måluppfyllelse

Vad utmärker ett bra gränssnitt?

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015

Lära tillsammans som grund för utveckling erfarenheter från förskolan. Sunne 3-4 februari 2010 Katina Thelin

SCHEMA FÖR SLUTPRESENTATIONER

Språkäventyret. Mål. Verktyg. Inledande arbete

Mönster. Ulf Cederling Växjö University Slide 1

Interaktiva Bibliotek. Eva Eriksson. IDC Interaction Design Collegium

Att intervjua och observera

Concept Selection Chaper 7

State Examinations Commission

Forma komprimerat trä

Självreflektionsinstrument familjecentral en användarguide

DIGITALA PROJEKT Väderstation

Administrationsverktyg för marinvåg

Aktiva och passiva handlingsstrategier

Ur boken Självkänsla Bortom populärpsykologi och enkla sanningar

Min syn på visuella verktyg i produktutvecklingsprocessen

Lokal arbetssplan utifrån de prioriterade målen ur Läroplan för förskolan Lpfö 98/10

el o;; Utbildningsplan för Kognitionsvetenskapligt kandidatprogram Bachefor Programmein Cognitive Science 180 Högskolepoäng

Verksamhetsplan Uteförskolan Totte

Stina Nyman

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018

Introduktion till arv

1. Anna på jobbet INSIKT:

SLALOMINGÅNGAR hur svårt kan det vara?

Sagt & gjort. House of Alvik

15.1 Övergången mellan årskurs 6 och 7 och uppdraget i årskurs 7 9

Vetenskapsmetodik. Föreläsning inom kandidatarbetet Per Svensson persve at chalmers.se

Utbildningsplan Dnr CF 52-66/2007. Sida 1 (7)

magazine Höstens tema: BIM Stunden alla har väntat på: Lanseringen av Topocad 16 BIM i fokus när järnväg projekteras HÖST 2015

Tentamen. Makroekonomi NA0133. Augusti 2015 Skrivtid 3 timmar.

Hur reagerar väljare på skatteförändringar?

Ett spel av Michael Schacht för 3-4 personer

1. Inledning. 1. Inledning

Figur 1. Skärmbild med markerade steg i videon. Diagram och tabell som visar positionerna som funktion av tiden.

Att använda flipped classroom i statistisk undervisning. Inger Persson Statistiska institutionen, Uppsala

Vetenskaplig teori och metod II Att hitta vetenskapliga artiklar

diskriminering av invandrare?

Digitalt festivalengagemang

Programmering och digital kompetens

Roger Rödin. Ett projektarbete av Axel Hammarbäck och Roger Rödin IT-Gymnasiet Kista-Rissne. Stockholm, / 5

GYMNASIEARBETE: NINJARENA - VÅRAT EGET SPEL

Gameplay. Föreläsning 6. Logiska, inferens och latterala. Olika typer av utmaningar

HUR KAN ETT AVANCERAT LAGERSTYRNINGSSYSTEM ANPASSAS enligt dina processer och behov utan en endaste rad programkod?

Informationssökning i högskolebibliotekets databaser och på Internet

Utbildningsplaner för kandidat-, magister och masterprogram. 1. Identifikation. Avancerad nivå

openbim Stockholm 22 april 2013 Kraven på BIM är här

Implementering - teori och tillämpning inom hälso- och sjukvård

De interaktiva kuddarna Textil som kommunikationsredskap

De interaktiva kuddarna. Textil som kommunikationsredskap

Eggnappers GDD. High Concept. Genre. Grafisk stil. Features

TSBK 10 Teknik för avancerade datorspel Fö 9: Nätverk, Peter Johansson, ISY

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

5 vanliga misstag som chefer gör

Fråga 1. A) Domain-requirement analysis B) Questionaires C) Focus groups D) Design workshop C) Stakeholder analysis. Svar: C, D

Diskussionsproblem för Statistik för ingenjörer

Föreläsning 8. Designmönster

VI VET VAD SOM KRÄVS MALMÖ

Totalt finns det alltså 20 individer i denna population. Hälften, dvs 50%, av dem är svarta.

Case: Kundservice. Vad är det som idag kan kallas service? Madeleine Lindqvist

B. Förkunskapskrav och andra villkor för tillträde till kursen

08 Nov 30 nov.15 Från Arktis till Paris

D e s i g n p r o c e s s e n

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Digitala Projekt (EITF11)

Viktigt att tänka på i en intervju och de vanligaste fallgroparna. som intervjuar. Ett kostnadsfritt whitepaper utgivet av Level Recruitment


Miljö och hållbar utveckling MHU

Förskola i Bromma- Examensarbete. Henrik Westling. Supervisor. Examiner

1IK430 Brukarorienterad design

Maktsalongen Verksamhetsplan 2015

Beslut Utbildningsplanen är fastställd av Nämnden för konstnärligt utvecklingsarbete (KUnämnden)

GYMKEEPER ANDREAS SÖDERSTRÖM

Personal- och arbetsgivarutskottet

D/A- och A/D-omvandlarmodul MOD687-31

Bachelor Course in Education with Specialisation in Behavioural Analysis and IT Environments, 30.0 Credits

Algoritm för uppskattning av den maximala effekten i eldistributionsnät med avseende på Nätnyttomodellens sammanlagringsfunktion

GPS-sändare: en ny era för studier av beteendeekologi hos vilda djur

Handledare: Mikael Goldmann

HexaFlip. Kravspecifikation

Ökat personligt engagemang En studie om coachande förhållningssätt

Syns du, finns du? Examensarbete 15 hp kandidatnivå Medie- och kommunikationsvetenskap

Integrering av formgivningsprocessen i en produktutvecklingsprocess

GUIDE FÖR KOMMUNIKATION. En guide som är utvecklad för att beskriva användningen av alternativ och kompletterande kommunikation på daghemmet.

Transkript:

Teknik och samhälle Datavetenskap Examensarbete 15 högskolepoäng, grundnivå En modell för att generera beteendemönster baserat på Smart Terrain A Smart Terrain based model for generating behavioural patterns Victor Olsson Jesper Sahlin Examen: Kandidatexamen 180 hp Huvudområde: Datavetenskap Program: Spelutveckling Datum för slutseminarium: 2015-05-30 Handledare: Steve Dahlskog Andrabedömare: Olle Lindeberg

Sammanfattning I denna uppsats kommer vi att presentera en modell vars syfte är att generera beteendemönster för rollfigurer i digitala spel. Spelgenren rollspel (eng. Role-playing games) placerar spelaren i en värld fylld av fantastiska monster och modiga hjältar. I ett sådant spel är de goda karaktärerna minst lika viktiga som de ondskefulla varelser som spelaren kämpar mot. Hur ser livet ut för en spelkaraktär när den inte hjälper spelaren på dess äventyr? De kanske lever som fiskare på havet eller som bönder ute på fältet. Mer troligt är att de bor i en by tillsammans med en massa andra spännande karaktärer. Vi undersöker hur sådana karaktärers vardag ser ut och tittar på en teknik som används för att skapa deras beteendemönster, Cyclic Scheduling. Tekniken innebär att utvecklare skapar scheman som styr rollfigurernas beteende. Dessa scheman måste skapas i förväg under spelets utveckling och kräver i stora spel många arbetstimmar för att utvecklas. Modellen vi presenterar i denna uppsats använder tekniken Smart Terrain för att automatiskt generera beteendemönster och kan användas för att minska utvecklingstid. Vi diskuterar hur modellen kan användas i föränderliga spelvärldar där utvecklare inte i förhand vet hur spelens omgivningar kommer att se ut.

Abstract In this thesis we present a model for the generation of behaviour patterns for characters in digital games. In the genre Role-playing games the player is placed in a world filled with fantastic monsters and brave heroes. In this kind of game the good characters are as important as the evil creatures the player must fight against. What kind of life does a game character have when not helping the player on adventures? Maybe they live as fishermen on the sea or as farmers in the fields. More likely they live in villages amongst other exciting game characters. We examine what these characters daily routines looks like and look at a technique used for creating their behaviour patterns, Cyclic Scheduling. The technique is used by developers to create schedules that control the behaviour of characters in games. These schedules have to be created during the game development process and for bigger games this consumes a lot of time. The model we presents in this thesis uses the technique Smart Terrain to automatically generate behaviour patterns thereby reducing the development time. We discuss how the model can be used in dynamic game worlds where the developers are unaware of potential changes in the game world.

Innehåll 1 Inledning 1 1.1 Bakgrund..................................... 1 1.1.1 Cyclic Scheduling............................. 1 1.1.2 Smart Terrain............................... 2 1.1.3 Procedural Content Generation..................... 3 1.2 Syfte........................................ 3 1.3 Frågeställning................................... 4 1.4 Tidigare Forskning................................ 4 1.5 Avgränsning.................................... 4 2 Metod 6 2.1 Metodbeskrivning................................. 6 2.1.1 Design Science.............................. 6 2.2 Forskningsprocess................................. 7 2.2.1 Förundersökning............................. 7 2.2.2 Öka kunskap om det angivna problemet................ 8 2.2.3 Alternativa lösningar på det angivna problemet............ 8 2.2.4 Skapa en ny modell............................ 8 2.2.5 Implementera modellen......................... 8 2.2.6 Validering av modellen.......................... 9 2.2.7 Etiska överväganden........................... 9 2.3 Metoddiskussion................................. 9 2.3.1 Design science.............................. 9 2.3.2 Alternativa metoder........................... 9 3 Resultat 11 3.1 Lösning...................................... 11 3.1.1 Beslutsfattande.............................. 12 3.2 Miljö........................................ 12 3.3 Resultat för Testfall............................... 13 3.3.1 Testserie 1: En Agent och två Objekt.................. 13 3.3.2 Testserie 2: Agentens vikter och startvärde............... 14 3.4 Resultat från simuleringarna........................... 19 3.4.1 Simulering med en agent......................... 19 3.4.2 Simulering med flera agenter...................... 20 4 Analys 24 4.1 Analys av implementationen........................... 24 4.2 Parametrar.................................... 24 4.2.1 Förändringsgrad............................. 24 4.2.2 Positiv och negativ förändringsgrad................... 24 4.2.3 Startvärde för ett behov......................... 24 4.2.4 Avstånd.................................. 25 4.2.5 Behovens vikt............................... 25 4.3 Analys av simuleringarna............................ 25

4.3.1 Analys av simulering 3.5.1........................ 25 4.3.2 Analys av simulering 3.5.2: Boel.................... 26 4.3.3 Analys av simulering 3.5.2: Erik..................... 26 4.3.4 Analys av simulering 3.5.2: Ulrika.................... 26 5 Diskussion 27 5.1 Användning av modellen för att generera beteendemönster.......... 27 5.1.1 Användning för att generera Offline.................. 27 5.1.2 Användning för att generera Online.................. 27 5.2 Modellen...................................... 28 5.2.1 Variation eller kontroll.......................... 28 5.2.2 Komplexitet................................ 28 5.2.3 Jämförande med andra modeller.................... 29 5.3 Implementation.................................. 29 5.4 Etik i teknologi.................................. 30 6 Slutsatser och vidare forskning 31 6.1 Slutsats...................................... 31 6.2 Vidare Forskning................................. 31 Figur- och tabellförteckning 33 Referenser 34

1 Inledning 1.1 Bakgrund I digitala spel agerar datorstyrda rollfigurer statister i spelens världar. Olika genrer har olika krav på vad deras rollfigurer bör utföra för att göra spelet underhållande. Det rollfigurerna har gemensamt att de är styrda av artificiell intelligens (AI). Vi kallar en ai-styrd rollfigur för en agent. Ett slagsmålsspel (eng. fighting game) som Tekken [19] sätter spelarens avatar mot agenter i en hård kamp om att bli matchens vinnare. Agenternas syfte i ett sådant spel är att ge spelaren en underhållande utmaning. Andra genrer använder AI-styrda agenter för att ge en spelaren en illusion av verklighet i spelen. För att diktera agenternas beteende kan olika tekniker användas, exempelvis tekniken Boids [24] som ger agenterna ett flockbeteende och lämpar sig för simulering av en stadsmiljö. I The Elder Scrolls V: Skyrim [7] (Skyrim) skapas en virtuell värld, fri för spelaren att utforska och låta sig underhållas av. Spelets agenter befolkar spelets många virtuella byar och städer. Varje agent har en egen daglig rutin de följer under spelet gång, oavsett om spelaren interagerar med dem eller inte. Spelvärlden blir en simulering av en levande värld, som spelaren är en del av. Spelet Skyrim innehåller hundratals AI-styrda agenter och dessa behöver förses med rutiner att följa. För att skapa detta förses varje agent ett schema som är skapat med tekniken Cyclic Scheduling (cykliskt schema). 1998 släppte Electronic Arts speltiteln The Sims [16]. I det här spelet kan spelaren till skillnad från Skyrim kontrollera agenterna direkt. Spelarens uppgift är att bygga upp agenternas digitala hem och kontrollera deras vardag genom att ge dem order att interagera med olika objekt. Om spelaren inte ger agenterna order kommer de själva vandra runt i spelvärlden och interagera med objekt de anser intressanta. The Sims använder tekniken Smart Terrain för att göra det möjligt för agenterna att ta dessa självständiga beslut. Moderna spel som Skyrim tar många år att utveckla då stora mängder digitalt spelinnehåll måste skapas [13]. AI-tekniker som Procedural content Generation (PCG) kan användas för att procedurellt generera innehåll och används av industrin för att skära ner på de växande utvecklingstiderna [20]. Dessa tekniker handlar främst om att generera vad spelvärldar ska innehålla [26]. Dessa tekniker behandlar inte hur AI-agenters beteendemönster kan genereras, även om vi ser att det finns ett behov av sådan automatisering. Zhao och Szafron skriver i sin artikel om Cyclic Scheduling [38]: Creating natural-looking behaviors for virtual characters is not inexpensive. In a typical commercial story based game, there are hundreds of virtual characters. 1.1.1 Cyclic Scheduling Cyclic Scheduling används för att bestämma vilka aktiviteter agenter ska utföra vid en viss tidpunkt. Aktiviteter för ett typiskt schema är exempelvis sova, äta, arbeta och socialt umgänge [38]. En aktivitet tilldelas en tidpunkt då den ska startas och en tidpunkt då den ska avslutas. När en aktivitet avslutas påbörjas nästa och på detta sätt planeras en hel dag för en AI-styrd agent. Figur 1 visar ett exempel på hur en agents dag skulle kunna se ut. Denna teknik gör att spelutvecklare kan ge rutiner till agenter i en spelvärld. Med hjälp 1

Figur 1: Ett dagligt schema för en agent av tekniken skapas illusionen av att agenten är en rollfigur med ett liv som pågår under tiden spelaren spelar spelet [38]. I spelet Skyrim befinner sig spelarens avatar i en miljö fylld med virtuella agenter. Agenterna är allt från bokhandlare till banditer och de utgör en viktig del av spelvärlden. Det är därför viktigt att agenterna beter sig verklighetstroget för att ge spelaren en känsla av att spelvärlden är levande. Utvecklarna använder Cyclic Scheduling för att styra dessa agenter [38]. När ett spel utvecklas är det viktigt att veta exakt var AI-agenter befinner sig, så att detta kan kommuniceras till spelaren. Cykliska scheman hanterar detta väl då de alltid vet var en agent är vid en viss tidpunkt. I en undersökning från 2007 följer Björk och Lankoski en agents vardag i spelet The Elder Scrolls IV: Oblivion, föregångaren till Skyrim [8]. De finner att agentens dagliga rutin inte innefattar införskaffning av mat och dryck, även om andra agenter i spelet kan ses utföra dessa handlingar. De argumenterar att detta gör att spelaren får känslan av att mat och dryck ej är en nödvändighet för agenten och utförs i spelet endast som en tom handling. Agenterna känner inte till mer av världen än vad utvecklarna har programmerat att de ska känna till. 1.1.2 Smart Terrain Smart Terrain är en teknik där data centreras i objekt i världen. Ett sådant objekt kallas Smart Object (smarta objekt). Objektens data beskriver hur agenter och spelare ska agera med objektet. The Sims är ett tydligt exemplen på hur man kan använda Smart Terrain i spel. Fördelarna med metoden är många. För utvecklarna av The Sims innebär det att nya objekt enkelt kan skapas och läggas in i spelet i efterhand, eftersom att ingen logik behövs skrivas om då all data är lagrad i det nya objektet. Detta skiljer sig från Cyclic Scheduling där beteendemönster måste programmeras om för att agenterna ska kunna använda nya objekt. Sullins beskriver fyra drag för att definiera Smart Terrain [29]: 1. Agenter i världen har ett eller flera behov. 2. Objekt i världen kan tillfredsställa dessa behov. 3. Istället för att agenten letar efter objekt som tillfredsställer behov, signalerar (Broadcast) objekten sina förmågor att tillfredsställa behovet till agenten. Signalen har en begränsad signalradie. 4. En agent som befinner sig inom räckvidden för en signal från ett objekt som tillfredsställer ett behov blir påverkad att röra sig mot objektet. I The Sims simuleras dagliga aktiviteter som en agenter i ett hushåll kommer att utföra under dagen. Spelaren kan ge agenterna order om vart de ska förflytta sig och vilka objekt de ska interagera med. När spelaren inte ger agenterna dessa direktiv väljer de själva var de ska förflytta sig och vilka objekt de ska interagera med. Smart Terrain används för att 2

agenterna ska veta hur de ska interagera med objekten i sin omgivning. Objekten skickar ut en signal (Broadcast) till agenten och denna signal säger vad objekten kan användas till. När agenten ska välja en ny aktivitet att utföra väljer den någon av signalerna och går till den valda signalens ursprung. Signalen innehåller information om hur agenten ska utföra aktiviteten, till exempel vilken animation som ska användas, om objektet ger någon slags poäng eller kostar något att använda. Systemet gör att en agent kan navigera sig i en miljö med ytterst lite data om hur miljön ser ut och vad den innehåller. Forskning om Smart Terrain har främst handlat om hur agenter ska välja ut intressanta objekt om det finns många kandidater [29] och om hur tekniken kan användas för att lösa problem i andra områden inom AI-forskning. Bassey et al. använder Smart Terrain för att anpassa AI-styrda agenter taktiska beslut i spel med dynamiska miljöer [5]. 1.1.3 Procedural Content Generation Procedural Content Generation (PCG) är en term för tekniker som används för att generera digitalt spelinnehåll med hjälp av algoritmer [31]. Med PCG kan snabbt hela spelvärldar skapas där varje värld är unik. Ett exempel på användning är spelet Minecraft [17] där spelvärldens enorma yta skapas med en PCG-algoritm. Användningen av PCG leder till kortare utvecklingstid och minskade kostnader då utvecklarna inte behöver spendera tid på att skapa unikt spelinnehåll. Togelius et al. skriver i en undersökning om sökbaserade PCGtekniker om skillnaden mellan att skapa innehåll Offline (innan körning, under utveckling) eller Online (under körning, efter utveckling) [32]. Vi kommer att använda denna definition när vi talar om sådant innehåll. Vi har presenterar fördelarna med cycliska scheman och hur de används i den populära speltitlen Skyrim. Förutsättningen för att skapa ett cycliskt schema är att utvecklaren känner till hur spelvärlden ser ut. Att använda PCG-tekniker har konsekvensen att utvecklare förlorar kunskap om hur spelvärlden kommer att se ut om världen skapas Online. Därför är det svårt att kombinera PCG-genererade spelvärldar med cykliska scheman. 1.2 Syfte Vi föreslår en modell vars ändamål är att styra agenters beteende genom användning av tekniken Smart Terrain. Modellen genererar beteendemönster för AI-agenter beroende på vad deras omgivning innehåller. Dessa beteendemönster används sedan som ritning för cycliska scheman. Utvecklare gör en simulering i spelvärlden med en mängd agenter som styrs av vår modell. Data om agenternas aktiviteter och position samlas in under simuleringen. Denna data används sedan för att definiera agenternas beteende under spelet körning. Detta tillvägagångssätt innebär att utvecklaren behåller kontrollen över agenterna men reducerar tiden det tar att skapa deras beteende. Modellen kan också användas Online tillsammans med PCG-genererade spelvärldar eftersom att den tillåter att spelvärlden är okänd fram tills dess att den är genererad. I denna uppsats kommer vi att visa ett proof-of-concept som visar hur en implementation av denna teknik kan se ut och om den implementationen fyller de syften vi definierat ovan. 3

1.3 Frågeställning Digitala spel som innehåller AI-agenter vars beteendemönster är baserade på cykliska scheman tar lång tid att utveckla. Hur kan tekniken Smart Terrain användas för att automatisera skapandet av beteendemönster med syftet att minska utvecklingstiden för spel? 1.4 Tidigare Forskning Zhao och Szafron har tagit fram en teknik som låter en designer kontrollera en agent för att sedan spara undan data under simuleringen (Behavior Capture). De använder datan för att träna en dold Markovmodel. Modellen används sedan för att styra beteendet för andra agenter i simulationen [36]. Zhao och Szafron utvärderar och utvecklar tekniken ytterligare i en senare artikel om Cyclic Scheduling från 2014 [38]. Orkin var med och utvecklade speltiteln F.E.A.R [18] Under utvecklingen skrev han en artikel om arbetet med spelets AI-implementation [22]. Spelet använder sig av realtidsplanering för ge dess virtuella agenter förmågan att hantera oväntade situationer. Orkin beskriver hur användningen av realtidsplanering gör att de inte behövde använda Scripting eller tillståndsmaskiner. Forskning har gjorts på området Smart Terrain som sträcker sig bortom implementationen som används i The Sims. Doyle utforskar användning av tekniken i ett textbaserat äventyrsspel [10]. I spelet följs spelarens karaktär av en agent och spelvärlden är uppbyggd av smarta objekt. Objekten innehåller information om hur agenten ska reagera när spelaren interagerar med dem. Här är agenten inte driven av de behov som driver agenter i The Sims och forskningen visar hur Smart Terrain kan användas i andra sammanhang. Sullins har tagit fram tekniker för att ge agenter som använder sig av Smart Terrain förmågan att använda sannolikheter när de räknar fram vilket objekt de ska välja. Sullins kallar detta Probalistic Smart Terrain [29]. Hans studie från 2009 ger objekt poäng baserat på hur bra de uppfyller olika behov. Studien testar olika scenarion såsom hur en agent kan välja mellan två objekt om de har samma avstånd från agenten eller hur agenten ska förhålla sig till objekt med olika avstånd och olika hög poäng. Sullins har även tagit fram ytterligare en modell som möjliggör samarbete mellan flera agenter [30]. Yannakakis publicerade 2012 en artikel där han sammanfattar var modern forskning om Artificiell Intelligens inom spel befinner sig [35]. Han föreslår fyra flaggskepp inom området som han anser vara av speciellt intresse för framtida forskning: Procedural Content Generation (PCG), Player Experience Modelling (PEM) och Non-Player Character (NPC) AI. Studien visar att forskning inom AI har förändrats på senare år med nya tekniker på framfart men att även äldre områden där NPC AI fortfarande är relevanta och värda att utforska vidare. Yannakakis skriver [35]: So far, the question of whether empirical research efforts should be put more on the agent or its environment (or both) in order for the agent to appear more believable, human-like, or intelligent remains largely unanswered. 1.5 Avgränsning I sin bok AI Game Engine Programming beskriver Schwab tre steg som driver en AI-styrd agent: perception, beslut och genomförande [25]. Vi fokuserar på perception (Broadcasts), 4

beslut (en algoritm som bestämmer var en agent en ska gå), men inte på genomförande då vi inte tittar på hur agenterna genomför handlingar. Då hur det utför en handling kommer vara annorlunda för varje spel. Vi förutsätter bara att de utför handlingen. Vi formar våra testfall så att de är relevanta för spel i samma genre som Skyrim. Scenarion från andra genrer som till exempel slagsmålsspel tas inte upp av denna uppsats. Under våra testfall och simuleringar testar vi inte vad som händer om agenterna inte har tillgång till objekt, så följande fall tas inte upp: 1. Fall där inga smarta objekt existerar i världen. 2. Fall där agenter är bortom signalradien för samtliga smarta objekt. Detta diskuteras vidare i sektion 5.3 Implementation (s. 29). För att efterlikna spelet Skyrim och dess användning av Cyclic Scheduling utför vi våra simuleringar under 24 simuleringstimmar. 5

2 Metod 2.1 Metodbeskrivning Det är vårt mål att skapa ett bidrag till den forskning som redan existerar, och ett användbart bidrag till spelindustrin. Därför har vi valt metoden Design Science för att hitta svaren vi söker. Domänen för problemet är informationsteknik och metoden lämpar sig för den här typen av forskning [28]. Detta innebär att skapandet av en artefakt kommer vara fokus för vår forskningsarbete. Spelindustrin använder ofta iterativ prototyping vid utveckling av spel [15], därför lämpar sig den iterativa forskningsprocessen som Design Science tillämpar. Båda är iterativa. 2.1.1 Design Science Design Science är en forskningsmetodik som riktar sig till att hitta svar på frågor som är relevanta för utveckling av ny teknik. Metoden lägger stor vikt på att forskningen skall vara relevant för den domän där den kan användas. Van Aken och Romme skriver [33] Design science research can be defined as research, based on the approach of the design sciences, that is, research that develops valid general knowledge to solve field problems. Vad detta innebär är att den arbetsprocess som Design Science innefattar ska vara industrinära så att resultaten som produceras kan användas i praktiken. Ett resultat av detta är att skapandet av artefakter i form av implementationer som löser och utvärderar problem är en central del av utförandet. Mycket arbete har utförs för att definiera metoden. En sammanställning av olika tillvägagångssätt gjordes av Peffers et al. där de också föreslår en utveckling av metoden [23]. Hevner et al. publicerade 2004 en artikel som tog sig an att definiera riktlinjer för forskning som tillämpar Design Science-metoden [12]. De är: Design av en artefakt Problemets relevans Design-validering. Bidrag till existerande forskning. Forskningsstringens. Design av en explorativ forskningsprocess. Kommunikation av forskning. Dessa är de riktlinjer vi följer under vårt arbete. I nästa avsnitt besrkiver vi hur vi använder dessa riktlinjer när vi utför vår forskningsprocess. 6

2.2 Forskningsprocess För att utvärdera användningen av Smart Terrain för vårt syfte utvecklar vi en modell. Vår utvecklingsprocess förhåller sig till den som definieras i vår valda metod, Design Science. Vi utför utveckling av modellen i följande steg: 1. Förundersökning. 2. Öka kunskap för problemet. 3. Hitta alternativa lösningar. 4. Skapa en modell. 5. Implementera modellen. 6. Validera modellen. 7. Etiska överväganden Dessa steg är definierade av Offermann et al. i deras sammanfattning av Design Scienceprocessen från 2009 [21] och med tillägget etiska överväganden som beskrivs av Strode och Chard i en artikel från 2014 [28]. 2.2.1 Förundersökning Under förundersökningen fastställer vi problemets relevans. Detta gör vi genom en litteraturundersökning. Under detta skede så är det viktigt för oss att förstå problemen som finns kring skapandet av AI-styrda agenter i spelindustrin. Vi använder inte expertintervjuer som förespråkas av Offermann et al. Detta för att vi kan etablera problemets relevans med hjälp av litteraturundersökningen. Identifikation av problemet sker i samband med litteraturundersökningen. Dessa steg kommer att underlätta vår forskning då ett av de första stegen i Design Science är att hitta ett relevant problem samt att öka vår kunskap rörande problemet. Det finns numera konferenser som enbart riktar sig till området artificiell intelligens och digitala spel. Dessa är en naturlig utgångspunkt för vår litteraturundersökning. Games Research Association (DiGRA) [3] är en konferens om digitala spel och hålls varje år. De tillhandahåller en bred databas av artiklar inom området. The Association for the Advancement of Artificial Intelligence (AAAI) [2] anordnar konferensen AIIDE som även den hålls årligen. Konferensen riktar sig till forskare inom AI-forskning, men inte enbart om AI i digitala spel. Artiklar från organisationens konferenser återfinns i deras databas. Båda dessa databaser änvänder vi som utgångspunkt för litteratursökningen eftersom deras inriktning är relevant för frågeställningen. Databaser som inte enbart innehåller artiklar om artificiell intelligens eller spel använder vi också: databaserna IEEE Xplore [4], ACM Digital Library [1] innehåller stora mängder artiklar som är relevanta för forskning om digitala spel och artificiell intelligens. Design Science kräver att vi måste säkerställa problemets relevans med information från spelbranschen [12]. Vi söker därför information i relevanta spel och bloggar, utöver vetenskapliga artiklar. Områden vår frågeställning berör är främst metoden Smart Terrain (se 1.1.2 Smart Terrain, s. 2), AI-agenters beteende i spel och schemaläggning för att syra AI-agenters beteendemönster (se 1.1.1 Cyclic Scheduling, 7

s. 1). Vi baserar våra sökord på dessa områden, vilket ger oss en god utgångspunkt. Vi använder följande sökord för att hitta vår litteratur: Smart Terrain, Games Scheduling, Cyclic Scheduling, Npc Game AI, Game AI Realistic, Non-player Character, Game Agent Believability, Artificial Intelligence Games. 2.2.2 Öka kunskap om det angivna problemet Efter det föregående steget så har vi en bättre definition av problemet, eftersom vi har fördjupat vår kunskap. Detta är viktigt då problemet kräver mer detaljerad kunskap om området. Vi identifierar spel som påvisar problem som ses som problematiskt för spelindustrin. Vi undersöker Skyrim som är ett av det mest populära spelen i rollspelsgenren [11] som använder ett cykliskt schema [38]. Vi studerar också andra spel såsom F.E.A.R [18] och The Elder Scrolls IV: Oblivion [6]. Genom att studera de lösningar på problemet Sullins föreslår i sin artikel [29], de lösningar Zhao och Szafron föreslog i sin Cyclic Scheduling-modell [38] och det som föreslås av Orkins artikel [22] får vi en ökad uppfattning av problemets natur. Genom att söka efter användning av dessa design-lösningar inom spelindustrin fann vi att spelet The Sims hade löst problemet med hjälp av Smart Terrain [29]. 2.2.3 Alternativa lösningar på det angivna problemet Under vår litteraturundersökning söker vi efter alternativa lösningar på problemet. Detta bidrar till en ökad kunskap för problemet och vår kännedom om området. För att få en stor bredd i vår kunskapsbas Vi studerar i huvudsak tre typer av lösningar: 1. Lösningar som använder Smart Terrain. 2. Modeller som uppmuntrar ett varierat beteende för virtuella agenter. 3. Verktyg som används för att skapa scheman för agenter. Detta gör vi samtidigt som vi utför vår förundersökning. 2.2.4 Skapa en ny modell Vi undersöker alternativa modeller som försöker lösa problemet, så att vi får en bättre bild av hur vår modell ska fungera. Vårt val av Design Science som forskningsmetod innebär av vi hittar vår lösning genom en explorativ forskningsprocess. Vi utvecklar en teoretisk modell som vi sedan verifierar genom en implementering. Resultatet av detta visar vi i sektionen 3.1 Lösning, s. 11. 2.2.5 Implementera modellen När vi funnit en teoretisk lösning på problemet skapar vi en implementation av lösningen. Att implementera lösningen gör att vi kan vara stringenta och validera resultaten på ett korrekt sätt och visar att vår forskning har relevans för spelindustrin. Om vi upptäcker problem med modellen under implementationen så modifierar vi modellen. Detta betyder i praktiken att utvecklingen sker iterativt [12]. 8

2.2.6 Validering av modellen För att validera att den resulterande implementationen efterliknar lösningen utför vi simuleringar och testfall. Detta föreslås i artikeln Design Science in Information Systems Research [12]. Vi konstruerar simuleringar och testfall efter scenarion som är relevanta för digitala spel. Validering på detta sätt ger oss fördelen att vi kan kommunicera vår forskning på ett sätt som är relevant för spelindustrin, dit vår forskning riktar sig. Resultaten från valideringsprocessen kan ses i sektionen 3.3, s. 13 Testfall och Simulering, 2.2.7 Etiska överväganden Vid utveckling av en artefakt så är det viktigt att förhålla sig till påverkan som artefakten kan ha på grupper och individer [12]. Strode och Chard föreslår i sin artikel A proposal for using Design Science in small-scale postgraduate research project in information technology [28] att man utöver det som beskrivs av Henver et al. så måste vi reflektera över de etiska följder som en artefakt kan ha [28]. Vi reflekterar över de konsekvenser som introduktionen av en ny artefakt kan ha på individer och grupper som är inblandade med artefakten. Detta presenteras i avsnitt 5.4, s. 30. 2.3 Metoddiskussion I vår metod väljer vi att inte göra expertintervjuer, som Offerman et al. föreslår [21]. Dessa intervjuer är bra för att fastslå relevans för spelbranchen. Vi valde att inte utföra dessa då vi har tillräcklig relevans för att vi inkluderade artefakter från industrin. 2.3.1 Design science Design Sciences mål är att skapa en artefakt, detta är också målet för vår forskning. Detta gör att vi kan använda Design Science som metod hela vägen genom vår forskning. Vi vill lösa ett problem i spel, detta gör att vi ville välja en metod som liknar den som används i spelindustrin. Metoden Design Science har stor fokus på iterativ utveckling [12], vilket liknar den utvecklingsprocess som ofta används inom spelindustrin [15]. Forskningsprocessen kretsar kring att vi testar våra hypoteser på en artefakt, vilket gör att vi kan upptäcka praktiska svårigheter under utvecklingen. En stor fördel med denna metod är att vi kan få fram simuleringar som liknar spelvärldar producerade av spelbranschen och på så sätt komma fram till relevanta resultat. Vid utveckling av vår artefakt var det viktigt att vara stringenta. Vi kan förhålla oss till detta genom att använde de metoder som Design Science beskriver. 2.3.2 Alternativa metoder Ett alternativ till Design Science skulle vara att skapa en teoretisk matematisk modell som beskriver hur en agent gör sina val. Med en sådan metod räknar vi ut vilka värden agenterna och objekten ska starta med för att uppnå ett önskat schema. Vi kan räkna fram schemat genom att titta vad algoritmen resulterar i vid en specifik tid. Fördelen med detta är att man kan lägga mer vikt på modellen, för att man inte behöver ta lika mycket hänsyn till de praktiska problem som kan uppstå under utveckling. Nackdelen med metoden är att 9

praktiska svårigheter inte vägs in i algoritmens utformning, eftersom att dessa inte kan upptäckas med en helt teoretisk modell. 10

3 Resultat 3.1 Lösning Vår lösning baseras på ett system där agenter har ett ändligt antal behov som de får i uppgift att uppfylla. Agenterna åstadkommer detta genom att ta sig till smarta objekt som på olika sätt uppfyller ett eller flera behov. Dessa objekt är utplacerade på olika positioner i spelvärlden. Objekten skickar ut signaler till agenterna med information om vilka behov de kan uppfylla, deras signalradie och avståndet till agenten. Agenter fattar beslut om vilket objekt de ska ta sig till baserat informationen från signalerna och vilket som är agentens mest akuta behov (se 3.1.1 Beslutsfattande, s. 12). Vi ser att valet av parametrar är av stor vikt då det definierar en stor del av agenternas beteende. Agenternas behov påverkas inte konstant som de gör i The Sims där agenternas behov alltid ökar under spelets gång, utan endast när agenterna befinner sig vid de smarta objekten. Vi gav varje behov en vikt som representerade hur nödvändigt eller akut behovet var för agenten. För att illustrera detta gav vi dem behov som Sömn som fick en stor vikt till Nöje med en liten vikt. Detta innebär att att agenten väljer att ta sig till en plats som uppfyller ett behov med större vikt när agenten valde mellan olika destinationer. Vikten används för att simulera att vissa behov är mer trängande än andra, till exempel behovet att äta är viktigare att uppfylla än behovet för nöje. Värdet går från 0.0 (aldrig prioriterat) till 1.0 (alltid högsta prioritet). En värld bestående av objekt vars totala påverkan är negativ gör att agentens behov alltid ökar. Detta resulterar i att agenten rör sig snabbare och snabbare mellan objekten eftersom att alla behov är akuta. Denna effekt blir mer påtagligt desto längre simuleringen pågår. Om den totala påverkan istället är positiv blir konsekvensen att agenterna stannar längre och längre vid varje objekt eftersom att de inte har något behov att uppfylla. För att förhindra detta begränsar vi behovsvärdena mellan intervallet 0-1. En liknande lösning återfinns i The Sims där behovsvärdena också har en maximal och minimal gräns. Modellen implementeras i en tredimensionell testmiljö som efterliknar en mindre by i Skyrim (2-10 hus). Objekten i världen gestaltar hus och ligger tätt intill varandra. Implementationen testas med en simulering där agenter tillfredsställer behov genom att gå till de olika objekt som finns utplacerade i vår virtuella by. För att ge simulationen kontext implementerar vi en 24-timmars klocka. Med hjälp av klockan blir det möjligt att jämföra det dagliga scheman som varje simulering resulterar i. Vår lösning tillåter i teorin ett oändligt antal behov men vi visar här användningen av fyra stycken. Implementationen stödjer att varje objekt kan ge positiv eller negativa förändringar på flera behov samtidigt, men vi visar i våra resultat objekt med maximalt tre olika behovsmodifierare. I Skyrim har agenterna fasta bostäder och arbetsplatser. För att anknyta till det spelet och därmed spelbranschen skapade vi några specialfall där vi gav AI-agenterna en del fasta objekt att gå till. Funktionaliteten kan stängas av och nedan kommer vi att ange när agenterna har fasta objekt och isåfall vilka. 11

3.1.1 Beslutsfattande Agenterna utvärderar signalerna i ett intervall på en minut i simulerad tid (se 3.1.1 Miljö, s. 12). Vid varje utvärderingstillfälle sker en beräkning på alla signaler vars signalradie är större än avståndet från den aktuella agenten. Algoritmen som agenternas beslut baseras på beskrivs nedan. Algoritmen resulterar i ett vinnande objekt, som agenten sedan går till. Påverkan (B) på en agent beskrivs som: B = f w v f = objektets förändringsgrad på behovsvärdet, w = behovets vikt (definieras av agenten), v = Agentens nuvarande värde för behovet. Den totala påverkan objektet har på agentens behov (T ) beräknas som: T = i P B i i N B i P = samling av signalens positiva behov, N = samling av signalens negativ behov, i = ett behovsvärde som objektet påverkar. Kostnaden (K) för att en agent ska nå ett objekt beräknas som: K = d r d = avstånd mellan agenten och objektet, r = signalradie Den slutgiltiga påverkan (S) beräknas som: S = T K En vinnare väljs sedan genom att ta den största slutgiltiga påverkan: max [S 1, S 2,..., S n ] 3.2 Miljö Vi använde spelmotorn Unreal Engine 4.7.3 för att skapa och köra vår testmiljö. Motorn låter oss skapa en tredimensionell virtuell värld och förser oss med en A*-baserad sökalgoritm för agenternas navigation. För att producera kod till Unreal Engine använder vi programmeringsspråket c++, som förutom att vara effektivt är ett vanligt språk för spelutveckling. För att representera tid i miljön skapar vi en klocka som går 18 gånger snabbare än verklig tid. 12

När vi utför testfallen gör vi det i en miljö där det bara finns en agent och så många objekt som testet kräver. När vi utför våra simuleraringar gör vi detta i en spelvärld vars storlek liknar de många byarna i spelet Skyrim. Detta för att hålla relevans till hur en spelmiljö kan se ut i ett befintligt spel. 3.3 Resultat för Testfall 3.3.1 Testserie 1: En Agent och två Objekt Vi undersöker hur agenten väljer mellan signaler från två olika objekt. Varje testfall visar beslutsfattningsalgoritmens resultat efter behandling av signalernas data. Agentens startvärden alltid är samma (0,5). Behovet som objekten påverkar positivt är Arbete och de har samma vikt (0,1). Till varje testfall följer en figuer som illustrerar agentens handling efter varje val, följt av en tabell som visar testresultatet. Dessa testfall är inspirerade av Sullins testfall i hans artikel om Probalistic Smart Terrain [29]. Vi presenteras de för att att visa hur algoritmen fungerar vid gränsfall och detaljbeslut. Pf = Ett objekts positiva förändringsgrad. Nf = Ett objekts negativa förändringsgrad. Testfall 1.1 Olika avstånd mellan objekt Agenten väljer mellan två objekt med samma behovspoäng men avståndet från det ena objektet är större. Resultatet av testfallet är att agenten går till Objekt1 som är närmare agenten. Objekt1 7Agent Objekt2 Figur 2: Resultat av testfall 1.1, Agenten går till det objekt som är närmst Tabell 1 Resultat av testfall 1.1 Avstånd Radie Pf Poängvärde Objekt 1 2500 50000 0,01-0,048 Objekt 2 3500 50000 0,01-0,068 Testfall 1.2 för olika behovspoäng för två objekt Vi testar vilket objekt som agenten kommer att välja om objekten har samma avstånd men behovspoängen är olika. Resultatet av Testfall 1.2 är att agenten gick till det Objekt1 som har en högre positiv förändring. Objekt1 7Agent Objekt2 Figur 3: Resultat av testfall 1.2, Agenten går till det objekt med högst positiv förändring 13

Tabell 2 Resultat av testfall 1.2 Avstånd Radie Pf Poängvärde Objekt 1 3000 50000 0,02-0,056 Objekt 2 3000 50000 0,01-0,058 Testfall 1.3 för två olika objekt om behovspoängen är olika och avståndet är olika Vi testar vilket objekt som agenten kommer att välja om, den totala behovpoängen är olika samt att avståndet till objekten är olika. Detta testfall resulterar i att agenten går till Objekt1, som har en högre positiv förändring och ett större avstånd än Objekt2 Objekt1 7Agent Objekt2 Figur 4: Resultat för testfall 1.3, Agenten går till den plats som har högst positiv påverkan Tabell 3 Resultat av testfall 1.3 Avstånd Radie Pf Poängvärde Objekt 1 2000 50000 0,08-0,024 Objekt 2 1500 50000 0,01-0,028 Testfall 1.4 för olika negativavärden Vi testar vilket objekt agenten kommer att gå om, det positivabehovet är lika, avståndet till objektet är lika långt bort, men det negativa värdet är olika. Det negativa förändringsgraden påverkar Sömn. Resultatet av detta testfall är att agenten går till Objekt1 då det objektet inte har en negativ effekt. Objekt1 7Agent Objekt2 Figur 5: Resultat för testfall 1.4, Agenten går till den plats som har lägst negativt påverkan. Tabell 4 Resultat av testfall 1.4 Avstånd Radie Pf Nf Poängvärde Objekt 1 3000 50000 0,03 0,00-0,034 Objekt 2 3000 50000 0,03 0,01-0,036 3.3.2 Testserie 2: Agentens vikter och startvärde I Testserie 2 så testar vi agentens värde i förhållande mot objekten. Vi testar också de olika behovens förhållande mot varandra. Med dessa tester vill vi vissa att ett Cykliskt Schema 14

kan lätt skapas. Schemat kan ändras beroende på agentens vikter och startvärde. Testerna körs för 24 timmar i simuleringen. Objekt4 Objekt3 7Agent Objekt1 Objekt2 Figur 6: Illustration över hur startscenariot ser ut för alla testfall i Testserie 2 Tabell 5 Resultat av testserie 2 Objekt NF Typ PF Typ Objekt 1 Pengar Mat Objekt 2 Mat Sömn Objekt 3 Jobb Fritid Objekt 4 Fritid Sömn Tabell 6 Startvärde för objekt i testserie 2 Avstånd Radie NF PF Behovets vikt Typ Objekt 1 3000 50000 0,01 0.01 0,1 Mat Objekt 2 3000 50000 0,01 0.01 0,1 Sömn Objekt 3 3000 50000 0,01 0.01 0,1 Jobb Objekt 4 3000 50000 0,01 0.01 0,1 Fritid 15

Testfall 2.1 Cykliskt schema I Testafall 2.1 visar vi att det går att skapa ett Cykliskt Schema med hjälp av att skapa ett beroende mellan en agent och objekten i världen. Agentens startvärde för alla behov är 0,5, och agentens vikt för dessa behov är 0,1. Figur 7: Resultat för testfall 2.1 Figur 8: Resulterande schema för agenten efter testfall 2.1 16

Testfall 2.2 Påverkan av startvärde Testfall 2.2 testar vi hur agenten påverkas att välja objekt genom att sätta ett lägre startvärde för behovet Mat (0.2). Agentens startvärde för de andra behoven är 0,6 och viken är samma för alla behov. Figur 9: Resultat för testfall 2.2 Figur 10: Resulterande schema för agenten efter testfall 2.2 17

Testfall 2.3 Påverkan av vikter I Testfall 2.3 gör vi test för att visa vilken påverkan som en större vikt har. I detta test så kommer behovet Mat att ha en vikt av 0,5 medan de andra behoven har en vikt av 0,1. Behovens startvärde kommer att vara samma (0,5). Figur 11: Resultat för testfall 2.3 Figur 12: Resulterande schema för agenten efter testfall 2.3 18

3.4 Resultat från simuleringarna Vi kör ett antal simuleringar för att undersöka hur agenternas scheman ser ut under ett dygn. I samtliga simuleringar har vi försett agenterna med fasta sovplatser och fasta arbetsplatser, det vill säga att varje agent har ett objekt de alltid går till för att tillfredsställa behovet sömn och ett för att tillfredsställa behovet arbete. 3.4.1 Simulering med en agent I denna simulering visar vi hur en agents schema ser ut under de definierade förutsättningarna. Agent 1 Tabell 7 Startvärde för agenten i simulering 3.5.1 Behov Startvärde Vikt Plats Sömn 0,1 0,35 Objekt 3 Mat 0,6 0,35 Arbete 0,3 0,30 Objekt 1 Nöje 1,0 0,30 Objekt Tabell 8 Positiv och negativ förändrings typ av simulering 3.5.1 Objekt Nf 1 Typ Nf 2 Typ Pf Typ Objekt 1 Arbete Mat Objekt 2 Sömn Nöje Objekt 3 Mat Sömn Objekt 4 Mat Nöje Arbete Tabell 9 Parametrar för objekt i simulering 3.5.1 Objekt Position(x, y) Radie Nf 1 Nf 2 Pf Objekt 1-2000, -2000 50000 0,0049 0,000 0,0160 Objekt 2 2000, -2000 50000 0,0033 0,000 0,0033 Objekt 3 2000, 2000 50000 0,0016 0,000 0,0160 Objekt 4-2000, 2000 50000 0,0040 0,002 0,0028 19

Figur 13: Schema för simulering 1 3.4.2 Simulering med flera agenter Vi utför en simulering för att visa att man kan skapa flera agenter med olika scheman i en miljö. Denna simulering innefattar tre agenter. Observera att agenterna inte har någon påverkan på varandra. De kan inte kollidera med varandra och har ingen uppfattning av varandras behov. Simulering utförs för att vi ska kunna jämföra olika agenter scheman. Nedan följer agenternas namn, startposition, startvärden och sedan en definition av objekten i världen. Boel Startposition: (-1600, -2500) Startvärden: Tabell 10 Startvärde för Boel i simulering 3.5.2 Behov Startvärde Vikt Plats Sömn 0,1 0,35 Boels Hus Mat 0,6 0,35 Arbete 0,3 0,30 Arbetsplats 1 Fritid 0,4 0,30 Erik Startposition: (-1500, 3000) Startvärden: 20

Tabell 11 Startvärde för Erik i simulering 3.5.2 Behov Startvärde Vikt Plats Sömn 0,1 0,35 Eriks Hus Mat 0,6 0,35 Arbete 0,3 0,30 Arbetsplats 1 Fritid 0,4 0,30 Ulrika Startposition: (0, 3800) Startvärden: Tabell 12 Startvärde för Ulrika i simulering 3.5.2 Behov Startvärde Vikt Plats Sömn 1,0 0,35 Ulrikas Hus Mat 0,4 0,35 Arbete 0,2 0,30 Arbetsplats 2 Fritid 0,4 0,30 Objekt Tabell 13 Positiv och negativ förändringstyper i simulering 3.5.2 Objekt Nf 1 Typ Nf 2 Typ Pf Typ Boels Hus Mat Sömn Eriks Hus Mat Sömn Ulrikas Hus Mat Sömn Arbetsplats 1 Mat Fritid Inkomst Arbetsplats 2 Mat Fritid Inkomst Matplats 1 Inkomst Mat Matplats 2 Inkomst Mat Fritidsplats 1 Sömn Fritid Fritidsplats 2 Sömn Fritid Fritidsplats 3 Sömn Fritid 21

Tabell 14 Parametrar för objekt i simulering 3.5.2 Objekt Position(x,y) Radie Nf 1 Nf 2 Pf Boels Hus -2000, -3000 50000 0,0021 0,0000 0,0021 Eriks Hus -2000, 3000 50000 0,0021 0,0000 0,0021 Ulrikas Hus 2000, -1000 50000 0,0021 0,0000 0,0021 Arbetsplats 1 0, -4000 50000 0,0040 0,0020 0,0028 Arbetsplats 2 0, 4000 50000 0,0040 0,0020 0,0028 Matplats 1 2000, 1000 50000 0,0049 0,0000 0,0170 Matplats 2 2000, -3000 50000 0,0049 0,0000 0,0170 Fritidsplats 1-2000, -1000 50000 0,0033 0,0000 0,0033 Fritidsplats 2 2000, 3000 50000 0,0033 0,0000 0,0033 Fritidsplats 3-2000, 1000 50000 0,0039 0,0000 0,0039 Figur 14: Schema för Boel under simulering 2 22

Figur 15: Schema för Erik under simulering 2 Figur 16: Schema för Ulrika under simulering 2 23

4 Analys 4.1 Analys av implementationen För att minska antalet beräkningar som en agent behöver göra för att välja ett av alla kandiderande objekt implementerar vi ett maximalt avstånd på de meddelanden som objekten skickar ut i världen. Detta är en bra lösning då objekt som ligger för långt bort för att aldrig bli valda av agenten filtreras bort. De behöver då inte räknas på och algoritmen kostar mindre. Vi väljer att implementera smarta objekt då det gör det lätt att lägga till fler objekt i världen utan att vi behöver ändra på agenterna. Detta gör också att förändringar i miljön påverkar agenterna. Ett exempel på detta är att om en av matplatserna får slut på mat kan agenterna i simuleringen reagera på detta genom att välja en annan matplats att ta sig till för att tillgodose detta behov. 4.2 Parametrar 4.2.1 Förändringsgrad Förändringsgraden betyder hur mycket ett objekt påverkar ett behov per tidsenhet. Agenter kommer att föredra objekt i världen där behov uppfylls snabbare och undvika objekt som har en hög negativ påverkan. Hur länge en agent stannar vid ett objekt för att tillfredsställa behovet beror på hur stor denna förändringsgrad är. Ett objekt med en låg förändringsgrad innebär att en agent behöva stanna där längre för att få behovet uppfyllt. Vi kan se i testfall 1.3 att förändringsgraden påverkar agentens val då den väljer det objekt som är längre bort istället för att välja det objekt som är närmare. Vi märker att om ett objekt har väldig hög positiv förändringsgrad jämfört andra objekt kommer agenterna med större sannolikhet välja att gå till det objektet. Det som motverkar att en agent alltid går till det objekt som har bäst totala förändringsgrad är avståndet till objektet. Därför är det viktigt att förändringsgrader för nya objekt är nära de värden som beftinliga objekt har. 4.2.2 Positiv och negativ förändringsgrad Det finns två typer av förändringsgrad i systemet: positiv och negativ. Skillnaden mellan dessa är att den positiva förändrignsgraden kommer att uppmuntra agenten till att gå till ett objekt och den negativa förändringsgraden kommer att avskräcka. Om ett värde för ett behov är lågt (det vill säga att agenten behöver tillfredsställa behovet) kommer den positiva påverkan att locka agenten att gå till objektet. Om objektet har hög negativ påverkan kommer agenten att välja ett annat objekt med lägre negativ påverkan. Denna interaktion kan vi se i testfall 1.4 där agenten väljer det objekt som har lägst negativ påverkan för att den positiva påverkan från de båda kandidaterna är samma. 4.2.3 Startvärde för ett behov Varje agent i systemet får individuella startvärden för sina behov. Agenternas startvärden kommer att påverka vilja objekt de väljer att gå till. Detta ses i testfall 2.2 där agenten börjar testfallet med ett lågt värde (0.2) för behovet mat och väljer därför som första 24

val att gå till ett objekt som tillfredsställer matbehovet. Med hjälp av detta värde och förändringsgrad kan vi påverka hur agentens schema kommer att se ut. 4.2.4 Avstånd Avståndet i simuleringen är en avgörande faktor i beslutet om vilket objekt en agent kommer att gå till. I testfall 1.1 kan vi se att agenten väljer det objekt som är närmst om den totala förändringsgraden är samma. Olika scheman kommer att uppstå om agenter har samma startvärde men olika avstånd. För att få agenter med liknande scheman måste vi därför balansera varje enskild agents värden. Avståndet fungerar också som ett sätt för att få en agent ägna sig åt en aktivitet en längre tid, eftersom avståndet till ett objekt där agenten redan befinner sig är noll och därför får det objektet högre poäng av beslutfattningsalgoritmen. Detta motverkar att agenter går fram och tillbaka mellan två objekt. Avståndet mellan objekten kan skapa problem då agenter inte väljer att gå till ett nytt objekt om inte ett av behoven är nära noll, för att avståndet mellan objekten inte gör det värt för agenten att gå vidare. 4.2.5 Behovens vikt Vikten på behoven är till för att få agenter att prioritera vissa behov högre än andra. Vi kan se att i testfall 2.3 börjar agenten med att tillfredsställa behovet för mat eftersom det behov har högre vikt. Ett annat exempel är i simulering 3.5.1 där sömn och mat är prioriterade högre än nöje och arbete. Vikterna gör att vi kan skapa behov som är mer naturtrogna. Vi har valt att sätta högre vikt på mat och sömn eftersom att det återspeglar verkligheten. 4.3 Analys av simuleringarna 4.3.1 Analys av simulering 3.5.1 Vi skapar detta schema genom att sätta ett lågt startvärde på sömnbehoven då det innebar att agenten behövde sova när simuleringen startade. Vi sätter också förändringsvärdet för sömn lågt så agenten behöver sova under flera simuleringstimmar för att tillfredsställa behovet. Detta innebär att agenten väljer att sova när simuleringen startar och forsätter göra det under flera simuleringstimmar. Under tiden som agenten sover ökar behovet av mat så pass mycket att agenten behöver äta. Matbehovet tillfredsställs fort men påverkar arbetsbehovet negativt. Efter att agenten har ätit så kommer behovet för att arbeta vara högt. Därför går agenten till jobbet och arbetar några timmar. Behovet för att arbeta tillfredsställs dubbelt så fort som sova då vi ville att agenten skulle jobba totalt lika länge som den sov, men med en paus för att äta. För att få agenten till att behöva ta en paus så satte vi att behovet för mat skulle öka medan agenten arbetade. Vi ville också att agenten skulle i slutet av dagen ha ett behov för nöje, vi satte därför att arbetsbehovet skulle minska så att efter två arbetspass skulle agenten behöva nöje. Efter att agenten hade ätit mitt på dagen gick han tillbaka och arbetade. När agenten hade arbetat ett antal timmar behövde den både tillfredsställa mat och nöje. Agenten väljer att tillfredsställa behovet för mat då behovet har högre vikt än nöje. Det bör nämnas att agenten skulle valt mat i detta fall även om vikten var samma då platsen för mat var närmare än platsen för nöje. 25

Efter att agenten ätit så tillfredsställer den behovet för nöje. Nöje gör agenten trött så efter behovet har tillfredsställts går agenten och lägger sig igen. 4.3.2 Analys av simulering 3.5.2: Boel I denna simulering uppvisar agenten följande beteende: den sover i början på dygnet och uppfyller resterande av sina andra behov fram till mitten av dagen. Därefter väljer den, till skillnad från agenten i den förra simuleringen, att gå till sin sovplats. För att få ett schema som liknar det som agent 1 har i simulering 3.5.1 måste vi ändra på Boels startvärden så att hon går till liknande platser vid rätt tidpunkt. 4.3.3 Analys av simulering 3.5.2: Erik Agenten Erik har samma startvärden och arbetsplats som Boel men utgår från en annan startposition och har en annan sovplats. Resultatet visar att detta ger Erik ett annorlunda schema jämfört med Boel. Agenten börjar med att sova, spenderar lite tid med att äta och spenderar sedan en längre tid med att få sitt behov av nöje tillfredsställt. Resterande tid fram till simuleringsdygnet kväll spenderar agenten vid sin sovplats. Erik äter sedan och fortsätter att tillfredsställa behovet för nöje. Han sover en kort stund sedan går han och äter. Det näst sista han gör under dagen är att arbeta en kort stund innan han återigen går och äter. Värt att notera är hur lite tid agenten spendera med att arbeta. För att få ett schema som liknar Boels måste vi tänka på skillnaderna som Erik och Boel har i avstånd mellan de objekt som tillfredsställer deras behov. Man kan åstadkomma detta genom att ändra Eriks startvärden. Man kan också ändra Eriks plats i simuleringen så att den är mer lik Boels. Detta schema kommer inte se likadant ut under nästkommande 24 timmar eftersom att Erik har jobbat så kort tid under detta dygnet. Han kommer alltså att behöva jobba mer nästa dag än vad han gjorde under dessa 24 timmar, för att få en balans i sina behovsvärden. Anledningen att Erik inte arbetar så mycket är för att sträckan han måste färdas för att komma fram till sin arbetsplats är mycket lång. Detta gör att behovet för att arbeta ofta får en lägre prioritet än de andra behoven. 4.3.4 Analys av simulering 3.5.2: Ulrika Ulrikas schema liknar en dygnsrytm för någon som jobbar natt och tidig morgon sedan sover under dagen. Hennes startvärden skiljer sig från de två andra agenternas. Ulrika har också annan arbetsplats och sovplats än de båda andra agenterna. Detta resulterar i ett schema som skiljer sig avsevärt från de två andra. Hon börjar med att arbeta, spenderar en kort tid med att äta och tillfredsställer sedan behovet för nöje. Agenten börjar sedan ett långt arbetspass som avlutas med en måltid. Hon sover sedan under dagen, fortsätter med att äta och går sedan och lägger sig igen. Efter att ha sovit går hon och arbetar några timmar. Hon äter ännu en måltid och fortsätter arbeta. Den stora skillnaden mellan Ulrika och de två andra agenterna är att hennes startvärden gör att hon börjar simuleringsdygnet med att arbeta, äta och roa sig istället för att sova. Till skillnad från Eriks situation där han är långt bort ifrån sin arbetsplats så är Ulrika mycket närmare sin då hon jobbar på en annan plats. 26