• No results found

Procedurell generering av grottsystem med hjälp av kubiska Bézier-splines

N/A
N/A
Protected

Academic year: 2021

Share "Procedurell generering av grottsystem med hjälp av kubiska Bézier-splines"

Copied!
33
0
0

Loading.... (view fulltext now)

Full text

(1)

Fakulteten f¨or teknik och samh¨alle Datavetenskap

Examensarbete

15 h¨ogskolepo¨ang, grundniv˚a

Procedurell generering av grottsystem med hj¨alp av kubiska

B´ezier-splines

Procedural generation of dungeons with the help of cubic B´ezier-splines

Manfred Ernhagen Larsson

Hampus Swensson

Examen: (Kandidatexamen 180 hp) Huvudomr˚ade: (Datavetenskap)

Handledare: Steve Dahlskog Andrabed¨omare: C.J Gribel

(2)
(3)

Sammanfattning

I denna uppsats presenteras ett verktyg f¨or att assistera skapandet av spelbanor i dungeon-milj¨o. Skapandet av s˚adana banor ¨ar ofta resurskr¨avande under produktionen och har fokus p˚a design. F¨or att beh˚alla designaspekten men underl¨atta arbetet ¨ar verktyget framtaget f¨or att med tillg¨angliga parametrar producera grottg˚angar f¨or s˚adana banor. Vi unders¨oker med anv¨andartester hur verktyget kan anv¨andas f¨or att effektivisera en k¨and metod f¨or att skapa spelbanor, men samtidigt skapa den kvalit´e som eftertraktas. Med detta avser

(4)
(5)

Abstract

In this article a tool for assisting the creation of game levels in a dungeon environment is presented. Creating such game levels often requires a large amount of resources during a game production and has focus on design. To keep the aspect of design but ease work, the tool is created to produce caverns for such game levels with accessible parameters. We examine with user tests how the tool can be used to make an existing method for creation of game levels more effective. But at the same time producing the quality that is coveted.

(6)
(7)

Inneh˚

all

1 Inledning 1

1.1 Bakgrund . . . 1

1.2 Syfte . . . 2

1.3 Avgr¨ansning . . . 2

1.4 Fr˚agest¨allning och hypotes . . . 2

1.5 Tidigare forskning . . . 2 1.5.1 Procedurell generering . . . 2 1.5.2 Computer-aided design . . . 3 2 Metod 4 2.1 Design Science . . . 4 2.2 Litteraturstudie . . . 4 2.3 Anv¨andartest . . . 5 2.3.1 A/B-test . . . 5 2.4 Enk¨at . . . 5 2.5 Metoddiskussion . . . 6 3 Implementation 7 3.1 Verktyget . . . 7 3.2 Unity . . . 7 3.3 Visual Studio . . . 7 3.4 Design . . . 7 3.5 Kod . . . 8 4 Resultat 14 4.1 Kvantitativa resultat . . . 14 4.2 Kvalitativa resultat . . . 14 5 Analys 17 5.1 Analys av resultat . . . 17

5.2 Underl¨attade spline-verktyget skapandet av dungeons? . . . 17

5.3 F¨ordelar med verktyget . . . 17

5.4 Sv˚arigheter med verktyget . . . 17

5.5 Funktioner som saknades . . . 18

5.6 Synpunkter om manualen . . . 18

6 Diskussion 19

7 Slutsatser och vidare forskning 20

(8)
(9)

1

Inledning

1.1 Bakgrund

Inom spelindustrin ¨ar anv¨andandet av effektiva verktyg viktigt f¨or att kunna skapa en stor m¨angd spelinneh˚all p˚a en begr¨ansad tid och personal. Det finns d¨arf¨or gott om exempel p˚a bra designverktyg, specifikt s˚a kallade level-editors, som ¨aven har sl¨appts till allm¨anheten. Exempel p˚a s˚adana ¨ar: Skyrim: Creation Kit, Warcraft III: World Editor och Age of Em-pires II: Map Editor [3, 5, 25]. Dessa ¨ar baserade p˚a att l˚ata anv¨andaren bygga spelbanor med hj¨alp av ett bibliotek best˚aende av alla tillg¨angliga spelobjekt s˚asom murdelar, stenar, fiender, resurser med mera. Det existerar ¨aven f¨orenklande verktyg f¨or utplacering av vissa objekt. Exempelvis finns ett verktyg som l˚ater anv¨andaren enkelt placera ut en linje av murobjekt i Age of Empires II ist¨allet f¨or varje murobjekt f¨or sig. Fokuset f¨or detta arbete ligger i just f¨orenklandet. Att skapa ett verktyg som f¨orenklar skapandet av dungeons. Det engelska ordet dungeon kommer att anv¨andas genomg˚aende i uppsatsen f¨or att beskriva spelbanor av dungeon-karakt¨ar. En dungeon ¨ar en spelmilj¨o som kan best˚a av stora salar, lyor, labyrinter, naturliga grottor och slottsruiner [30]. F¨or att f¨orst˚a grundkoncepten med verktyget f¨orklaras nedan de olika komponenterna som anv¨ands.

Procedurell generering av spelinneh˚all, f¨orkortat PCG, ¨ar ett omr˚ade inom spelutveck-ling d¨ar fokus ligger p˚a att generera spelinneh˚all automatiskt. Automatiken medf¨or kraftig minskning av tid som beh¨ovs l¨aggas p˚a att manuellt skapa inneh˚all i spel. F¨or generering anv¨ands algoritmer som kan modifieras p˚a olika s¨att f¨or att n˚a ¨onskv¨ard effekt. Vanligtvis begr¨ansas genereringen till specifika ¨andam˚al inom ett spel, till exempel SpeedTree [16, 13]. SpeedTree anv¨ands som ett verktyg f¨or att generera unika tr¨ad i stora film och spelpro-duktioner som annars kan vara tidskr¨avande [17]. Detta sammanfattar syftet med PCG -att skapa st¨orre m¨angder unikt inneh˚all p˚a kort tid.

Trots att till¨ampningen av PCG blir vanligare, ¨ar anv¨andningen av PCG-metoder inget genomg˚aende f¨orekommande bland de popul¨araste spelen p˚a marknaden [11]. Att anv¨anda PCG resulterar i en f¨orminskad kontroll ur en designsynvinkel men den bristande kontrol-len i designmomenten kommer dock med en f¨ordel. Denna f¨ordel ¨ar att PCG-metoder ¨ar kraftfulla p˚a att generera stora och varierade m¨angder inneh˚all p˚a kort tid. F¨or att balanse-ra kontrollen och de stokastiska elementen i PCG kan man till¨ampa metoden blandat initi-ativ (Mixed Initiiniti-ative p˚a engelska). Detta inneb¨ar att datorn och anv¨andaren samverkar f¨or att skapa inneh˚all. F¨or v˚art verktyg v¨aljer vi att anv¨anda Computer-Aided Design (CAD) som ¨ar en f¨orgrening inom blandat initiativ. CAD inneb¨ar att anv¨andaren bist˚ar med id´eerna och datorn v¨agleder skapandet eller den kreativa processen. Vi v¨aljer att anv¨anda en kubisk B´ezier-spline f¨or CAD-elementen d¨ar anv¨andaren ger den skapande algoritmen parameterv¨arden. Detta inneb¨ar att man l˚ater anv¨andaren forma kurvan som splinen ska-par som i sin tur representerar en grottg˚ang. Detta s¨att att generera spelinneh˚all har vi tagit inspiration ifr˚an spelet SimCity [19] d¨ar man bygger v¨agar med hj¨alp av ett genere-ringsverktyg som bygger p˚a splines. F¨ordelen med att anv¨anda splines ¨ar att anv¨andaren f˚ar h¨og kontroll ¨over formationen. F¨or att skapa en h¨ogre grad av variation v¨aljer vi att kombinera splinen tillsammans med en agent som manipulerar grottg˚angarna och ger dem grottkarakt¨ar. Dessa grottg˚angar kan man sedan koppla ihop f¨or att i slut¨andan skapa en hel dungeon.

