SPEL OPTIMALISEREN
GM-Versie: | N.v.t. |
Registratie vereist: | N.v.t. |
Moeilijkheidsgraad: | Gemiddeld |
IntroductieIn deze tutorial ga ik jullie wat tips geven om ervoor te zorgen dat je spel snel blijft en de FPS niet naar beneden gaat. Ik leg in deze tutorial
niet uit hoe je dat programmeert in GameMaker. Ik ga ervan uit dat je dat zelf kunt doen.
InstantiesWanneer je een grote spelwereld hebt, dan heb je ook veel instanties. Probeer alleen de instanties die zichtbaar zijn in de view te activeren. Verwijder instanties die niet meer gebruikt worden. De instanties die zich buiten de view bevinden, kun je deactiveren.
Collision checkingJe moet soms kijken of een instantie tegen een andere instantie zit. Doe dit alleen wanneer écht nodig, ga niet onnodig veel collision checking doen. Deze functies werken met zware berekeningen en als je dat heel veel doet, dan kost dat tijd. Dus let hier op.
Het helpt ook om bij je sprites 'precise collision checking' uit te schakelen. Game Maker gebruikt dan de bounding boxes in plaats van pixel per pixel te controleren op collisions, en vaak is dit al goed genoeg.
TilesWanneer je tiles gebruikt, gebruik dan eerder één hele grote tile dan dat je allemaal kleinere tiles gebruikt. Meer tiles vergt meer geheugen dan dat je één grote tile gebruikt. Het is trouwens mogelijk om meerdere aangrenzende tiles in één keer in je room te zetten als één grote tile, dit is ook beter.
Step eventGebruik het Step Event goed. Bereken een waarde en stop dat in een tijdelijke lokale variabele (
var dir), roep deze dan aan, dit scheelt de hoeveelheid berekeningen per frame en dat scheelt tijd dus snelheid. Bedenk ook of het nodig is om alle berekeningen elke step opnieuw uit te voeren, of het ook goed genoeg is om ze uit te voeren om de 5 steps bijvoorbeeld.
GeluidWanneer je geluid toevoegt, probeer het kort te houden. Gebruik je een hoge bitrate? Haal die wat naar beneden tot het kan, dat scheelt ook wat!
Daarnaast ondersteunt GameMaker geluid erg slecht, maak gebruik van DLL's voor het geluid. Dat is ook wat sneller.
VenstergrootteGebruik geen enorme vensters, een grootte van 800x600 is meestal goed genoeg. Meer ziet er misschien beter uit, maar heb je het wel écht nodig?
Zet daarnaast de functie 'Use synchronization to avoid tearing' uit. Dit kost erg veel CPU kracht, je vindt de functie onder
Global Game Settings > Resolution.
PrimitievenGebruik je ingewikkelde primitieven die nooit veranderen? Teken ze eerst één keer op een surface en teken die surface dan op je scherm. Dat is sneller dan dat je de primitieven direct op het scherm tekent. Of zet ze in een 3D-model, dat werkt ook heel goed (je kan perfect 3D-modellen gebruiken in 2D).
SpritesZorg ervoor dat je canvasgrootte van je sprites zo klein mogelijk blijft. Die lege transparante pixels kosten ook geheugen. Als je die zo veel mogelijk vermijdt, zal dat snelheid opleveren.
Je kunt met de Crop functie in de Sprite Editor heel makkelijk je canvas verkleinen.
NawoordZo, hier heb je wat tips om je spel wat te optimaliseren. Het zal op den duur vast wat schelen!