Nags - Not.A.("Game Studie")
Total Page:16
File Type:pdf, Size:1020Kb
NaGs - Not.a.("Game studie") Gruppemedlemmer & studienr: Vejleder: Ebbe Vang [[email protected]] Benjamin Jul Westermann [60653] Uddannelsessted: RUC - Roskilde Universitet Niels Georg Vendelø [61218] Periode: 03-09-2018 til 18-12-2018 Lasse Bjerg Christiansen [60632] Mads Zeuch Ethelberg [62608] Antal tegn: 69651 + 10 billeder Normalsider: 29 Sprog: Dansk Github repository: https://github.com/westermann920/TowerDefence.git Benjamin Jul Westermann, Niels Georg Vendelø, Lasse Bjerg Christiansen, Mads Zeuch Ethelberg Abstract The goal of this paper is to detail how to conceptualized and create a videogame playable in a virtual reality setting. We’ve constructed the game with the help of the unity game engine and written the code in the C# language. The game follows the classical tower defense genre, which we have attempted to restructure so it would fit into a new setting and perspective. The paper details our early thoughts on the different elements of the game, as well as our experiences as first timers working with the HTC vive, the unity engine and construction of a group IT projekt using the github desktop app to share our code and our work. The conclusion to this report is that when working on a game, as well as any other IT project, one must consider the possibility that sudden delays can occur. Be they hardware problems that require IT support, mind boggling software problems or simply a lack of planning. In the discussion we elaborate on how we failed to prepare adequately for the design hurdles and data structures, which eventually lead to the final product not being as sound as we would have liked it to be. The lesson from this paper is that planning is a necessity and delays are inevitability in game design, and the proper way of dealing with these are clear and concise plans created through discussions and preparations. Forord Dette er vores 5. semesterprojekt på bachelorniveau inden for faget computer science / datalogi på Roskilde Universitet (RUC). Formålet med dette projekt er at erhverve viden, færdigheder og kompetencer inden for softwareudvikling. Herunder viden og færdigheder om programmering, algoritmer, datastrukturer og testing. Kompetencer indenfor planlægning, kravspecificering og styre udvikling af mindre udviklingsprocesser. Samtidig med at de blødere færdigheder også videreudvikles såsom organisering, projektstyring og kommunikation i forhold til et projektarbejde. Dette projekt er primært målrettet andre bachelor studerende inden for de datalogiske fag, som er i slutningen af deres studie, og som ønsker viden inden for udvikling af virtual reality spil. I vores projekt har vi valgt at fordybe os i udviklingen af et virtual reality spil hvor unity er benyttet som engine. Vi vil gerne takke vores vejleder Ebbe Vang, som har giver os ideer, inspiration og vejledning til arbejdet med dette projekt. Side 2 af 97 Benjamin Jul Westermann, Niels Georg Vendelø, Lasse Bjerg Christiansen, Mads Zeuch Ethelberg Indholdsfortegnelse Abstract 2 Forord 2 Indholdsfortegnelse 3 Indledning 6 Problemformulering 6 Teori 7 VR(Vive) 7 Git og Github 10 Unity 11 Game Design 13 Tårne 13 Bygmesteren 15 Fjender 15 Overlorden og hans minions 17 Pathing 17 Planlægning 19 Abejdsprocess 21 Implementering af scripts i unity 21 Prefabs 23 Minions prefab 23 Overlord prefab 24 Spawner prefab 25 Towers prefab 25 Projectiles prefab 25 Building obj prefabs 25 Scripts 26 AnimationEvents.cs 26 BaseSpecs.cs 26 ControllerFlameThrower.cs 27 Health.cs 27 Intel.cs 29 MinionWaves.cs 30 Movement.cs 31 Overlord.cs 33 PathPointList.cs 37 Side 3 af 97 Benjamin Jul Westermann, Niels Georg Vendelø, Lasse Bjerg Christiansen, Mads Zeuch Ethelberg PathFinding.cs 39 Projectile.cs 40 Spawner.cs 41 StatsUpgrade.cs 42 Targeting.cs 44 Tower.cs 45 Scripts for Tower Building 46 TowerCreation.cs 46 TowerTypeUpgrade.cs 46 Upgrade.cs 47 Scripts for Hand Menu 47 BuildingMenu.cs 48 ButtonHandler.cs 49 Diskussion 51 Konklusion 52 Reference list 53 Bilag 54 Bilag 1 : Unity Interface 54 Bilag 2: Unity Prefabs eksempel 55 Bilag: Scripts 56 Bilag: AnimationEvents.cs 56 Bilag: BaseSpecs.cs 57 Bilag: ControllerFlameThrower.cs 58 Bilag: Health.cs 59 Bilag: Intel.cs 61 Bilag: MinionWaves.cs 63 Bilag: Movement.cs 65 Bilag: Overlord.cs 67 Bilag: PathFinding.cs 73 Bilag: PathPointList.cs 75 Bilag: Projectile.cs 77 Bilag: Spawner.cs 79 Bilag: StatsUpgrade.cs 81 Bilag: Targeting.cs 83 Bilag: Tower.cs 84 Bilag: Hand Menu/BuildingMenu.cs 87 Bilag: Hand Menu/ButtonHandler.cs - mangler script 91 Side 4 af 97 Benjamin Jul Westermann, Niels Georg Vendelø, Lasse Bjerg Christiansen, Mads Zeuch Ethelberg Bilag: Tower Building/TowerCreation.cs - mangler script 92 Bilag: Tower Building/TowerTypeUpgrade.cs - mangler script 93 Bilag: Tower Building/Upgrade.cs - mangler script 95 Side 5 af 97 Benjamin Jul Westermann, Niels Georg Vendelø, Lasse Bjerg Christiansen, Mads Zeuch Ethelberg Indledning Computerspil er en interesse der i takt med en stigende digitalisering af vores samfund har fundet vej til et hidtil uset antal brugere. Forøget interesse betyder et større og bredere markede. Et bredere marked har betydet at der har været mulighed for at eksperimentere med adskillige nicher, i en hvis forstand “See what sticks”, en søgen efter en spiloplevelse som kunne starte en hel ny måde at interagere med computerspil Virtual reality er et af de nicher som gennem computerspils historie har set adskillige iterationer( såsom nintendo virtual boy tilbage i 1995(1) , på trods af flere forsøg så har der ikke været den store efterspørgsel inden for virtual reality oplevelsen, det vil sige indtil nyere tid hvor virtual reality har haft en genopstandelse blandt andet gennem det “crowdfundede” kickstarter projekt iværksat af Oculus VR (2), som producerede VR headsettet Oculus rift. Både Oculus rift og dens konkurrent HTC Vive var fra starten af deres udgivelse for dyre til at kunne appellere til gennemsnitsforbrugeren af computerspil, og var stort set udelukkende et eje for spil entusiaster. Men efterhånden er priserne på de virtuelle headset sunket til et niveau som flere kan være med på, dog mest i tilfældet af oculus rift, der har set drastiske prisfald inden for de seneste år. ( pris ved udgivelse 2016, 599 dollars (3), nuværende 2018, 452 dollars (4). Grundet vores egen fascination af konceptet virtual reality, og et kommende større og bedre understøttet mainstream marked, besluttede vi os selv for at undersøge hvordan processen af at skabe et VR spil forløber sig. Problemformulering I dette projekt arbejdes der med spørgsmålet: Hvordan udvikles et spil som kan spillets mod en computer med virtual reality som brugerflade. -Hvad er det vi vil lave i dette projekt / hvad er formålet -Hvorledes skaber man(find synonym) et spil i virtual reality? Side 6 af 97 Benjamin Jul Westermann, Niels Georg Vendelø, Lasse Bjerg Christiansen, Mads Zeuch Ethelberg Teori Da kursen var lagt mod et produkt i virtual reality stod næste opgave på at definere hvilken type spil vi skulle give os i kast med. Den første overvejelse hældede til at det kunne være et skydespil hvori spilleren selv løber rundt og skyder fjender, men med forhåndsviden om at bevægelighed ikke er fantastisk når man har et headset der blokere alt syn og en kort ledning i baghovedet, blev den ide droppet, og i stedet satte vi os for at lave et Tower Defense spil. Med genren valgt gav det os en ramme for hvorledes spillet skulle opbygges, og dermed også en række elementer vi var nødt til at have på plads før vi kunne tilføje vores egne variationer til genren. Et tower defense spil er betegnelsen for en spilgenre, hvor i det er spillerens opgave at beskytte en base mod et stigende antal fjender, der bliver sendt for at angribe spillerens base på et tidsinterval og som bliver stærkere og stærkere for hver runde de bliver sendt afsted. Spillerens primære form for forsvar er de tårne spilleren bygger og opgraderer igennem spillet. (deraf Tower Defense) I takt med at fjenderne bliver stærkere må forsvarsværkerne naturligvis følge trop. De taktiske elementer i spillet ,der sørger for at det ikke bliver helt trivielt, opstår igennem 3 forskellige aspekter. For det første er der typisk flere forskellige typer af fjender der skal bekæmpes af forskellige tårne. idet der kommer forskellige typer fjender der skal bekæmpes af forskellige tårne For det andet er der typisk en økonomi til stede der sørger for at spilleren ikke bare kan bygge af hjertens lyst,men at der faktisk skal tænkes over hvilke tårne der bliver købt og hvornår, og for det tredje følger fjenderne typisk en specifik sti, hvilket tvinger spilleren til at overveje hvor de forskellige tårne bedst placeres for at udnytte deres individuelle styrker, for dermed at forsvare basen bedst muligt. Ud af ovenstående kan vi konkludere at vores spil som minimum måtte indeholde tårne, fjender og en base. Det næste spørgsmål blev derefter, hvordan skal vi bygge en virtuel verden op i 3d og dernæst få den smidt ind i et på briller? VR(Vive) Vores tower defense spil bliver lavet i virtual reality. Virtual reality (VR), er en teknologi som har haft en voksende tilgængelig for gennemsnitsforbrugeren gennem de seneste 10 år. De fleste VR kits består af et par virtual reality goggles, en form for controller(e) og nogle stationære sensorer til at skabe et virtuelt rum hvori spilleren kan bevæge sig frit og interagere med den virtuelle verden som ses gennem Brillerne (goggles). Vi bruger HTC Vive, en af de bedre konfigurationer, til at udvikle vores spil. Vive er lavet gennem et samarbejde blandt HTC og Valve. Valve har udviklet en API kaldet Steam VR. Denne api er gjort tilgængelig i unity ved at Valve har lavet et plug-in til unity som implementere support for SteamVR. (5). Umiddelbart er Side 7 af 97 Benjamin Jul Westermann, Niels Georg Vendelø, Lasse Bjerg Christiansen, Mads Zeuch Ethelberg vores spilgenre ikke den mest konventionelle at udvikle i VR, idet tower defense spil oftest bliver spillet igennem et fugleperspektiv fordi det giver hurtig adgang til at få overblik over hele spillets scene.