(10)

1.2 Syfte

Denna uppsats behandlar anv¨andandet av ett CAD-verktyg som till¨agg till en level-editor f¨or att skapa spelbanor av dungeon-karakt¨ar. F¨or detta ¨andam˚al har ett s˚adant verktyg utvecklats vilket anv¨ands genom att l˚ata en anv¨andare s¨atta ut punkter som sedan definie-ras av en kubisk B´ezier-spline. Denna spline anv¨ands sedan f¨or att generera en grottg˚ang med hj¨alp av en agent som traverserar genom denna. Agenten modifierar vertexpunker l¨angs g˚angen f¨or att skapa en mer detaljerad geometri, vilken liknas vid stenformatio-ner som f¨orekommer i grottor. Grottg˚angarna sammankopplas av anv¨andaren med andra g˚angar eller modeller som representerar korsningar och anslutande rum f¨or att skapa en fullst¨andig dungeon. Genom att studera anv¨andandet av detta verktyg, ¨ar syftet att p˚avisa f¨ordelar med anv¨andandet av verktyg av samma eller liknande kvalit´eer f¨or att f¨orb¨attra slutresultatet som kan uppn˚as p˚a kort tid vid utvecklande av spel.

1.3 Avgr¨ansning

Vi tar inspiration av tidigare forskning inom CAD och designverktyg som ¨ar popul¨ara i spelindustrin. Eftersom det finns en stor m¨angd verktyg f¨or att skapa dungeons p˚a spel-marknaden v¨aljer vi att endast fokusera p˚a ett s¨att att bygga dessa p˚a. D¨arf¨or v¨aljer vi att fokusera p˚a att efterlikna den existerande level-editorn f¨or spelet Skyrim d˚a det ¨ar ett popul¨art och publikt verktyg [2]. Detta f¨or att demonstrera konceptet av att inkludera ett designverktyg baserat p˚a CAD i designprocessen. Vi har f¨or CAD-verktyget tagit inspira-tion av ett existerande anv¨andningsomr˚ade av splines f¨or att skapa v¨agar i SimCity [19] och tidigare forskning om agenter f¨or att skapa geometri i spelmilj¨oer [9].

Skiljt fr˚an spel som genererar hela dungeons med PCG vill vi beh˚alla en h¨og grad av m¨ansklig design och beh˚aller d¨arf¨or den konceptuella grunden fr˚an designverktyg likt spe-let Skyrims verktyg f¨or att skapa spelbanor. Vi studerar hur s˚adana verktyg kan f¨orb¨attras med CAD som till¨agg ist¨allet f¨or att omforma hela verktyget.

1.4 Fr˚agest¨allning och hypotes

Fr˚agest¨allning

Hur kan designprocessen f¨or spelbanor f¨orb¨attras med det studerade CAD-verktyget som till¨agg i level-editors och vilka kvalit´eer kan f¨oras vidare fr˚an verktyget?

Hypotes

Digital speldesign ¨ar en tidskr¨avande process som ofta effektiviseras genom att basera spelmilj¨oer p˚a f¨ordefinierade objekt. Objekten ¨ar ˚aterkommande och milj¨oerna kan d¨arf¨or se repetitiva ut. Designprocessen vid skapandet av dungeons kan underl¨attas och generera mer varierat inneh˚all med hj¨alp kvalit´eerna hos det studerade verktyget.

1.5 Tidigare forskning

1.5.1 Procedurell generering

Storleken p˚a ett designteam inom ett stort spelf¨oretag har ¨okat drastiskt p˚a kort tid. Skaparna bakom den k¨anda spelserien Doom [15] b¨orjade som en grupp p˚a fem till sex spelutvecklare f¨or att skapa det f¨orsta spelet [13]. Idag ¨ar spelen st¨orre och mer kr¨avande

(11)

vilket leder till att f¨oretagen beh¨over fler anst¨allda. Dagens siffror ¨ar vanligtvis 100 an-st¨allda eller mer vilket ¨ar en stor kostnad f¨or f¨oretagen [18]. F¨or att minska kostnaden kan man anv¨anda PCG-metoder som kan utf¨ora arbete som annars designers g¨or manu-ellt. Trots denna l¨osning anv¨ander sig inte f¨oretagen av detta fullt ut. Detta beror p˚a den avsaknade kontrollen ¨over datorgenererat inneh˚all i kontrast mot m¨anniskodesignat in-neh˚all. Nackdelen med m¨ansklig design ¨ar att det b˚ade ¨ar tidskr¨avande och kostsamt. F¨or att effektivisera detta kan den m¨anskliga designen kombineras med datorns mycket snab-bare generering f¨or att beh˚alla h¨og designkvalit´e och undvika tidskr¨avande arbete. Detta f¨orekommer ofta i spel p˚a ett s˚adant s¨att att delar av spelet ¨ar designat av m¨anniskor och andra delar genererade [13].

Att procedurellt generera spelinneh˚all har l¨ange varit en metod inom spelindustrin f¨or att generera spelbanor och milj¨oobjekt. Ett tidigt exempel ¨ar Rogue fr˚an 1980 [27]. Genereringen kan vara mindre styrd f¨or att generera en s˚a stor m˚angfald som m¨ojligt f¨or en naturlig variation p˚a inneh˚allet och den kan ¨aven vara mer styrd f¨or att skapa ett mer kontrollerat inneh˚all [29]. Exempel p˚a detta ¨ar spelbanor inom genren Real-Time Strategy som ofta kr¨aver symmetri och j¨amn f¨ordelning av resurser f¨or att inte bli obalanserade och beh¨over d¨arf¨or h¨ogre kontroll av inneh˚all [26].

Agent ¨ar ett begrepp inom artificiell intelligens vilket definieras som en mottagare av en uppfattad omgivning som den sedan agerar utefter [22]. Ett till¨ampningsomr˚ade f¨or agenter ¨ar inom PCG d¨ar agenter exempelvis har anv¨ants f¨or att generera tredimensio-nella milj¨oer. Ett s˚adant exempel ¨ar en algoritm som l˚ater agenter skapa geometri i en spelv¨arld f¨or att likna realistiska landmassor, vattensamlingar och kuster [9].

1.5.2 Computer-aided design

CAD ¨ar samlingsnamnet f¨or verktyg tillverkade f¨or att l˚ata en dator skapa inneh˚all base-rat p˚a en anv¨andares specifikationer. Detta inneb¨ar till skillnad fr˚an regelverk f¨or vanlig procedurell generering att anv¨andaren tar ett initiativ till en design som datorn utf¨or. Detta g¨ors genom att mata in data med h¨og abstraktionsniv˚a om ett problem som den genererade algoritmen kan hantera. N¨ar algoritmen bearbetat datan skapar den en m¨ojlig l¨osning f¨or anv¨andarens problem som anv¨andaren utv¨arderar och eventuellt godk¨anner. Syftet ¨ar att f˚a ut de b¨asta resultaten fr˚an m¨anniska och maskin [32].

CAD ¨ar ett sedan l¨ange studerat omr˚ade inom datavetenskapen och har gett upphov till m˚anga revolution¨ara framsteg fr¨amst inom industrin. B´ezier [4] beskrev de framsteg som har uppn˚atts f¨or tillverkningsprocessen av bilkroppar med hj¨alp av CAD. En process som tidigare bestod av en stor m¨angd iterationer med hj¨alp av lermodeller innan en slut-giltig version kunde tillverkas. Den slutslut-giltiga versionen var den enda referensen f¨or alla bilar av modellen som tillverkades d¨arefter. Processen var l˚ang, kostsam och framf¨orallt bristande i precision. Med hj¨alp av datorer kunde processen ist¨allet utf¨oras med mycket h¨og precision, mer effektivt och d¨arav mindre kostsamt.

