Messages : 6938 Projet Actuel : Bataille de cake au fruits
Sujet: Réduction de poid super sans plomb sans mayonaise Dim 11 Avr 2010 - 18:52
Grâce à ces simple changement, vous pouriez économiser entre 1 et 10% sur le poid final de votre jeu.
Mais avant un peu de culture pour mieux comprendre: Game Maker est un langage interprèté, ce qui veux dire que TOUT ce que vous écrivez se retrouve dans le .exe à la fin. Aussi, il ne simplifiera pas votre code si vous metter plein de caratère innutile. Donc chaque caratère augmentera la taille de votre jeu et son temps de chargement.
Voila donc le tuto: -Suprimer tout les ; en fin de lignes -Remplacer true/false par 1/0 respectivement -remplacer les if X=true/if X=false par if X/If !X -Remplacer les and par des && -Suprimez les {} lors de déclaration simple -Suprimez les () lors des multiplication/division ou des if/while -Racourcisez le nom de vos variables/objets/sprites et autre. -Enlever les tabulations (selon l'envie, mais à fiare avant de produire un .exe) -Mettre tout ce qui est possible en externe. -Utilisez les tableaux lors de variables répétitive (chiffre1chiffre2,etc... devient chiffre[X]) pour les utiliser avec une boucle -Sauvagerdez vos tableaux innutile dans des fichiers texte pour les charger le moment venu.
Évidament si ca a pas été fait au début le travail peu être très (très )long mais sur un gros jeu, économiser 2-3 sec de chargement et quelques centaines de ko est très aprécié.
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Dim 11 Avr 2010 - 19:58
Bravo, tu viens de réinventer le code pas propre. Il est évidemment toujours possible de programmer sans indentation et en utilisant des raccourcis ridicules, mais c'est une très mauvaise habitude à prendre.
Pour ce qui est des commentaires, c'est GM qui fait pas son boulot et qui devrait les supprimer.
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Dim 11 Avr 2010 - 22:20
Je sais, sur de vrai langage je le fait normalement, sous GM pas le choix pour avoir un truc potable
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Dim 11 Avr 2010 - 22:57
Wargamer a écrit:
Je sais, sur de vrai langage je le fait normalement, sous GM pas le choix pour avoir un truc potable
Faut pas virer fou non plus avec ça. 100ko c'est quoi de nos jours, rien. J'aime bien mieux programmer de quoi qui est bien indenté. Cependant, il serait peut-être intéressant de programmer un logiciel qui prend en entré un fichier gmk et renvoie en sortie un fichier gmk avec tout tes optimisations syntaxiques. Comme cela, avant la distribution du jeu tu le passe dans ce logiciel pour "l'optimiser".
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Lun 12 Avr 2010 - 13:07
1 sec de chargment à chaque lancement ca parait en fin de ligne croit moi :fou: évidament si ton gmk fait moins de 1mo ca risque de pas servir énormément
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Lun 12 Avr 2010 - 18:44
Wargamer a écrit:
1 sec de chargment à chaque lancement ca parait en fin de ligne croit moi :fou: évidament si ton gmk fait moins de 1mo ca risque de pas servir énormément
Décide de jouer une seconde avant 1 seconde c'est rien
Super-Mouton *Excellent utilisateur*
Messages : 4916 Localisation : Cyberworld Projet Actuel :
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Lun 12 Avr 2010 - 20:39
D'accord, 1 seconde de chargement pour devoir se casser la tête à programmer pas comme il faut et prendre de mauvaises habitudes... lol
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Lun 12 Avr 2010 - 21:07
Super-Mouton a écrit:
D'accord, 1 seconde de chargement pour devoir se casser la tête à programmer pas comme il faut et prendre de mauvaises habitudes... lol
voilà! Déjà que programmer avec GM ce n'est pas la meilleur solution pour faire de quoi de rapide et optimisé.
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Lun 12 Avr 2010 - 21:58
mmmmm, c'est simpa de nous faire cette remarque, voici mes remarques ^^
- Dans le cas de projet plus gros que 1mo, généralement, ce qui allourdi, ce n'est pas nos codes, mais nos son, musiques images et autres. Dans le cas de mon Mario, même si il y a une masse de code, je ne suis pas sûr de gagner grand chose lors de la compilation, surtout qu'avec GM8, c'est déjà bien plus rapide que ce que l'on avait l'habitude.
Deplus, c'est sûr que GM est un programme fait pour ne pas trop se prendre la tête. D'un certains coté, on y perd tellement à coté du C et C++ que l'on n'est plus du tout à ça près, si l'on commence à chipoter, GM perd tout son intérêt. (pas si lent que ça GM est quand même beaucoup beaucoup plus performant que le Flash...)
Deplus peut être que l'on gagne lors du temps de la première compilation, mais il paraitrait d'après des testes déjà faitt, que coté performance in game, ça ne change rien. Bon voila, je ferme cette parenthèse, bonne journée ^^
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Mar 13 Avr 2010 - 2:24
ouai ba normal, le code reste le même, juste uq'il est plus compressé sinon ba tu serait surpris de poid de mes codes ultra pas optimisé
mais oui effectivement rationnelement c'est pas le truc à faire, mais en tnat que joueur adorateur des jeux vite lancé, sauvé une seconde me fait plaisir (surtout que maintenant le loading se fait à 95% dans la section load object et non sprite/sounds)
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Mar 13 Avr 2010 - 5:41
Wargamer a écrit:
(surtout que maintenant le loading se fait à 95% dans la section load object et non sprite/sounds)
D'où tires-tu cette information?
blendman Utilisateur confirmé: Rang **
Messages : 433 Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Mar 13 Avr 2010 - 12:30
yop
Personnellement, toutes les techniques pour alléger le temps de chargement entre les rooms m'intéressent .
Je pense surtout aux temps de chargement de sources externes (images, bg...), mais aussi à celles pour charger des maps via un fichier externe.
Par exemple, pour un chargement de map externes, comme avec une fonction :
Mes fichiers de map (txt) font environ 50 à 100 ko. Ils ajoutent entre 200 et 500 objets sur la map et mes temps de chargement avec GM8 par map vont de 3 4 secondes à plus de 10 secondes.
Donc si vous avez une technique pour alléger ça, je suis preneur . J'y réfléchis de mon coté.
J'ai remarqué que bizarrement Gm chargeait beaucoup plus vite une room interne (sur laquelle on a placé les éléments depuis GM), qu'une room externe, soit un fichier txt qui serait du genre :
Code:
ID = instance_create(3506, 2564, objdecor); with (ID) {actions, script...}; ID = instance_create(3650, 279, objdecor); with (ID) {actions, script...}; ID = instance_create(258, 2884, objdecor); with (ID) {actions, script...}; etc...
Surtout lorsque j'ai entre 300 et 500 lignes du mêmes genre dans mon fichier texte .
Lorsque je charge une map avec cette technique, ça mets jusqu'à 10 secondes pour la charger, alors que si je mets 500 objets sur ma room (les mêmes objets), le chargement de room est quasi-immédiat
Sinon, niveau optimisation du code, j'utilise cette technique, je ne sais pas si c'est bien, mais ça me fait écrire beaucoup moins de lignes de gml : je remplace les fonctions de gm par un script. Par exemple, j'ai créé les scripts (ou fonctions):
Vu que j'utilise des ressources externes pour presque tous mes objets, je me demandais si c'était une bonne technique et si ça n'allongeait pas le temps de chargement des maps aussi ?
Un autre avantage étant de pouvoir basculer de gm6.1/gm7 à gm8 très facilement en changeant juste quelques scripts (car ces fonctions ont changé entre gm6/7 et gm8), et revenir si besoin à gm6/7 grâce à LGM.
Donc, tout technique qui permettrait de réduire tous les temps de chargement (au lancement du jeu, entre les rooms...) m'intéressent au plus haut point .
Dernière édition par blendman le Mar 13 Avr 2010 - 17:52, édité 2 fois
bibi675 Utilisateur confirmé: Rang *****
Messages : 2456 Localisation : Oise Projet Actuel : Jeu par navigateur original
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Mar 13 Avr 2010 - 12:31
Moi je sais pas pourquoi vous vous excitez comme ça, un jeu comme celui de Topaze (bien gras en ressources ), me prend environ 5 secondes de chargement (je trouve ça supportable) et c'était juste un peu plus avec mon vieux PC, alors pourquoi prendre de vieilles habitudes de code si c'est pour gagner un dixième de seconde ?
Preuve :
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
Sujet: Re: Réduction de poid super sans plomb sans mayonaise Mar 13 Avr 2010 - 16:17
le 95% je parle de la gestion des ressource, presque pas de sprite, juste du code sinon jamais testé le truc de topaze
Contenu sponsorisé
Sujet: Re: Réduction de poid super sans plomb sans mayonaise