game maker
Gebruikersnaam:
Wachtwoord:
Home Info Forums Help
Welkom, Gast. Alsjeblieft inloggen of registreren.
De activerings e-mail gemist?
+  Forums
|-+  Werken met Game Maker
| |-+  Tutorials en Uitbreidingen (Moderator: Maarten Baert)
| | |-+  [Tut] Spel optimaliseren
Pagina's: [1]
« vorige volgende »
Print
Advertenties

Martin Beentjes
Gebruiker


Offline Offline

Berichten: 2332

Gelieve quotes gebruiken bij PB's.


« Gepost op: 18 Mei 2012, 17:15:09 »

SPEL OPTIMALISEREN

GM-Versie:N.v.t.
Registratie vereist:N.v.t.
Moeilijkheidsgraad:Gemiddeld

Introductie
In 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.



Instanties
Wanneer 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 checking
Je 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.



Tiles
Wanneer 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 event
Gebruik 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.



Geluid
Wanneer 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.



Venstergrootte
Gebruik 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.



Primitieven
Gebruik 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).



Sprites
Zorg 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.



Nawoord
Zo, hier heb je wat tips om je spel wat te optimaliseren. Het zal op den duur vast wat schelen!

« Laatste verandering: 19 Mei 2012, 14:45:16 door Maarten Baert »
Naar boven Gelogd

Dylan93
Gebruiker

Offline Offline

Berichten: 37


« Antwoord #1 Gepost op: 20 Mei 2012, 11:56:43 »

Mooi vertaald van TIGSource Tong ?

Handige tips inderdaad, i.p.v. step events gebruiken kun je ook beter alarms gebruiken.
Ook veel text die toch niet veranderd kun je beter op een surface tekenen i.p.v. Gamemaker de text <fps x> te laten renderen per step.

Naar boven Gelogd

Martin Beentjes
Gebruiker


Offline Offline

Berichten: 2332

Gelieve quotes gebruiken bij PB's.


« Antwoord #2 Gepost op: 20 Mei 2012, 16:51:06 »

Hmm, even opgezocht en het lijkt er inderdaad op. Maar meer mogelijkheden om te optimaliseren heb ik nog niet gevonden. Deze kende ik, behalve het 3D model dan.

Maarten Baert heeft namelijk het stukje toegevoegd waarin staat dat het vertalen van 2d primitieven naar een 3d model sneller is. 3D modellen kun je namelijk in 2D gebruiken. Dit moet ik zelf nog wel uit gaan zoeken, maar ik ben blij dat Maarten dat erbij heeft gezet.

Naar boven Gelogd

thoot-je
Gebruiker


Offline Offline

Berichten: 3232

Je kan me wakker maken voor een kop tomatensoep :D


WWW
« Antwoord #3 Gepost op: 20 Mei 2012, 18:37:37 »

Handige checklist Gemoedelijk


Mijn website: thomasbaake.nl

De 2 belangrijkste dingen in het leven: Productief zijn en extreem veel genieten
Naar boven Gelogd

Advertenties
« vorige volgende »
Pagina's: [1]
Print


Topic Informatie
0 geregistreerde leden en 1 gast bekijken dit topic.

Ga naar:  

Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines
www.game-maker.nl © 2003-2019 Nederlandse Game Maker Community