En spline ¨ar ett begrepp inom CAD d¨ar en interpolation mellan ett antal punkter utf¨ors f¨or att generera en kurva, vilket exempelvis har anv¨ants till att generera tredimensionell geometri [21]. Splines har tidigare ¨aven anv¨ants f¨or att generera v¨agar i spel [6, 19].

(12)

2

Metod

2.1 Design Science

Vid skapande av en artefakt ¨ar det viktigt att hela processen g¨ors p˚a ett vetenskapligt och konsekvent s¨att. F¨or denna process anv¨ander vi oss av metodiken Design Science som m˚anga anser ¨ar en av de b¨attre metodikerna inom datavetenskap f¨or skapande av artefakter [20]. Fokuset f¨or Design Science ¨ar att hitta svar p˚a fr˚agor som ¨ar aktuella f¨or utveckling av ny teknik. Metoden ¨ar uppdelad i sex steg: problemidentifikation och moti-vering, definition av m˚alen f¨or en l¨osning, design och utveckling, demonstration, evaluering och kommunikation.

Vi b¨orjar v˚ar forskning genom att unders¨oka vilka begr¨ansningar och potentiella pro-blem som finns inom omr˚adet PCG och bygger sedan v˚ar motivering p˚a l¨osningar av dessa problem. Detta g¨or vi med hj¨alp av litteraturstudien och egna erfarenheter inom spelbranschen. D¨arefter s¨atter vi upp m˚al f¨or att reda ut vad som ¨ar m¨ojligt eller ej och hur vi ska g˚a tillv¨aga med att slutf¨ora arbetet. N¨ar m˚alen har fastst¨allts och litteratur och annan forskning finns att arbeta efter b¨orjar vi utvecklingen och designen av artefakten. De tidigare stegen hj¨alper till f¨or att g¨ora utvecklingen effektiv och strukturerad. Demon-strationen av artefakten sker genom anv¨andartester i form av A/B-tester och evalueringen samt kommunikation med hj¨alp av resultaten fr˚an testerna. Nedan f¨oljer mer djupg˚aende beskrivningar om de olika metoderna vi anv¨ander f¨or att forma artefakten med Design Science som st¨ottepelare.

2.2 Litteraturstudie

Litteraturstudien anv¨ands f¨or att samla information om tidigare forskning inom det stu-derade omr˚adet. Publikationer om PCG, Aided Design, Design Science och enk¨ater ¨ar exempel p˚a omr˚aden som studeras. Det ¨ar viktigt att litteraturen ¨ar trov¨ardig f¨or att kunna validera sin egen forskning genom att bygga p˚a tidigare forskning som man hittar i dessa publikationer.

Forskningslitteratur s¨oks fram genom de datavetenskapliga databaserna ACM och IE-EE:s egna s¨okverktyg, med Google Scholar eller Malm¨o h¨ogskolas s¨okverktyg: Summon. Databaserna och s¨okverktygen ger en m¨ojlighet att granska kvalit´en av de samlade artiklar-na med hj¨alp av noggrant dokumenterad information som publikationsfakta, antalet g˚anger en artikel ¨ar refererad och ¨aven ifall de blivit granskade av externa l¨asare (peer reviews p˚a engelska). Vidare anv¨ands utkastversionen av boken: PCG Book [24] som utg˚angspunkt i allm¨anna PCG-begrepp. Denna bok ¨ar en sammanfattning av redan existerande veten-skapliga artiklar inom omr˚adet PCG. Slutligen har ¨aven kommersiella produkter studerats. Exempel p˚a detta ¨ar designverktyget f¨or spelet Skyrim [3] och v¨agskaparverktyget i spe-let SimCity [19]. Dessa produkter ¨ar exempel p˚a till¨ampningsomr˚aden f¨or det utvecklade verktyget. F¨or litteraturs¨okning av s˚adana informationsk¨allor anv¨ands s¨okmotorn Google d˚a s¨okv¨agen till materialet redan ¨ar k¨and.

Inledande anv¨ands litteraturstudien f¨or att f˚a en bredare bild inom omr˚adet PCG och hitta ett l¨ampligt forskningsomr˚ade. S¨oktermerna ¨ar d˚a mer grundl¨aggande och anv¨ander oftast ordet game f¨or att inrikta s¨okningen p˚a spelrelaterad forskning. F¨or s¨okningar som resulterar i ett st¨orre antal s¨oktr¨affar anv¨ander vi de inbyggda funktionerna f¨or att en-dast s¨oka efter material inom valda omr˚aden och publikationstyper samt sortering efter

(13)

relevans. ¨Aven snowball -metoden [31] anv¨ands f¨or att hitta forskning likt de frams¨okta artiklarna. Snowballing inneb¨ar att man anv¨ander referenser fr˚an en l¨ast artikel f¨or att f˚a en djupare f¨orst˚aelse av litteraturen. Den utvecklade forskningsfr˚agan tog form efter de framtagna artiklarna och ¨ar inriktad p˚a Aided Design. Detta har d¨arefter format littera-turs¨okningen till en mer konkret inriktning. Exempel p˚a s¨oktermer kan l¨asas i Appendix B.

2.3 Anv¨andartest

F¨or testet kr¨aver vi att testpersonerna som ing˚ar i en studie uppfyller krav som definieras av en m˚alpopulation f¨or studien [8]. Alla testpersoner studerar eller har studerat spelut-vecklingsprogrammet vid Malm¨o h¨ogskola och har n˚agon niv˚a av tidigare erfarenheter i milj¨on som verktyget anv¨ands i. Detta ¨ar ett aktivt val vi g¨or f¨or att undvika en f¨or stor inl¨arningskurva och f¨or att testpersonerna skall ha goda referenspunkter i sin bed¨omning. Artefaktens kvalit´e baseras p˚a den subjektiva uppfattningen av anv¨andarv¨anligheten och resultatet som kan uppn˚as. Anv¨andartester ¨ar d¨arf¨or den huvudsakliga validerings-metoden f¨or artefakten. Detta ger en uppfattning om vilka kvalit´eer artefakten tillf¨or i problemomr˚adet och vilka brister den har.

Anv¨andartestet best˚ar av ett A/B test d¨ar A best˚ar av problemomr˚adet utan artefak-ten och f¨or B ¨ar artefakten tillagd. Under testet f˚ar testpersonen tillg˚ang till en manual f¨or verktyget och en dialog f¨ors med testpersonen som handledning. Testpersonen svarar d¨arefter p˚a en enk¨at f¨or att bed¨oma artefakten. Under anv¨andartesten sitter en handledare med f¨or att f¨orklara och vid behov hj¨alpa samt f¨or att observera testaren. Vi utf¨or tjugo anv¨andartest och varje anv¨andartest tar mellan 15 till 20 minuter att utf¨ora.

2.3.1 A/B-test

Under ett anv¨andartest f˚ar testpersonen tv˚a upps¨attningar av artefakten presenterat f¨or sig som skall anv¨andas f¨or att konstruera sm˚askaliga dungeons. Upps¨attning A best˚ar av ett bibliotek med f¨ortillverkade tredimensionella objekt s˚asom g˚angar, korsningar, golv och v¨aggar som kan anv¨andas f¨or att skapa en enkel dungeon. Upps¨attning B inneh˚aller samma bibliotek som upps¨attning A men har ut¨over detta det utvecklade verktyget tillg¨angligt vid skapandet av en dungeon.

H¨alften av testpersonerna f˚ar f¨orst anv¨anda upps¨attning A och d¨arefter ¨overg˚a till B. Den andra h¨alften av testpersonerna b¨orjar med upps¨attning B och avslutar med upps¨attning A. Detta f¨or att begr¨ansa hur preferensen mellan upps¨attning A och B kan bero p˚a verktygets inl¨arningskurva.

2.4 Enk¨at

Enk¨aten konstrueras efter metodiken som Ejlertssons [10] f¨oresl˚ar. F¨oljaktligen ¨ar fr˚agorna formulerade efter Ejlertssons rekommendationer och testade i en pilotstudie f¨ore anv¨andning i den egentliga studien. D¨aremot ¨ar studiens enk¨atunders¨okning mer kvalitativt inriktad ¨

