Dette projekt går ud på at lave et 3d-spil i Unity, en game engine, ved at følge nedenstående tutorial fra youtuberen Brackeys. Formålet med opgaven er at lære at bruge Unity, så vi i fremtiden har mulighed for at bruge værktøjet.
Spilfiler (.zip)
Herunder kan man prøve spillet online via itch.io. Kvaliteten er ikke supergod, men god nok.
Dokumentation af udviklingsproces
Episode 1
I denne video arbejdede jeg med de helt basale ting og lavde bl.a. et "gulv," en kube, som er selve playeren og ændrede derefter på himlens farve. Jeg arbejde lidt med fysikken i spillet og lærte hvordan man bevæger sig selv og objekter rundt i programmet samt om, hvordan objekterne interagerer med hinanden.
Episode 2
I denne video lærte jeg at påvirke et objekt med en kraft i en specifik retning ved brug af C#.
Episode 3
I denne video har jeg arbejdet med at få min player til at bevæge sig uden at flyve afsted pga. friktion. Herudover har jeg også gjort det muligt for spilleren at bevæge sig mod højre og venstre ved at trykke hhv. a og d.
Episode 4
I denne video fokuserede jeg på, at få kameraet til at følge spilleren uden at roterer sammen med den.
Episode 5
I denne video har jeg arbejdet med at få min player til at kollidere med et andet objekt og derefter miste evnen til at bevæge sig.
Episode 6
I denne video arbejdede jeg hovedsageligt med at lave en bane manuelt. Herudover tilføjede jeg også tåge og ændrede på indstillingerne for spillerens bevægelse.
Episode 7
I denne video arbejdede jeg med at vise spillerens point (deres afstand fra startpunktet i meter) på skærmen.
Her var der et problem, da jeg ikke kunne referere til min tekst.
Det viste sig, siden jeg havde brugt TextMeshPro, da jeg ikke kunne finde text (som ikke eksisterer i de nyere versioner af Unity), at jeg skulle importere det i toppen af min kode (using TMPro;) og at jeg skulle sætte typen til "TextMeshProUGUI" i stedet for "Text," ligesom Brackeys havde gjort i sin kode.
Episode 8
I denne video lavede jeg en spilfunktion, som genstarter spillet efter, man kører ind i et objekt eller ud over kanten.
Episode 9
I denne video lavede jeg en animation som afspilles, når man bliver færdig med en bane vha. animationsvinduet og til sidst en lille smule kode, som sørger for at man går videre til næste level, som indtil videre er tomt, efter man klarer et level.
Midt i episoden løb jeg dog ind i et problem, som havde noget at gøre med den kode, jeg havde skrevet i episode 8.
Denne del af koden (i både PlayerMovement og PlayerCollision) gav lige pludselig en error, selvom det havde virket fint førhen. Heldigvis var løsningen allerede i kommentarerne, og jeg fik programmet til at fungere igen.
Episode 10
I denne video lavede jeg to ekstra levels, så der var tre i alt. Herefter lavede jeg en start- og slutskærm med hhv. en start- og quitknap. Disse scener satte jeg sammen for at færdiggøre spillet. Til sidst importerede jeg også en font (lemon milk), fordi jeg ikke havde gjort det førhen.
Igen havde jeg problemer pga. TextMeshPro, da Unity ikke ville bruge fonten, selvom den var en tilladt filtype (.otf), men dette kunne fikses ved at gå til Window>TextMeshPro>Font Asset Creator, trække fonten ind i det tomme felt, trykke "Generate Font Atlas" og derefter "Save" eller "Save As"
Demonstration af færdigt spil
Forklaring af kode
Refleksion
Jeg vil sige, at dette projekt gik godt, selvom der var nogle problemer med TextMeshPro. Problemerne var ikke så svære at finde løsningerne på. Brackeys var god til at forklare Unity, og jeg synes jeg har lært meget. Jeg husker måske ikke de helt små detaljer, men jeg tror sagtens, jeg vil kunne bruge programmet igen, da jeg synes at have fået en relativ god forståelse af programmet. Det er selvfølgelig stadig kun det basale, som Brackeys er kommet ind på.