vrijdag 6 december 2013

The progress - Part 1

We do this blogpost in Dutch, because that way we can present our ideas and progress better. Next blogpost will be English again.

In de verte, vaag maar steeds duidelijker hoorbaar, klinkt het curieuze geluid van molratten.
Ze maken vreemde geluiden, voor ons mensen onbegrijpelijk maar onmiskenbaar vervuld van een diepe dierlijke wijsheid. Ze hebben al een map, rijkelijk gevuld met bomen, gras en stenen. Daar zullen ze straks heerlijk in spelen, elkaar vermoordend met de vreemdste wapens. Bloed zal vloeien, levens zullen in een waas van vuur en geweld vernietigd worden. Maar zover is het nog niet, uren zwoegend programmeerwerk staan nog in de weg van deze massamoorden. Maar we zijn goed op weg en de zaakjes beginnen al vorm te krijgen. Het hart van het spel is afgelopen week gaan kloppen, de engine is voltooid en er ontspringen bloedvaten die kronkelend langs nieuwe organen lopen. Organen waarin de beginselen van gameplay groeien.
We zijn ambitieus maar beseffen dat het spel Worms waar we een adaptie van aan het ontwikkelen zijn een ambitieuze game is waar vele mensen maandenlang aan gewerkt hebben. Een game die met inventieve en originele gameplay tijdloos is geworden en vele fans heeft vergaard. Ons hoofddoel is om de essentie van het spel, datgene waarmee het beroemd is geworden, te vangen en verder wat leuke aanpassingen te maken waarbij we nieuwe technologieƫn gebruiken. Zolang mensen ons spel zien als een worms-spel, en onze stijl kunnen waarderen, zijn we tevreden. Daar gaan we voor. We willen daarom al vroeg beginnen met delen en testen, zodat het project in goede banen geleid wordt en we later niet vastlopen op eerdere verkeerde keuzes.

Laten we ook even de tijd nemen om naar de gedachte achter engine die door Sander gemaakt is te kijken. Het idee is dat er, net als we gewend zijn in bijvoorbeeld windows, een soort mappenstructuur hebben. Elk object heeft zijn eigen virtuele pad, bijvoorbeeld "Engine/GraphicsDevice" of "Game/Terrain/Objects/WoodenThing". Dit geeft ons een aantal voordelen waarvan de belangrijkste zijn dat het redelijk makkelijk is om objecten te vinden en het zoeken naar objecten efficient gebeurt. In vergelijking met de “GameWorld.Find” functie van het vak gameprogrammeren hebben wij ook een soortgelijke functie: Env.Get<Type>(“path”). Omdat onze functie niet de hele lijst met alle game objecten doorzoekt, scheelt dit tijd en is daarom iets efficienter. Naast Env.Get hebben we ook nog een andere mogelijkheid om bij een ander object te komen, namelijk met Env[“path”]. Deze laatste mogelijkheid is een dynamisch object. Dit houdt in dat er geen type aan gebonden wordt.

Naast C# gebruiken we ook nog een beetje XML en JSON. In een XML bestand slaan we settings op als resolutie, fullscreen, maar ook constanten als WaterDensity. JSON staat voor JavaScript Object Notation en is dus eigenlijk een deel van javascript. JSON gebruiken wij om menu’s te maken. Dit doen we omdat het een stuk makkelijker is met JSON dan helemaal uit te programmeren.

Bij ons speelt terrain deformation ook net als in de originele worms een grote rol. Terrain deformation is de verandering van het terrein, raketten en kogels en andere objecten kunnen namelijk het terrein als het ware kapot blazen en dus veranderen. Voor deze verandering nemen we een witte cirkel met een zwarte rand die geplaatst wordt op het punt van de impact. Het deel van de cirkel die de achtergrond overlapt zal worden verwijderd, daarna zal het witte gedeelte van de cirkel verwijderd worden. Dit gebeurt heel snel en je zal dus de witte cirkel niet zien. Maar om er zeker van te zijn dat de speler niet verward raakt door een plotseling witte circel worden er een animatie afgespeeld die een laag ervoor zit.

Wat is een spel zonder particles? Juist, niet aantrekkelijk. Een game wordt leuker om te spelen als de speler (figuurlijk natuurlijk) het spel in wordt getrokken. Particles zorgen voor dit effect, namelijk doordat het de kijker ook plezier aan de ogen geeft. Extreme explosief gaan natuurlijk gebaat met te gekke particles, immers, wat is een explosie zonder visueel effect? Als een schattig molratje in het water valt (en zielig genoeg verdrinkt) dan horen daar natuurlijk ook waterspetters bij, anders zouden we te maken hebben met merkwaardig water. In een ijzig koude map in de bergen hoort natuurlijk wel sneeuw te vallen, in het bos regent het ook wel eens en in de hel vliegt (natuurlijk) de as je rond de oren. Kortom, particles maken een game vet! Ons plan is om tot de selectie van coole games te behoren, oftewel, we gaan particles implementeren in Molerats. We gaan een systeem programmeren waarmee we verschillende soorten particles kunnen creĆ«ren. Met dit systeem kunnen we verschillende sprites gaan gebruiken om die vervolgens op verschillende manieren te manipuleren. Zo kunnen we bijvoorbeeld zwaartekracht toevoegen aan bepaalde particles waardoor ze naar beneden vallen of kunnen we een andere soort kracht simuleren waardoor de particles juist “weggeschoten” worden van een bepaald punt. Met dit systeem hebben we heel veel verschillende mogelijkheden om Molerats door middel van particles er aantrekkelijker uit te laten zien!


Geen opmerkingen:

Een reactie posten