an vad Ejlertsson presenterar i sin metodik och s¨arskiljer sig d¨arav i vissa av enk¨atfr˚agorna. Detta ¨ar d˚a flera av enk¨atfr˚agorna besvaras med fritext f¨or att ge testpersonerna en m¨ojlighet att fritt formulera sig om s¨arskilda aspekter av artefakten.

(14)

anm¨arkningar under A/B-testet. Delar av enk¨aten samlar information kvalitativt f¨or att f˚a uppfattning om verktygets potential. Detta g¨ors med fr˚agor om testpersonens preferen-ser och ˚asikter om verktyget under anv¨andartestet. F¨or att f˚a en b¨attre f¨orst˚aelse f¨or den insamlade datan g¨ors ¨aven en kvantitativ insamling av data. Den kvalitativa datan st¨alls mot den kvantitativ f¨or att skapa en uppfattning om samband mellan testpersonernas erfarenheter mot deras uppfattning av verktyget. Enk¨aten som testpersonerna svarade p˚a finns bifogad i Appendix C.

2.5 Metoddiskussion

M˚alet f¨or detta projekt ¨ar att skapa en artefakt. Eftersom Design Science kretsar kring att skapa en artefakt ¨ar det d¨arf¨or idealt att f¨olja metodiken genom hela forskningen. V˚ar forskning inriktar sig fr¨amst p˚a en probleml¨osning i spelbranschen vilket leder till att valet av Design Science f˚ar ¨annu mer st¨ottning d˚a man f¨oljer en iterativ process [14], precis som i spelbranschen [12]. Varje steg i forskningen som n¨amndes i Design Science-sektionen g¨ors genom att: testa, evaluera och g¨ora om tills man g˚ar vidare till n¨asta steg. Exempel p˚a detta i v˚ar forskning ¨ar A/B-testet samt enk¨aten som ¨ar framtagna genom flera iterationer av b˚ade interna och externa sm˚atester.

F¨or v˚ar forskning g¨ors litteraturstudien f¨or att skapa en uppfattning om problem-omr˚adet samt f¨or att hitta potentiell tidigare forskning inom samma omr˚ade. Med hj¨alp av denna studie kom vi fram till att det inte finns en artefakt likt v˚ar utan endast verktyg med andra funktioner inom omr˚adet CAD.

Den st¨orsta k¨appen i hjulet f¨or forskningen var of¨oruts¨agbarheten under implemen-tationen eftersom vi skapade n˚agot som tidigare inte gjorts inom dungeon-skapande och kunde d¨arf¨or inte veta exakt vad som skulle h¨anda p˚a f¨orhand. Detta p˚averkade besluten en del och ledde till att mycket fick utel¨amnas f¨or att inte riskera att det inte skulle finnas tillr¨ackligt med tid f¨or att inleda testfasen. Of¨oruts¨agbarheten ledde ocks˚a till besluten om vilken typ av spline vi ville anv¨anda f¨or projektet. Med hj¨alp av litteraturstudien kom vi fram till att den kubiska B´ezier-splinen var vanligt f¨orekommande och anv¨ands i pro-gram som Photoshop till exempel och kunde g¨ora det som vi ville uppn˚a med verktyget. Eftersom det fanns mycket st¨od f¨or hur en kubisk B´ezier-spline implementeras i kod valde vi att anv¨anda denna ist¨allet f¨or en h¨ogre ordning av spline som inneh˚aller fler punkter och ¨okar komplexiteten i koden [28]. Tanken ¨ar att detta ska kunna implementeras i senare versioner ist¨allet.

(15)

3

Implementation

3.1 Verktyget

Designverktyget ¨ar skapad i spelmotorn Unity med Visual Studio 2013 och 2015 som programmeringsmilj¨o. Spr˚aket som vi programmerar verktyget med ¨ar C# och plattformen ¨

ar Windows-baserade datorer. Valet av Unity gjordes utifr˚an att motorn st¨odjer C# som vi ¨ar mest vana vid samt tidigare erfarenheter av spelmotorn i andra projekt.

3.2 Unity

Unity ¨ar en popul¨ar spelmotor som dessutom ¨ar gratis att anv¨anda. Det g¨or att m˚anga kan anv¨anda den vilket i sin tur leder till att det finns en bred anv¨andarbas som kan f¨oresl˚a l¨osningar samt hj¨alpa en med problem. Ist¨allet f¨or att g¨ora design och implementation separat kan man g¨ora allt detta tillsammans i Unity. Detta effektiviserar processen och ger en m¨ojligheten att se kodningsframstegen visualiseras i Unitys scenf¨onster.

3.3 Visual Studio

N¨ar man programmerar till Windows-plattformar ¨ar programmet Visual Studio en bra programmeringsmilj¨o eftersom programmet ¨ar Windows-baserat och skapat av Microsoft. D¨arf¨or finns det mycket support tillg¨angligt ifall problem skulle dyka upp l¨angs v¨agen. Microsoft ¨ar ¨aven utvecklare till spr˚aket C# vilket leder till ¨annu bredare kompatibilitet. I senare versioner av Unity g˚ar det ¨aven att koppla ihop det tillsammans med Visual Studio f¨or att g¨ora debugging avsev¨art enklare.

3.4 Design

Vid skapande av designverktyg ¨ar det viktigt att milj¨on man arbetar i ¨ar l¨attnavigerad och enkel att f¨orst˚a. L¨agger anv¨andaren ner mer tid p˚a att f¨ors¨oka hitta olika funktioner ist¨allet f¨or att designa har man f¨orlorat hela po¨angen med ett designverktyg [1]. Med v˚art verktyg ¨ar inte fokus att designa det snyggaste anv¨andargr¨anssnittet. Ist¨allet g¨or vi valet att g¨ora ett simpelt gr¨anssnitt som l˚ater anv¨andaren g¨ora de element¨ara funktionerna med verktyget f¨or att kunna se potentialen och hitta kvalit´eerna med det.

Inne i Unity v¨aljer vi att l¨agga alla funktioner tillg¨angliga p˚a sk¨armen i olika sektio-ner. Det finns en sektion f¨or att manipulera och generera meshar (se Figur 1 ), en f¨or de f¨ordefinierade 3D-objekten (se Figur 3 ), en hierarki f¨or alla objekt p˚a sk¨armen och en scen som ¨ar sj¨alva designmilj¨on (se Figur 2 ). Detta g¨ors eftersom alla inte har samma f¨oruts¨attningar och bakgrund f¨or att jobba i Unity eller med level-editors. F¨or att un-derl¨atta mer skapar vi ¨aven en manual som anv¨andare kan rikta sig till ifall det skulle dyka upp sv˚arigheter p˚a v¨agen.

(16)

Figur 1: Verktygets funktioner i gr¨anssnittet

Figur 2: Scenhierarkin l¨angst ut till v¨anster och designmilj¨on i mitten

Figur 3: F¨ordefinierade objekt f¨or att skapa korsningar och rum som kan anv¨andas i designmilj¨on

3.5 Kod

F¨or verktyget implementerar vi tre huvudsakliga algoritmer som skapar inneh˚allet. Enligt Cormen [7] ¨ar en algoritm n˚agot som hj¨alper en att f¨orst˚a skalbarhet och beteende av ett program. Detta hj¨alper oss i besluten om vad som ¨ar rimligt eller ej n¨ar kod implementeras. Kubisk B´ezier-spline

Splinen ¨ar grundstrukturen f¨or designverktyget och definieras med fyra punkter, vilket g¨or den kubisk. Punkterna p0,p1,p2 och p3 anv¨ands f¨or att l˚ata anv¨andaren forma splinen och representeras som Bernsteins basfunktioner i formeln nedan d¨ar pt ¨ar en linj¨art

(17)

