AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-40%
Le deal à ne pas rater :
-40% sur le Pack Gaming Mario PDP Manette filaire + Casque filaire ...
29.99 € 49.99 €
Voir le deal

 

 Réduction de poid super sans plomb sans mayonaise

Aller en bas 
+3
CoDeAVE
M@d_Doc
Wargamer
7 participants
AuteurMessage
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyDim 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é.

_________________
Réduction de poid super sans plomb sans mayonaise Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyDim 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.

_________________
Réduction de poid super sans plomb sans mayonaise Control-commentTous les icones de gm utilisables sur le cbna ICI  Réduction de poid super sans plomb sans mayonaise Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyDim 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

_________________
Réduction de poid super sans plomb sans mayonaise Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE


Messages : 408
Localisation : Québec

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyDim 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".
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyLun 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

_________________
Réduction de poid super sans plomb sans mayonaise Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE


Messages : 408
Localisation : Québec

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyLun 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 rouge 1 seconde c'est rien
Revenir en haut Aller en bas
Super-Mouton
*Excellent utilisateur*
Super-Mouton


Messages : 4916
Localisation : Cyberworld
Projet Actuel : Sad

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyLun 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

_________________
Hey là tabarnak lâche ma sig sacha >=|
Réduction de poid super sans plomb sans mayonaise Balrogko6
Réduction de poid super sans plomb sans mayonaise Supermouton
Revenir en haut Aller en bas
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE


Messages : 408
Localisation : Québec

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyLun 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é.
Revenir en haut Aller en bas
Topaze22
*Excellent utilisateur*
Topaze22


Messages : 6213
Localisation : Sur la Lune
Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyLun 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 ^^

_________________
Topique pour le Projet Hello Mario en préparation.
Sorti du topique lorsque la première démo sera disponible.
Réduction de poid super sans plomb sans mayonaise Projet13
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyMar 13 Avr 2010 - 2:24

ouai ba normal, le code reste le même, juste uq'il est plus compressé Razz
sinon ba tu serait surpris de poid de mes codes ultra pas optimisé noel

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 happy1 (surtout que maintenant le loading se fait à 95% dans la section load object et non sprite/sounds)

_________________
Réduction de poid super sans plomb sans mayonaise Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE


Messages : 408
Localisation : Québec

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyMar 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?
Revenir en haut Aller en bas
blendman
Utilisateur confirmé: Rang **
blendman


Messages : 433
Projet Actuel : Crée des jeux, logiciels, BD, Romans et nouvelles.

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyMar 13 Avr 2010 - 12:30

yop

Personnellement, toutes les techniques pour alléger le temps de chargement entre les rooms m'intéressent Very Happy.

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 :
Code:

fname='map1.txt';
fileid = file_text_open_read(fname);
execute_file(fname);
file_text_close(fileid);
io_clear();

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 Smile. 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 Sad.

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):
Code:

s_a();
s_r();

Ces scripts remplacent :
s_a
Code:

sprite_add(argument0,image_index,0,1,1,0,argument1, argument2);

s_r
Code:

sprite_replace(sprite_index,argument0,image_index,1,1,argument1,argument2)

Ce qui fait qu'au lieu d'écrire pour plusieurs objets :
Code:

sprite_add(nom_du_sprite,image_index,0,1,1,0,origineX, origineX);

j'écris juste :
Code:

s_a(nom_du_sprite, origineX, origineX);

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 Smile.


Dernière édition par blendman le Mar 13 Avr 2010 - 17:52, édité 2 fois
Revenir en haut Aller en bas
http://blendman.blogspot.com/
bibi675
Utilisateur confirmé: Rang *****
bibi675


Messages : 2456
Localisation : Oise
Projet Actuel : Jeu par navigateur original

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyMar 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 noel ), 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 :

_________________
Réduction de poid super sans plomb sans mayonaise 1005394
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise EmptyMar 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 noel

_________________
Réduction de poid super sans plomb sans mayonaise Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
Contenu sponsorisé





Réduction de poid super sans plomb sans mayonaise Empty
MessageSujet: Re: Réduction de poid super sans plomb sans mayonaise   Réduction de poid super sans plomb sans mayonaise Empty

Revenir en haut Aller en bas
 
Réduction de poid super sans plomb sans mayonaise
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Poid du gmk variable
» Super Mario Bros. Super Star
» réduction de sprites
» Boucle infinie, comportement illogique, bref, pétage de plomb.
» 2 - Votre première animation

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Game Maker-
Sauter vers: