Skip to content

canuski/I-Sustain_UnityGame

Repository files navigation

Documentatie Project

Introductie

Welkom bij onze game. Deze game heet 'I Sustain' en bevindt zich in een wereld die 'Discordia' heet.

Je zal in het eerste level zien hoe Discordia is vernietigd en zelf kunnen ervaren hoe het is om in een wereld van verwoesting en anti-sustainability te zijn.

In het tweede level zal je beginnen aan een missie als de leider van een volk dat zich probeert af te weren van het leger dat de eerste wereld (eerste level) volledig heeft vernietigd. Dit leger probeert alle grondstoffen te stelen van uw landen, dit is te merken aan het reuze boorgat in de grond. Je zal verschillende taken moeten uitvoeren zoals het verzamelen van afval, het opblazen van de slechteriken en genieten van de mooie wereld. Ben je hier succesvol in en lukt het om het kasteel van de vijand te vernietigen dan komt je volk vrij en kan je naar het volgende level gaan.

Het derde level is gebaseerd op een wereld die op Discordia lijkt, maar het is al volledig verwoest geweest. Je kan dit zien aan de talloze mijnen verspreid over de grond en hoe de laatste mensheid zich heeft opgesloten achter krachtvelden. Het is de taak van de robot om de wereld op te ruimen door verlaten voertuigen te vernietigen. Daarnaast ligt het lot van de laatste mensheid in handen van de robot. Hij moet namelijk munten verzamelen om windmolens te activeren. Worden deze niet geactiveerd, dan verslechteren de leefomstandigheden van de mensheid nog meer.

Als je level 3 hebt voltooid, zal er in level 4 een zeer moeilijke opdracht te wachten staan. Deze opdracht is een 'only-up' game waarbij je elektrische auto-onderdelen moet verzamelen. Deze elektrische auto zal in het volgende level weer tevoorschijn komen. Het is belangrijk voor Discordia om met elektrische voertuigen te rijden omdat die de kostbare grondstoffen besparen.

Het laatste level is een rustige afsluiter op ons project. In dit level kan je genieten van een rustige cruise door een mooi landschap omsingeld door bomen. Dit level zijn atmosfeer is geïnspireerd geweest door de film "Drive". Hoewel het een rustgevende level is, moet je jezelf niet op gemak voelen vooral omdat er een countdown timer is! Verzamel alle "Discordia leaves" voor de zonsopgang! Als dit je lukt zal je de zonsopgang kunnen bekijken vooraleer onze game beëindigd wordt.

Designproces

1. Vooronderzoek en projectdefinitie

  • Vergadering gehouden om het project te bespreken, op ideeën te komen en om rollen toe te wijzen.
  • Basisproject vastgesteld.

2. Brainstorming

  • Brainstormsessies gehouden tijdens lab-momenten.
  • Bepaal de haalbaarheid binnen de toegewezen tijd.

3. Definitief ontwerp

  • Tijdens de laatste lables een grondig idee hebben van het project en hoe het er gaat uit zien.
  • Elk teamlid een level toewijzen.
  • Communicatiemiddelen opgezet (discord groep).

4. Ontwikkeling en programming

  • Tijdens de toegewezen tijd de opdrachten uitvoeren.
  • Het ontwikkelen van de game begint nu.
  • Communicatie onderhouden met andere teamleden over voortgang en status.

5. Definiteive documentatie

  • README en desgin document opstellen en uittypen
  • Als er nog updates gebeuren, ervoor zorgen dat de documentatie juist wordt aangepast

Technische implementatie

De game is gebouwd in Unity 2022.3.10f1. We gebruiken Visual Studio om onze scripts in C# te programmeren. Sommige teamleden hebben gebruik gemaakt van Blender om bepaalde dingen te ontwerpen. Deze .blend bestanden worden geëxporteerd als .fbx files. Alle teamleden maken gebruik van assets uit de Unity Asset Store [https://assetstore.unity.com/]. Hieronder wordt per teamlid meer uitleg gegeven over het gebruik van specifieke assets.