terpolerad kurva baserat p˚a de fyra punkterna som g˚ar fr˚an p0 till p3. Denna kurva ¨ar uppbyggd av ett antal orienteringspunkter som anv¨ands f¨or att r¨akna ut normaler och position f¨or alla vertexpunkter l¨angs hela kurvan. Variabeln t definierar den procentuella str¨ackan l¨angs splinen och kan g˚a mellan 0 och 1 som flytv¨arde. ¨Ar t = 1 ¨ar man i slutet av kurvan till exempel. Med hj¨alp av t underl¨attar det kontrollen ¨over agenten f¨or att veta var i kurvan agenten ¨ar.

pt = p0(−(1 − t)3) + p1(3(1 − t)2) + p2(3(1 − t)t2) + p3(t3) Generering av polygonyta ¨over spline

F¨or att skapa den synliga versionen av splinen i scenen anv¨ander vi en kodfunktion som genererar en polygonyta med hj¨alp av orienteringspunkter l¨angs kurvan. Algoritm 1 visar pseudokod f¨or hur en polygonyta genereras efter formen som har definierats av splinens orienteringspunkter. F¨or varje orienteringspunkt ger man v¨arden till varje vertexpunkt som beskrivs i Algoritm 1. F¨or att r¨akna ut normalen f¨or varje vertexpunkt m˚aste man f¨orst veta tangentens v¨arde vilket r¨aknas ut med hj¨alp av tangentens basfunktioner p˚a ett liknande s¨att som tidigare.

pt = p0(−(1 − t)2) + p1(t(3t − 4) + 1) + p2(−3t2+ 2t) + p3(t2)

F¨or att sedan r¨akna ut normalerna f¨or varje vertexpunkt baserat p˚a orienteringspunk-terna tar man tangentv¨ardet som r¨aknats ut, anv¨ander sig av en referensvektor och tar kryssprodukten av dessa. En referensvektor (ibland kallad ”Up-vektor”) ¨ar en vektor som f¨oljer rotationer vilket leder till att man alltid f˚ar ut r¨att normal oavsett rotation. Exem-pel p˚a detta ¨ar en v¨ag som bilar k¨or p˚a i ett spel. Hade man inte haft en referensvektor hade potentiellt v¨agarna kunnat bli inverterade om man skulle skapa en loop eller lutning p˚a v¨agen. Kryssprodukten av tangenten och referensvektorn blir binormalen vilket man tillsammans med tangenten sedan tar kryssprodukten av f¨or att f˚a ut normalen baserat p˚a orienteringspunkten. Denna utr¨akning och implementation bygger p˚a Joachim Holm´ers presentation av spline-generering under Unite 2015 [28]. Man kan ¨aven i Unity direkt r¨akna ut normalen med programmets inbyggda funktioner och p˚a s˚a s¨att kringg˚a den matema-tiska komplexiteten. Resultatet av genereringen demonstreras i Figur 4.

Algoritm 1 Generering av polygonyta

1: for all oriented points in the path do

2: for all vertex points in the 2D shape do

3: Add the vertex position, based on the oriented point

4: Add the normal direction, based on the oriented point

5: for all segtments do

6: for all lines in the 2D shape do

(18)

Figur 4: F¨ardiggenererad polygonyta ¨over en spline Mesh-agent

Agenten som vi implementerar manipulerar varje vertexpunkt under genereringen av po-lygonytan. Manipuleringen f¨oljer en upps¨attning av variabler och regler f¨or att skapa de grottliknande egenskaperna hos polygonytan. Pseudokod f¨or agenten visas i Algoritm 2 och ¨ar en variant p˚a en redan existerande agent-kod som definieras av Shaker m.fl. [23] f¨or att skapa dungeons.

(19)

Generering av grottliknande geometri med geometri-agent

Algoritm 2 visar pseudokod f¨or manipulering av polygonyta under generering f¨or att ge en grottliknande geometri. Resultatet av manipuleringen demonstreras i Figur 5, 6, 7 och 8.

Algoritm 2 Geometri-agent

1: Initialize a value expandC = 0, chance for expansion.

2: Initialize a value reduceC = 0, chance for reduction.

3: Initialize a value chance = 0, which expandC and reduceC is based on.

4: Initialize a value timesExpanded = 0, amount of times the path is expanded

5: Initialize a value maxExpansion = 2000, which hinders the path from getting too wide.

6:

7: for all oriented points in path do

8: if steps remaining == total steps or steps remaining == 0 then

9: Don’t expand nor reduce the path width

10: else if steps remaining <= timesExpanded AND timesExpanded > 0

11: timesExpanded -= 1

12: Reduce the path width

13:

14: if timesExpanded > 0 then

15: if timesExpanded < total steps * 0.05 then

16: Decrease expandC

17: Increase reduceC

18: else

19: expandC = chance

20: reduceC = chance + timesExpanded

21: Randomize a value eRand between 0 and 100.

22: Randomize a value rRand between 0 and 100.

23:

24: if eRand < expandC then

25: timesExpanded += 1

26: Decrease chance

27: Expand the path width

28: if rRand < reduceC OR timesExpanded >= maxExpansion then

29: timesExpanded -= 1

30: Increase chance

31: Reduce the path width

32: else

33: Randomize a value rand between 0 and 100.

34:

35: if rand < chance then

36: timesExpanded += 1

37: Expand path width

38:

39: Increase chance

40: Don’t expand nor reduce the path width

41:

42: for all Vertices in shape do

43: if vertex != floorVertex then

44: if vertex is on the left half of the shape then

45: Randomize vertex position based the left floor vertex.

46: else

(20)

Figur 5: F¨ardiggenererad grottliknande geometri

Figur 6: F¨ardiggenererad grottliknande geometri med ihopsatta splines och objekt

(21)

Figur 7: F¨ardiggenererad grottmilj¨o med spiralform

(22)

4

Resultat

4.1 Kvantitativa resultat

Samtliga testpersoner hade tidigare erfarenhet av spel med tredimensionella dungeon-milj¨oer och merparten spelar mest spel i genrer som utspelar sig i 3D-milj¨oer. Detta ¨ar eftertraktat f¨or att testpersonerna skall ha en uppfattning om dels hur de navigerar sig i en 3D-rymd och dels f¨or att de skall ha en uppfattning om vad en dungeon ¨ar. Sexton testpersoner hade tidigare arbetat i spelmotorn Unity och b¨or d¨arf¨or ha grundl¨aggande k¨annedom om hur de navigerar sig i programmet. Sjutton testpersoner hade arbetat i mo-delleringsverktyg och har vetskap om hur en polygonyta ¨ar uppbyggd och kan modifieras. Drygt h¨alften av testpersonerna hade dessutom arbetat i level-editors och visste d¨arf¨or hur verktyget ¨ar menat att anv¨andas praktiskt.

Testpersonerna svarade efter slutf¨ort anv¨andartest p˚a enk¨atfr˚agorna som presenteras nedan med deras sammanst¨allda svar.

Figur 9: Andel som tyckte verktyget underl¨attade skapande av dungeons under testet.

4.2 Kvalitativa resultat

F¨oljande resultat ¨ar h¨amtade fr˚an ¨oppna enk¨atfr˚agor vilka testpersonerna svarat p˚a med egna ord i fritext. Ur testpersonernas svar har nyckelord h¨amtats f¨or att kvantifiera svaren och sammanst¨alla dem till resultattabeller. Detta inneb¨ar ¨aven att flera svar fr˚an samma person kan f¨orekomma under samma fr˚aga.

(23)

Figur 10: Samlade omd¨omen om f¨ordelarna med verktyget som testpersonerna uttryckte.

(24)

Figur 12: Olika funktioner som testpersonerna ans˚ag saknades f¨or verktyget.

Figur 13: Testpersonernas ˚asikt om den bifogade manualen

(25)

5

Analys

5.1 Analys av resultat

F¨or att analysera testpersonernas svar och d¨armed resultatet studerar vi enk¨atsvaren om deras spel- och spelutvecklingserfarenheter. Vi anv¨ander oss ¨aven av observationer fr˚an anv¨andartesterna och studerar resultaten mot varandra f¨or att klarg¨ora deras inneb¨ord.

