Voorbeeld: games

7 december 2023

SvenBoers“Veel games bestaan uit bewegende karakters in een wereld waar de wetten van de natuur wellicht iets anders zijn, maar wel vergelijkbaar met die in dit universum. Deze karakters springen, lopen, kruipen, schuiven, gooien, schieten, rijden, glijden en vliegen net als dat wij doen. Door op knoppen te drukken of aan pookjes te draaien voert het karakter de wil van de speler uit. Dit gebeurt in een iteratief proces dat eigenlijk niet meer is dan een groot fictief model met real-time input.

Een goed voorbeeld hiervan is bijvoorbeeld de actie springen: de speler drukt op een knop en de verticale snelheid van het spelpersonage neemt toe. Hoe? Het indrukken van de knop zorgt voor een verandering van de waarde voor de kracht in de y-richting. Zoals bekend ontstaat hierdoor een versnelling, een snelheid en een verandering van de plaats. Hierbij komen een aantal variabelen kijken, zoals de massa van het personage, de grootte van de wrijving, de grootte van de valversnelling et cetera. Het aanpassen van deze waarden zorgt voor een verandering in de snelheid en de hoogte van de sprong, die cruciaal zijn voor de gameplay. Het programmeren van bewegingen bestaat dus voor een groot deel uit het toepassen van dezelfde modellen als die worden behandeld op de middelbare school.

Gelukkig hoeft een programmeur niet alles zelf te doen, want in de loop der jaren zijn er zogenaamde ‘engines’ ontwikkeld, die een groot deel van de berekeningen onder de motorkap uitvoeren. Binnen deze engines zit vaak een ‘physics engine’ die eigenlijk een enorme simulator is die complexe berekeningen uitvoert. Je kunt je voorstellen dat bij een versplinterend stuk hout het bijna niet te doen is om de beweging van alle losse deeltjes te simuleren. De physics engine heeft hiervoor een algoritme. De programmeur kan allerlei parameters instellen om de houtsplinters zo realistisch mogelijk te renderen. Om deze parameters efficiënt te kunnen gebruiken, is begrip van de manier waarop de engine werkt onontbeerlijk. De basis hiervoor is het begrijpen hoe modelleren in de natuurkunde wordt toegepast.”

Sven Boers, Game-ontwikkelaar bij Sneaky Mammoth