Reflectie

Na een lang project is er natuurlijk veel om op te reflecteren. Daarnaast zijn er ook verbeterpunten of aanpassingen die, indien er meer tijd was, uitgevoerd konden worden. De reflectie is opgedeeld in drie onderwerpen: het proces, het technische aspect en de game zelf.

  • Proces
  • Technisch
  • Game

Het gehele proces is niet helemaal verlopen zoals het had moeten lopen. Het is dan ook niet gelukt om de vooropgestelde planning te volgen. Zo was het gedurende de stageperiode moeilijk om bezig te gaan met de bachelorproef, aangezien de stage ook al 5 dagen in de week in beslag nam. Verder is de hoeveelheid werk ook onderschat, waardoor de planning ook niet werkte. Daarnaast was er binnen de planning ook gerekend op een animatie video, maar dit is uiteindelijk een AR app geworden. 

Het wisselen van eindproduct is als iets wat aangeeft dat het einddoel niet duidelijk was in het begin, waardoor het vaak moeilijker was om te beginnen. Zo zijn er ook vaak technische en game aspecten veranderd, waardoor er opeens veel meer werk was. Hiermee omgaan was niet altijd even gemakkelijk. Er moest telkens opnieuw gekeken worden wat wanneer gedaan kon worden, en of het nog binnen de tijd te halen was. De motivatie vinden om telkens problemen op te lossen of te beginnen aan iets, was dan ook erg moeilijk. 

De persoonlijke doelstellingen zijn wel gehaald, vooral het maken van een game was een grootte uitdaging. Ook van alle andere aspecten die aan bod kwamen tijdens het maken van de app, heb ik veel geleerd. Zo had ik nooit eerder in C# geprogrammeerd of met Unity gewerkt. Het was zeker een leerzame ervaring waar ik later nog wat aan zal hebben. Zo is het verdiepen in het maken van spellen iets wat in de toekomst zeker voor zal komen. Wel zal het niet meer een AR spel worden, aangezien dit te beperkend aanvoelt. 

Ondanks dat het maken van een AR app en het gebruiken van Unity geheel nieuw was, was dit nog niet het meest moeilijke om te leren maken. Het waren vooral de onverwachtse bugs die telkens opdoken. Dit was vaak erg frustrerend en demotiverend, maar ook soms een uitdaging. Er kan zeker gesteld worden dat het probleemoplossend werken beter is geworden. Om een indruk te geven van een aantal bugs die opgelost moesten worden:

Om de grafische elementen beter te maken werd er gebruik gemaakt van de URP (universal render pipeline). Deze gaf alleen een zwart scherm, terwijl de camera zou moeten werken. Uiteindelijk lag het aan een functie binnen de URP waarbij er een AR achtergrond toegevoegd moest worden.

Voor het vergroten en roteren van de wereld werd gebruik gemaakt van LeanTouch. Deze plugin had een update waardoor alle lagen die als UI werden gedefinieerd de interactie blokkeerden. Dit kon simpel opgelost worden door de laag niet meer als UI te definiëren. Ondanks dat de oplossing simpel was, duurde het vrij lang om hierachter te komen. 

Iets wat niet op te lossen was, was de bug binnen de URP. Ik moest vaak de URP verwijderen en weer opnieuw installeren, omdat de elementen geen materiaal meer hadden. Ook kon ik geen UI elementen meer toevoegen wanneer de URP het niet deed. De reden achter deze bug is nog onbekend, maar het koste veel tijd om het telkens opnieuw te installeren.

Zoals vermeld in het proces, zijn er vaak aanpassingen gemaakt in de app op het technische vlak. Door die aanpassingen duurde het gehele technische proces vrij lang. Daarnaast was het ook erg moeilijk om de app zo klein mogelijk te maken en had het ook veel problemen met de snelheid binnen de app. Zo konden de animaties van de elementen niet gebruikt worden, omdat de app bleef crashen aangezien het teveel werkgeheugen innam.

Binnen de game zijn er een aantal dingen die goed zijn verlopen en een aantal aspecten die beter hadden gekund. 

Het eerste idee voor de game was dat er gewoon elementen waren die je kon uitbreiden, maar ze moesten wel in evenwicht blijven anders verloor je levens. Dit bleek vrij saai te zijn, aangezien er eigenlijk niks gedaan moest worden. Uiteindelijk is de game wel een echte game geworden. Door het laten verschuiven van de elementen na een bepaalde tijd is er een extra uitdaging bijgekomen. 

Wel bleek uit het testen dat de balans tussen de elementen niet altijd duidelijk was. Dit had opgelost kunnen worden door een balansmeter toe te voegen boven de elementen zelf, maar door een tekort aan tijd is dit niet gelukt om te maken. Verder zou dit ook niet bijdragen aan de snelheid van de game, waardoor het juist alleen frustrerend kan zijn. 

Verder had er wel een highscore toegevoegd kunnen worden, zodat de speler een extra motivatie heeft om deze te verbreken. Als er meer tijd geweest was, dan was dit zeker interessant geweest om te maken. Dit is ook zeker iets wat in de toekomst toegevoegd kan worden. Ook lijkt een save en load systeem binnen de game overbodig te zijn, aangezien een spel vrij snel voorbij is. Mogelijk zal het door een enkeling gebruikt worden, maar hier moet in het vervolg beter over nagedacht worden, om zo te bedenken of een onderdeel echt nodig is. 

Wat ook een goede uitbreiding was geweest, was dat wanneer de levens onder een bepaald punt komen, de wereld steeds donkerder en slechter wordt. Dit zou een extra motivatie zijn voor de speler en echt het idee geven dat de wereld in evenwicht gehouden moet worden. 

Optimalisatie

Een van de struikelpunten binnen de game is de optimalisatie van de 3D modellen. Zo is de game erg langzaam, dit komt deels door de code, maar ook door de vele modellen die gebruikt worden. De volgende keer zal hier vanaf het begin rekening mee gehouden worden, zodat er niet telkens geoptimaliseerd hoeft te worden. Dit scheelt veel tijd, aangezien er niet telkens hetzelfde opnieuw gedaan moet worden. 

Verder had er beter gekozen kunnen worden voor een spel zonder AR, aangezien AR ook veel geheugen neemt om telkens berekeningen te maken. Als het een gewone mobiele game was, dan waren er een stuk minder problemen rond optimalisatie geweest. De game had dan ook verder uitgebreid kunnen worden en er konden dan betere texturen gebruikt worden.