5.2 Underl¨attade spline-verktyget skapandet av dungeons?

Av tjugo testpersoner visar resultatet att arton av dessa ans˚ag att verktyget underl¨attade designprocessen i testmilj¨on. Detta ger oss en ¨overgripande kvantitativ syn p˚a att verkty-gets som helhet hj¨alpte till att f¨orb¨attra skapandet av dungeons i den simulerade milj¨on. Att arton personer ans˚ag att verktyget underl¨attade arbetet inneb¨ar ¨aven att tv˚a per-soner inte ans˚ag detta. Med observationer av deras anv¨andartester har vi f˚att insikten att deras svar beror p˚a att de ans˚ag till¨agget av verktyg innebar ytterligare kunskap och funktioner som beh¨ovde inl¨aras f¨or designprocessen. Testpersonerna menade d¨armed att fler funktioner innebar mer arbete.

5.3 F¨ordelar med verktyget

Vi har ur testpersonernas svar ang˚aende f¨ordelar med verktyget hittat fyra komponenter testpersonerna har uttryckt.

Tretton testpersoner tyckte att verktyget var anv¨andarv¨anligt. Detta s¨ager en stor del om vad som har uppn˚atts f¨or syftet och ses d¨arav som en stark valideringspunkt f¨or hypo-tesen. Men resultatet b¨or d˚a ses som p˚avisning f¨or den ¨overgripande anv¨andarv¨anligheten och inte en genomg˚aende s˚adan. Detta d˚a vi kan se resultat under ¨ovriga enk¨atfr˚agor fr˚an samma personer som menade att verktyget var anv¨andarv¨anligt och andra d¨arp˚a var bris-ter f¨or anv¨andarv¨anligheten ocks˚a tas upp. Men f¨or att vidare visa p˚a ett gott resultat har sex testpersoner svarat att de s˚ag effektiviteten som en f¨ordel med verktyget. Lika m˚anga menar ¨aven att slutresultatet av det genererade inneh˚allet ¨ar positivt med verktyget.

Vi kan fr˚an de individuella enk¨atsvaren se en tendens att anv¨andarv¨anligheten, effek-tiviteten och slutresultatet enligt testpersonerna ofta p˚apekas f¨or just m¨ojligheterna att skapa kurvor. Testpersonerna ben¨amner m¨ojligheten att skapa egna eller originella och mer naturliga banor med hj¨alp av splinen.

Slutligen har en funktion noterats som en god egenskap f¨or verktyget, men vilken inte ¨

ar framtagen f¨or verktyget utan som existerar i spelmotorn Unity. Detta ¨ar den s˚a kal-lade snap-funktionen vilken presenterades f¨or testpersonerna som ett hj¨alpande medel i manualen f¨or verktyget. Denna funktion har ¨aven visat sig avhj¨alpa mot sv˚arigheter som presenteras nedan. Funktionen anv¨ands genom att en vertexpunkt f¨or ett objekt markeras och flyttas till samma position som en vertexpunkt f¨or ett annat objekt.

5.4 Sv˚arigheter med verktyget

Vi har sett att en stor grupp av testpersonerna har uttryckt ett positivt anseende om verk-tygets anv¨andarv¨anlighet. D¨aremot kan vi ¨aven se delar av verktyget som testpersonerna ans˚ag vara mindre positiva. D¨aribland har tretton testpersonerna uttryckt sv˚arigheter

(26)

med sammankopplingen av tv˚a eller flera objekt, detta byggs ¨aven p˚a med att sex test-personer har specificerat rotationen som ett problem i sammanhanget. Men som tidigare presenterats har flera testpersoner p˚apekat snap-funktionen som en avhj¨alpande funktion f¨or problemet. Vi har ¨aven under observationerna iakttagit att endast en testperson hade problem med att f˚a objekten till r¨att position vid sammans¨attning av objekt. Problema-tiken f¨or de resterande tolv som p˚apekade sv˚arigheter med sammankoppling har enligt enk¨atsvaren och observationer varit att f˚a r¨att rotation p˚a grottg˚angens ¨oppningar.

Under utvecklingen av verktyget har vi f¨ors¨okt att skapa ett enkelt och tydligt gr¨anssnitt och har ut¨over detta l˚atit testpersonerna ta del av manualen samt muntlig handledning vid behov. Tre testpersoner upplevde dock att det tog tid att s¨atta sig in i gr¨anssnittet. Tv˚a testpersoner p˚apekar ut¨over detta att de ans˚ag att det var klumpigt att hoppa mellan redigeringsl¨aget och det f¨ardiggenererade l¨aget f¨or spline-verktyget.

5.5 Funktioner som saknades

F¨oljande resultat ¨ar m˚alande f¨or de brister som har visat sig f¨or verktyget och vilken pri-oritetsordning de tilldelas efter antalet svar.

Som det tidigare har visats ¨ar sammankopplingen en brist i verktyget och sju testper-soner har ¨aven p˚apekat att de hade velat ha en automatisk sammankoppling av objekt, det vill s¨aga att objekten roteras automatiskt f¨or att passa ihop. Fyra testpersoner har ut¨over detta menat att rotationen skall ske mer flexibelt ¨an i nul¨aget genom att kunna rotera en ¨

oppning i den genererade g˚angen med rotering av den f¨orsta och sista spline-punkten. Ytterligare tv˚a funktioner har efterfr˚agats f¨or att f¨orb¨attra verktyget. Tre testpersoner p˚apekar i enk¨aterna att fler spline-punkter skall g˚a att anv¨anda f¨or att kunna konstruera mer detaljerade och avancerade g˚angar. Vidare har tv˚a testpersoner svarat att korsningar mellan g˚angar skulle kunna skapas direkt i verktyget ist¨allet f¨or att anv¨anda f¨ardiga kors-ningsobjekt som det ¨ar i nul¨aget.

Ut¨over funktioner som kan l¨aggas till i verktyget har tv˚a testpersoner svarat att de hade velat applicera agentfunktionen som agerar f¨or att skapa ett grottlikt utseende ¨over splinen p˚a andra objekt ¨an den genererade polygonytan. Det ¨ar ¨aven vanligt f¨orekommande fr˚aga f¨or anv¨andartesten om funktionen kan appliceras p˚a andra objekt. Flera testpersoner f¨ors¨okte ¨aven instinktivt att k¨ora funktionen p˚a andra objekt.

5.6 Synpunkter om manualen

Vi anv¨ande manualen f¨or att se hur testpersonerna p˚a egen hand kunde hantera verktyget och dess funktioner. Allm¨ant sett klarade testpersonerna sig bra med enbart manualen och extra handledning anv¨andes ofta f¨or att ytterligare v¨agleda navigeringen i ramverket mer ¨an f¨or verktyget. Vi ser i resultatet att femton personer anser att instruktionerna var bra. Testpersonerna har d˚a uttryckt att instruktionerna var enkla att f¨olja och f¨orst˚a och att de befintliga funktionerna ¨ar bra beskrivna. En testperson har svarat att ordningen p˚a en punkt om navigering av kamera i 3D-rymd skulle ha st˚att tidigare i manualen. Detta n¨amndes tidigare och fick ofta v¨agledas eller ges f¨orslag om. Tre andra svarade att vissa sektioner och detaljer beh¨ovde belysas b¨attre. De p˚apekade detaljbristerna ¨ar tekniska termer som borde f¨orklaras, tydligare instruktioner om att f˚a objekt att placeras i samma y-led, att tv˚a sammansatta objekt inte f¨orflyttas tillsammans automatiskt om det ena f¨orflyttas och tydligare instruktioner om sammankoppling av objekt.

(27)

6

Diskussion

