Pollution

Hoe kan ik ervoor zorgen dat ik een pollution systeem dusdanig generiek opzet, zodat het op elk object toegepast kan worden?

Pollution is een erg belangrijk onderdeel van onze game. Er komen diverse objecten waar het op toegepast moet worden en daarbij zijn er een aantal dingen belangrijk.

  • Het systeem is generiek (inzetbaar op diverse objecten zoals bomen en dieren)
  • Zowel vorm als kleur van objecten moeten veranderd kunnen worden
  • Het systeem is zo performant als mogelijk
  • Het moet nog steeds in te zetten zijn als het meerdere gedeeltes van een object moeten veranderen

Onderzoeksmethoden

Library

  • Literature study

Ik ben begonnen met onderzoek naar performance. Ik moest ervoor kunnen zorgen dat objecten van vorm en kleur veranderd kunnen worden. Dit zou in theorie kunnen door de mesh en material van een object te veranderen, dus heb ik dit vergeleken met het constant instantiaten van nieuwe objecten. 

Het 2e bleek een stuk zwaarder te zijn volgens zowel forums als een test van het CTOUCH scherm zelf waardoor ik koos voor het veranderen van mesh en material.


Field

  • Document analysis
Ik heb ons Game Design Document bekeken om ervoor te zorgen dat het syteem zo op is gezet dat het alle voorwaarden beschreven, zou ondersteunen. Die voorwaarden zijn ook te zien in het begin van deze devlog entry onder de hoofdvraag.

Workshop

  • Prototyping
Uiteindelijk heb ik code gemaakt voor het gehele pollution systeem.

De worldPollutionValue wordt aangepast gebaseerd op hoe iemand met het scherm omgaat. Meer over hoe dit bepaald wordt vind je hier.

Vervolgens wordt er voor elk object die kan veranderen, de statechange method opgeroepen waarin de nieuwe worldPollutionValue wordt meegegeven.

Tot slot worden alle gameobjects die veranderd kunnen worden, aangetast gebaseerd op de worldPollutionValue en de waarde waarbij het object daadwerkelijk moet veranderen. Dit script staat op alle parent objects van de models (denk aan empty parent object "tree").

Dit script staat op alle child objects die veranderd kunnen worden (denk aan "leaves" object onder het "tree" object). Zoals te zien zijn de kleuren en meshes aan te passen gebaseerd op of het object polluted, neutral of clean is.


Resultaat

Op de pagina Prototype is te vinden hoe dit systeem in de praktijk werkt en op de pagina Eindproduct is te vinden hoe het uiteindelijk gebruikt wordt.


Validatie

Ik heb het script getest op verschillende models die soms meerdere LOD's hadden en soms meerdere objecten van het model die veranderd konden worden. Ook heb ik samen met Jasper gekeken naar de performance van de code en het verbeterd waar nodig. 

Het werkte allemaal zonder problemen en hierdoor voldoet het systeem aan alle eisen gesteld bij de probleemstelling.


Gebruikswijze

De scripts worden gebruikt om objecten in de map te veranderen gebaseerd op hoe hoog of laag de world pollution value is. De world pollution value wordt dan weer veranderd gebaseerd op hoe zuinig de speler met het scherm omgaat en zo werkt dit allemaal samen.

Daan van Eijl | CTOUCH
Mogelijk gemaakt door Webnode
Maak een gratis website. Deze website werd gemaakt met Webnode. Maak jouw eigen website vandaag nog gratis! Begin