Voor het toevoegen van audio gebruiken we websites zoals [https://freesound.org/] en open source software zoals NewPipe [https://github.com/TeamNewPipe/NewPipe/]. We maken gebruik van de URP (Universal Render Pipeline) pipeline. Die beidt optimale prestaties, is gemakkelijk om te gebruiken voor cross-platform implementaties, ideaal is voor VR en AR programmering en eenvoudig te gebruiken is. We hebben veel gebruik gemaakt van de built-in pipeline -> URP converter die standaard aanwezig is in Unity 2022.3.10f1.

Het is de bedoeling dat onze game op Windows draait: voor andere platforms bieden we geen ondersteuning en hebben we geen mogelijkheid om te testen.

Haitam Baqoul - Level 1

Contribution

  • Ik heb level 1 gemaakt. Mijn level is meer een show case in plaats van een echte game. Er is wel interactie in de game.
Problems
  • Ik had veel problemen bij het vinden van deftige assets sinds dat de meeste geld kosten. Daar heb ik meeste van mijn tijd ingestopt.
  • Met GitHub werken was het grootste probleem. Ik moest vaak opnieuw beginnen omdat GitHub mijn folder had vernield.
  • Het is behoorlijk uitdagend om een eerste level te bedenken dat een sterk verhalend element bevat.

Educational value

  • Mijn game plaatst spelers in de rol van de hoofdoorzaak van wereldvernietiging, waarbij ze via hun keuzes de planeet naar de rand van instorting sturen. Door bewustwording te creëren rond milieu-impact, confronteert de game spelers met de gevolgen van niet-duurzame beslissingen en dient als een virtuele spiegel om aandacht te vestigen op echte wereldproblemen op het gebied van milieu en duurzaamheid.

Rescources used

  • Veel youtube
  • Unity assets:
    • Terrain Tools by mgear
    • Countryside gas station by VGtiXN
    • Single Detailed Truck by VIS Games
    • Outdoor Ground Textures by A dog's life software
    • PBR RPG/FPS Game Assets (Industrial Set v1.0) by Dmitrii Kutsenko
    • Oil Tank by Pixel Games
    • Truck low poly by SR Studios Kerala
    • AllSky Free - 10 Sky / Skybox Set by rpgwhitelock
    • Customizable Road Material/Shader by GeeKo

Oscar Alexander - Level 2

Contribution

  • Ik heb me beziggehouden met het beheer van de projectrepository op Github. Ik had meerdere taken, zoals het ondersteunen van mensen die iets niet begrepen, oplossen van alle merge conflicten, beheren van branches, het aanmaken en bijhouden van de README, en zorgen voor goede communicatie over alles wat ik heb aangepast, veranderd of toegevoegd aan de projectrepo.
  • Ik hield me ook bezig met het proberen te origaniseren van momenten dat we samen kwamen om de vooruitgang te bespreken.
  • Ik heb level 2 gemaakt, met het oog op mooie graphics, een leuke maar niet te moeilijke gameplay en educatief op vlak van duurzaamheid
Problems
  • Ik ondervond veel problemen bij het gebruik van Github. Aangezien het niet gemaakt is om vlot te kunnen integreren met een Unity-project.
  • Het was moeilijk om een goede .gitignore op te stellen wanneer iedereen zeer grote geïmporteerde assets gebruikt. Daarnaast duurde het ook heel lang om te pushen. Je moet elke map apart pushen, anders wordt het limiet van Github bereikt en mislukt de push. Ik heb het gitignore-probleem kunnen oplossen door iedereen een "ImportedAssets" map aan te laten maken en daarin alle grote geïmporteerde assets tijdelijk te plaatsen, totdat ze konden verwijderen wat ze niet meer nodig hadden.
  • Ik had weinig problemen met Unity zelf. Als ik een tutorial vond in de online documentatie, was het altijd gemakkelijk om mee te volgen en te leren. Ik had wel een probleem met mijn camera die schudde. Om dit op te lossen, maak ik gebruik van de .smoothFollow().
  • Ik heb veel kleinere foutjes gehad, zoals het niet hebben van een Rigidbody ergens of het activeren van de verkeerde soort collision. Deze waren altijd gemakkelijk op te lossen.
  • Sommige groepsleden communiceerden niet en prioritiseerden andere vakken.

Educational value

  • Mijn level benadrukt het belang van het opruimen van afval en het verminderen van afvalproductie. Daarnaast leert mijn level ook aan dat we moeten opkomen voor onze natuur. We mogen ons niet zomaar laten doen terwijl grote bedrijven (in het geval van mijn level het leger van Hayatam) onze grondstoffen opzuigen en enkel om geld denken.

Rescources used

  • Ik heb gebruik gemaakt van YouTube, meer specifiek veel video's van Brackeys en BurgZerg Arcade. Ik maakte ook gebruik van online documentatie en forums, vooral voor het oplossen van problemen.
  • Ik heb gebruik gemaakt van veel assets vanuit de unity store;
    • Tree Collection Pack 2 by ALIyerEdon
    • Countryside gas station by VGtiXN
    • Oil Tank by Pixel Games
    • 4 Industrial barrels by Vertex Field
    • Free Fire VFX - URP by Vefects
    • Outdoor Ground Textures by A dog's life software
    • Terrain Sample Asset Pack by Unity Technologies
    • Star Sparrow Modular Spaceship by Ebal Studios
    • ...

Mohammed Asad - Level 3

Contribution

  • Ik heb het team financieel ondersteund bij het verbeteren van de GitHub LFS subscription voor de repository owner.
  • Ik heb level 3 ontworpen met educatieve doeleinden in gedachten, terwijl ik de spelers nog steeds uitdaag met boeiende taken.
Problems
  • Bij het creëren van eigen assets in Blender ontdekte ik dat de hoeveelheid polygonen invloed heeft op de prestaties van mijn gameplays, net zoals de bestandsgrootte aanzienlijk toeneemt als je Blender-assets niet correct exporteert naar een .fbx-bestand.
  • De bestandsgrootte heeft invloed op de GitHub-repo, aangezien je slechts 2 GB LFS bandbreedte per maand gratis hebt.

Educational value

  • Ik heb een level gecreëerd waarin spelers de gevolgen van menselijke hebzucht, oorlogen en financiële problemen ervaren. In dit level navigeer je door bossen, ontwijk je landmijnen, verzamel je munten voor zuivere energie en leer je dat energiezuinigheid kostbaar is. Tegelijkertijd tracht ik de spelers aan te moedigen om zoveel mogelijk resources te recyclen en de natuur op te ruimen, terwijl ik benadruk dat zuivere energie een hoge prijs heeft. Daarnaast leg ik uit dat oorlogen en corporate greed invloed hebben op de levensomstandigheden van komende generaties.

Rescources used

  • De meerderheid van mijn assets zijn zelf gemaakt zoals:
    • Windmolens
    • Speler
    • Enemies
    • Landmijnen
    • Coins
    • Checkpoints
  • De spelers krijgen extra uitleg via een AI-voice die de huidige situatie van het level uitlegt.

Maximilan Duda - Level 4

Contribution

  • Ik heb level 4 gemaakt, dit level is een platformer dat de speler uitdaagt wegens zijn moeilijkheidsgraad.
Problems
  • Ik had mijn project eerst gemaakt met de built-in pipeline maar later hadden wij besloten om URP te gebruiken. Dit zorgde ervoor dat mijn texturen niet wouden werken maar gelukkig hadden wij een oplossing hiervoor gevonden.
  • Tijdens het toevoegen van een nieuwe scène werden de schaduwen van mijn eerste scène super donker. Ik probeerde dit op te lossen in de eerste scène maar ik had het uiteindelijk opgelost in mijn settings.
  • Sommige assets dat ik had geïmporteerd van de unity store wouden niet werken. Dit heeft zichzelf opgelost nadat ik de volgende dag verder werkte.
  • Soms wou de code dat ik schreef niet attachen aan een gameobject, maar eens ik lijn verwijderde uit de code werkte het wel. (waarschijnlijk een bug)

Educational value

  • Terwijl spelers door het boeiende level van "Junk Jump" navigeren, moeten ze springen op verschillende objecten en ondertussen verspreide Junk Parts onderweg verzamelen. Deze ogenschijnlijk willekeurige onderdelen zijn strategisch geplaatst om de diverse uitdagingen van afval en vervuiling op onze planeet te simuleren. Het verzamelen van de Junk Parts tijdens het spel dient als een metafoor voor het belang van afvalbeheer. Door elementen van milieubewustzijn op te nemen, moedigt "Junk Jump" spelers aan om na te denken over hun eigen consumptiepatronen en de impact van weggegooide materialen op de planeet. Het spel introduceert slimme recyclinguitdagingen, waarbij spelers de verzamelde Junk Parts moeten sorteren en recyclen om verder te komen. Deze interactieve aspecten leren niet alleen het belang van recycling, maar benadrukken ook hoe hergebruik van materialen kan bijdragen aan een schonere en duurzamere omgeving. Aan het einde van het spel worden spelers beloond met een elektrische auto gebouwd met de gerecyclede onderdelen die ze hebben verzameld. Deze laatste fase dient als een krachtige visuele representatie van de positieve impact die recycling kan hebben op het creëren van duurzame oplossingen, zoals elektrische voertuigen die de uitstoot van koolstof verminderen.

Rescources used

  • Ik heb paar youtube tutorials gekeken die mij hebben geholpen bij thema's dat ik niet volledig begreep. Zoals lighting.
  • In totaal heb ik ongeveer 50 assets gebruikt. Aangezien mijn level een platformer is, heb ik gebruik moeten maken van verschillende objecten. Op deze manier heb ik elke sprong uniek gemaakt en heb ik herhaling vermeden.

Turgay Fatih Yaşar - Level 5

Contribution

  • Het allerlaatste level is door mij gemaakt, dit level is een afsluiter en biedt een open-world ervaring met een countdown timer als uitdaging.
Problems
  • Toen ik 3D-modellen vanuit Blender probeerde te importeren naar Unity, ondervond ik wat problemen, zoals het niet kunnen toewijzen van texturen en modellen die 90° geroteerd waren.
  • De bomen in mijn level worden in de verte niet volledig gerenderd, ze krijgen namelijk niet de juiste belichting. Dit probleem lijkt niet specifiek te zijn aan mijn Unity- of mijn laptop-instellingen, aangezien mijn groepsgenoten hier ook problemen mee hebben.
  • Bij het verwijderen van onnodige assets had ik per ongeluk bestanden verwijderd die deel uitmaakten van de "Packages"-map, waardoor ik mijn level niet meer kon starten. Gelukkig maakte ik regelmatig back-ups op mijn laptop en op Github.
  • Na het mergen van al onze levels had ik wat problemen met mijn niet-bestaande prefabs. Dit probleem heb ik snel kunnen oplossen door kleine aanpassingen te brengen.

Educational value

  • Mijn level heeft als doel spelers bewust te maken van diverse vormen van duurzaamheid om onze planeet te beschermen. Het level start met een elektrische auto die een pad volgt, waarbij spelers geïntroduceerd worden tot verschillende vormen van duurzame energiebronnen, waaronder kerncentrales, windmolens, zonnepanelen en waterdammen. Bovendien wordt er ook nadruk gelegd op landgebruik d.m.v. boerderijen en worden spelers ook langs huizen geleid die aan recyling doen. Mijn level probeert spelers bewust te maken en moedigt hen aan om ook een actieve rol te spelen in het beschermen van onze planeet.

Rescources used

  • YouTube tutorials voor onderwerpen die we niet behandeld hadden tijdens de les.
  • online forums voor de logica van bepaalde scripts.
  • presentaties, video's en mijn ingeleverde taken van onze Unity-cursus.
  • verschillende geïmporteerde assets van de unity asset store.