Resultatet och analysen visar att det studerade verktyget ¨ar ett positivt till¨agg i en level-editor milj¨o. Vi ser den ¨overgripande positiva effekten genom det kvantitativa resultatet. Nyckelorden i resultatet visar p˚a en positiv respons ang˚aende anv¨andarv¨anlighet, effekti-vitet och slutresultat f¨or anv¨andartesten. Vi kan i ¨ovrigt se verktygets olika komponenter s¨arskiljas i analysen f¨or att klarg¨ora deras funktioner, styrkor och svagheter i en level-editor som en del av eller fr˚anskiljt verktyget som helhet.

Testpersonerna har uttryckt att manualen var till god nytta f¨or verktygets inl¨arning men att ytterligare information om ramverket kunde vara anv¨andbart. Ytterligare detaljer f¨or olika steg i manualen har ¨aven ¨onskats f¨or att enklare som nyb¨orjare f¨orst˚a verktyget, vilket ¨ar viktigt n¨ar sessionerna ¨ar korta och verktyget skall l¨aras in snabbt. Trots detta har majoriteten av testpersonerna visat en snabb inl¨arning av verktyget och har efter den korta sessionen belyst verktygets enkelhet och effektivitet.

Vi ser splinen som en komponent vilken ger testpersonerna kontroll ¨over skapandet och till˚ater dem att skapa egna, originella eller vad testpersonerna anser vara naturliga banor. Splinen visas h¨ar endast som en direkt del av verktyget. Ytterligare till¨ampningar som kan underst¨odjas av denna studie bygger p˚a f¨or¨andringar av dels den tv˚adimensionella formen som polygonytan skapas efter, som f¨or grottorna ¨ar en halvcirkel, och agentens beteende som kan modifieras eller omformas f¨or att uppn˚a resultat f¨or andra typer av milj¨oer. Ex-empel p˚a s˚adana milj¨oer ¨ar floder, korridorer och v¨agar.

I resultatet presenteras ¨aven brister f¨or splinen i verktyget som ¨ar aktuella att vidareut-veckla f¨or att f¨orb¨attra verktyget. D¨aribland har testpersonerna p˚apekat att anv¨andandet av fler punkter f¨or splinen skulle m¨ojligg¨ora bredare designval. Rotationen av ¨andpunkterna p˚a splinen har ¨aven n¨amnts som en sv˚arighet under anv¨andningen av verktyget och har av testpersonerna uppmanats till att vara mer dynamisk eller automatisk. Med detta syftas det att ¨andarna av grottg˚angen som genereras ¨over splinen skall kunna roteras antingen genom att direkt rotera axlarna p˚a spline-punkterna eller automatiskt d˚a en ¨ande f¨ors mot en annan ¨ande. Slutligen har en funktion som skapar korsningar direkt i den genererade grottg˚angen efterfr˚agats. Att en korsning ist¨allet skulle kunna skapas i den genererade grottg˚angen skulle kunna effektivisera arbetet. Dessutom p˚averkas inte korsningsobjek-tet av agenten. D¨arf¨or skulle ¨aven slutresultatet bli mer konsekvent med en genererad korsning. Att dessa brister ben¨amns inneb¨ar att momenten som testpersonerna f˚ar utf¨ora ist¨allet f¨or att anv¨anda de efterfr˚agade funktionerna upplevs som sv˚ara, ineffektiva, repe-titiva eller att ett s¨amre slutresultat uppn˚as p˚a grund av det.

Den feedback som har presenterats f¨or agentfunktionen ¨ar positiv d˚a testpersonerna genom att syfta p˚a ett bra utseendem¨assigt slutresultat har anv¨ant funktionen som en del av verktyget i sin bed¨omning. Likas˚a ¨ar funktionen ¨aven en del av effektiviteten och enkel-heten f¨or processen att n˚a slutresultatet. Under anv¨andartesten har testpersoner uttryckt en vilja att kunna utnyttja effekten av agentfunktionen p˚a fler objekt ¨an de genererade grottg˚angarna. Detta uttrycker ytterligare att agentfunktionen ¨ar omtyckt.

Det b¨or slutligen noteras att antalet svar f¨or ett nyckelord i resultatet ¨ar baserade p˚a nyckelord fr˚an testpersonernas egenformulerade svar p˚a ¨overgripande enk¨atfr˚agor (se Ap-pendix C ). Detta inneb¨ar att fler personer kan anse samma sak men inte f¨orekommer som en del av resultatet. Denna typ av enk¨at ger oss d¨aremot m¨ojligheten att h¨amta kvalitativ information om vad testpersonerna anser ¨ar viktigast.

(28)

7

Slutsatser och vidare forskning

Vi st¨allde fr˚agan om hur designprocessen i en level-editor kan f¨orb¨attras med hj¨alp av ett CAD-verktyg och kan se att vi med det utvecklade verktyget har uppn˚att v˚ara f¨orv¨antningar. Vi har p˚avisat att funktionerna i verktyget f¨orb¨attrar anv¨andarv¨anligheten, effektiviteten och slutresultatet f¨or en designprocess och framh¨aver kvalit´eer f¨or liknande framtida ar-beten och implementationer. Vi ser m¨ojligheten att verktyget, dess funktioner och det bakomliggande konceptet med vidare forskning kan anv¨andas i spelproduktioner f¨or att underl¨atta skapandet av spelbanor.

F¨or vidare forskning har vi med resultaten sett att det finns intresse av att kunna applicera agentens funktioner p˚a andra objekt ¨an den genererade grottg˚angen samt att ¨

andra agentens parametrar s˚a att man kan ¨andra stil p˚a det genererade inneh˚allet. Exem-pel p˚a detta ¨ar att ist¨allet f¨or kantiga grottv¨aggar g¨ora mer mjuka och sl¨ata v¨aggar f¨or att passa en annan milj¨o. Detta ger anv¨andarna mer flexibilitet med verktyget och ¨oppnar upp f¨or mer varierat inneh˚all. Vi ser ¨aven m¨ojligheten att till¨ampa verktyget f¨or nya anv¨andningsomr˚aden genom att m¨ojligg¨ora en dynamisk f¨or¨andring av den grundl¨aggande geometriska form som genereras, som nu ¨ar en halvcirkel. En s˚adan funktion kan anv¨andas f¨or att generera andra typer av spelmilj¨oer. F¨or att f¨orenkla anv¨andandet av verktyget ser vi ocks˚a en stor potential att implementera automatisk sammankoppling av objekt och m¨ojligheten av att anv¨anda en h¨ogre ordning av splines. Dessa f¨orb¨attringar ser vi skul-le kunna resultera i ett m˚angsidigt verktyg som kan anv¨andas f¨or att snabbt och enkelt kunna skapa spelbanor med ett v¨aldesignat men samtidigt varierat inneh˚all.

(29)

Referenser

[1] P. S. Adler and T. Winograd, Usability : Turning Technologies Into Tools. Oxford University Press, 1992.

[2] Bethesda, “Creation Kit,” 2012. [Online]. Available: http://www.creationkit.com [3] Bethesda Softworks, “The Elder Scrolls V: Skyrim,” [Digital Game], 2011.

[4] P. E. B´ezier, “A Personal View of Progress in Computer Aided Design,” SIGGRAPH Comput. Graph., vol. 20, no. 3, pp. 154–159, 1986.

[5] Blizzard Entertainment, “Warcraft III: Reign of Chaos,” [Digital Game], 2002. [6] L. Cardamone, D. Loiacono, and P. L. Lanzi, “Interactive Evolution for the Procedural

Generation of Tracks in a High-end Racing Game,” in Proceedings of the 13th Annual Conference on Genetic and Evolutionary Computation, ser. GECCO ’11. New York, NY, USA: ACM, 2011, pp. 395–402.

[7] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, “Introduction to Algo-rithms,” New York, no. 3rd ed, p. 1202, 2011.

[8] K. Dahmstr¨om, Fr˚an datainsamling till rapport, 5th ed. Studentlitteratur, 1991. [9] J. Doran and I. Parberry, “Controlled Procedural Terrain Generation Using Software

Agents,” IEEE Transactions on Computational Intelligence and AI in Games, vol. 2, no. 2, pp. 111–119, 2010.

[10] G. Ejlertsson, Enk¨aten i praktiken: En handbok i enk¨atmetodik. Studentlitteratur, 1996.

[11] Entertainment Software Assotiation, “2015 Essential Facts About the Computer and Video Game Industry,” Social Science Computer Review, vol. 4, no. 1, pp. 2–4, 2015. [12] T. Fullerton, Game Design Workshop: A Playcentric Approach to Creating Innovative

Games, 2nd ed. Elsevier Inc., 2008.

[13] M. Hendrikx, S. Meijer, J. Van Der Velden, and A. Iosup, “Procedural Content Ge-neration for Games: A Survey,” ACM Trans. Multimedia Comput. Commun. Appl., vol. 9, no. 1, pp. 1:1–1:22, 2 2013.

[14] A. R. Hevner, S. T. March, J. Park, and S. Ram, “Design Science in Information Systems Research,” MIS Quarterly, vol. 28, no. 1, pp. 75–105, 2004.

[15] Id Software, “Doom,” [Digital Game], 1993.

[16] Interactive Data Visualization, “SpeedTree,” [Software], 2014.

[17] I. Interactive Data Visualization, “SpeedTree,” 2014. [Online]. Available: http: //www.speedtree.com/

[18] B. D. Krueger, O. Brand, and D. Burton, “Reinventing your company without rein-venting the wheel,” In Proceedings of the Game Developers Conference, 2005.

(30)

[19] Maxis, “SimCity,” [Digital Game], 1989.

[20] K. Peffers, T. Tuunanen, M. A. Rothenberger, and S. Chatterjee, “A Design Science Research Methodology for Information Systems Research,” Journal of Management Information Systems, vol. 24, no. 3, pp. 45–77, 12 2007.

[21] J. Rossignac and S. Schaefer, “J-splines,” Computer-Aided Design, vol. 40, no. 10-11, pp. 1024–1032, 10 2008.

[22] S. J. Russell and P. Norvig, Artificial Intelligence: A Modern Approach, 3rd ed. Pe-arson Education, 2010.

[23] N. Shaker, A. Liapis, J. Togelius, R. Lopes, R. Bidarra, J. T. R. L. Noor Shaker Antonios Liapis, and R. Bidarra, “Constructive generation methods for dungeons and levels,” in Procedural Content Generation in Games: A Textbook and an Overview of Current Research, N. Shaker, J. Togelius, and M. J. Nelson, Eds. Springer, 2015, pp. 31–55.

[24] N. Shaker, J. Togelius, and M. J. Nelson, Procedural Content Generation in Games: A Textbook and an Overview of Current Research. Springer, 2015.

[25] E. Studios, “Age of Empires II,” [Digital Game], 1999.

[26] J. Togelius, M. Preuss, N. Beume, S. Wessing, J. Hagelb¨ack, G. N. Yannakakis, and C. Grappiolo, “Controllable procedural map generation via multiobjective evolution,” Genetic Programming and Evolvable Machines, vol. 14, no. 2, pp. 245–277, 6 2013. [27] M. Toy and G. Wichman, “Rogue,” [Digital Game], 1980.

[28] Unity, “Unite 2015 - A coder’s guide to spline-based procedural geometry,” 2015. [Online]. Available: https://www.youtube.com/watch?v=o9RK6O2kOKo

[29] V. Valtchanov and J. A. Brown, “Evolving Dungeon Crawler Levels with Relative Placement,” in Proceedings of the Fifth International C* Conference on Computer Science and Software Engineering, ser. C3S2E ’12. New York, NY, USA: ACM, 2012, pp. 27–35.

[30] Wizards RPG Team, Dungeon Master’s Guide. Wizards of the Coast, 2014.

[31] C. Wohlin, “Guidelines for Snowballing in Systematic Literature Studies and a Repli-cation in Software Engineering,” in Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, ser. EASE ’14. New York, NY, USA: ACM, 2014, pp. 38:1–38:10.

[32] E. Wolfendale, “Computer-aided design techniques,” Computer-Aided Design, vol. 3, no. 3, pp. 56–57, 3 1971.

(31)

Appendix A - Ordlista

Agent - Mottagare av en uppfattad omgivning som den agerar efter. Artefakt - Produkten som skapats och studerats.

Dungeon - Spelmilj¨o som kan best˚a av stora salar, lyor, labyrinter naturliga grottor och slottsruiner.

Level-editor - Verktyg f¨or att skapa spelbanor.

Mesh - Samling av vertexpunkter som definierar formen av ett 3D-objekt.

Orienteringspunkt - Punkter som f¨oljer spline-kurvan som vertexpunkterna kan basera sina utr¨akningar p˚a.

Polygonyta - En grafisk yta som t¨acker utrymmet mellan vertexpunkter.

PCG - Engelska f¨orkortningen av Procedural Content Generation. Metoden f¨or att gene-rera spelinneh˚all automatiskt.

Real-Time Strategy - En spelgenrer inom strategi som inneb¨ar att spelet inte anv¨ander sig av turbaserade rundor.

Spline - Matematisk funktion som skapar j¨amna och sl¨ata kurvor. Vertexpunkt - Ett h¨orn i en polygon.

(32)

Appendix B - S¨

oktermer

Termer T T T

Mixed Initiative Spline Agent Mesh

Synonymer Computer Aided Design Curve Software Agents Polygon S Interactive Evolution B´ezier

S CAD

Termer T T

Games Dungeon Procedural Content Generation

Synonymer Digital Game Cave PCG

S Video Game Map Procedural

S Computer Game Terrain Generation

S Gam* Landscape

(33)

Appendix C - Enk¨

at

1. Vilket verktyg var l¨attast att anv¨anda f¨or att skapa grottg˚angar? • Splines + Prefabs

• Enbart Prefabs

2. Vad var bra med verktyget? 3. Vad var sv˚art med verktyget? 4. Saknades n˚agot med verktyget?

5. Vad tyckte du om instruktionerna/manualen? 6. ¨Ovriga tankar/allm¨an feedback?

Figure

Figur 3: F¨ ordefinierade objekt f¨ or att skapa korsningar och rum som kan anv¨ andas i designmilj¨ on
Figur 4: F¨ ardiggenererad polygonyta ¨ over en spline Mesh-agent
Figur 5: F¨ ardiggenererad grottliknande geometri
Figur 7: F¨ ardiggenererad grottmilj¨ o med spiralform
+4

References

Related documents

Resonemang, inf¨ orda beteck- ningar och utr¨ akningar f˚ ar inte vara s˚ a knapph¨ andigt presenterade att de blir sv˚ ara att f¨ olja.. ¨ Aven endast delvis l¨ osta problem kan

F¨or n˚agot st¨orre stickprov (en tum- regel ¨ar storlekar st¨orre ¨an 15, se IPS sidan 463) r¨acker det med att variabeln ¨ar symmetrisk och att det inte finns n˚agra

Dessutom var tanken att man skulle kunna göra systemet kraftfullare genom att skapa möjlighet att i uttryck referera till andra celler i kalkylbladet.. Detta skulle ge användaren

Till exempel fick jag inte med n˚ agot Ljus- och Optikland i f¨ orsta f¨ ors¨ oket, och pilen mot Kosmologi, som ligger utanf¨ or den h¨ ar kartan, borde peka mer upp˚ at,

Po¨ angen p˚ a godk¨ anda duggor summeras och avg¨ or slutbetyget.. L¨ osningarna skall vara v¨ almotiverade och

L˚ at y(t) vara andelen av populationen som ¨ar smittad efter tiden t dygn, r¨aknad fr˚ an uppt¨ack- ten... Observera att ¨amnets koncentration ¨ar samma som m¨angden av

Minnesberoende Läsning från minnet hinner inte göras innan efterföljande instruktion vill använda data från läsningen. Lösning: pipeline stalling +

Rutinen som anv¨ands f¨ or att definiera operatorn, kan ha antingen ett eller tv˚ a argument, men eftersom funktionen normalt definieras i samma modul som inneh˚