Alléger son jeu avec Game Maker
CBNA : http://lecbna.org
Mon
site : http://www.bibi26.power-heberg.com
Version Pdf : Cliquez Ici
Niveau :
Initié, contient des astuces basiques
(mais souvent
oubliées) pour alléger son jeu.
Les images …..…..…..…..…..…..…..…..…..…..…..…..…..… p3
Sons/Musiques …..…..…..…..…..…..…..…..…..…..…..…..… p5
Des fichiers externes ..…..…..…..…..…..…..…..…..…..…..….. p7
Autres trucs ..…..…..…..…..…..…..…..…..…..…..…..…..…... p9
-> Je n’ai
plus besoin de mon image/son/musique/background
-> Outside
Room
-> Compresser son jeu
-> Ai-je vraiment besoin de Game Maker 6 ?
Il existe plusieurs formats d’image qui permet de rendre celle-ci plus légère, les trois plus populaires sont : JPG, GIF et PNG. Il est recommandé d’utiliser un des deux derniers formats pour alléger la taille de l’exécutable, mais pour aussi, réduire la mémoire vive qui est souvent oublié.
Pour cela, nous allons étudier une image bien précise :
L’image va être testée avec 4 formats : JPG, GIF, PNG et le BMP, qui est certes très lourd, mais il est le format natif de Game Maker. Pour convertir une image, il ne suffit pas de le renommer, en effet, il faut modifier sa structure, il faut prendre un logiciel comme Gimp et lors de l’enregistrement, changez la valeur du menu déroulant « Type », il y a une grande variété, mais peu sont réellement efficace.
Avec Game Maker 6 et une pièce vide (320 x 240), le gm6 fait 4ko, l’exécutable 1,07 Mo et prend environ 11,7mo de mémoire vive. Ce qui est déjà énorme, regardons un peu le comparatif :
Format de l’image |
Taille de l’image |
Taille du gm6 |
Taille de l’exe |
Mémoire vive |
JPG |
10,1ko |
41ko |
1,10mo |
12,1mo |
GIF
|
11,2ko |
18ko |
1,08mo |
12,1mo |
PNG
|
10,4ko |
18ko |
1,07mo |
12,1mo |
BMP
|
64,5ko |
40ko |
1,10mo |
12,1mo |
En ce qui concerne la taille de l’image, c’est le BMP qui s’avère être le plus lourd (sans surprise), le PNG et le GIF ont la plus petite taille de gm6 et étonnamment, c’est le JPG qui fait le plus alourdir le gm6, il faut retenir qu’il est très mal supporté par Game Maker, il est donc à éviter, particulièrement pour les grandes images où la différence se verra à l’œil nue. Le PNG offre la taille d’exécutable la plus petite et les quatre formats prennent le même montant de mémoire vive.
Il reste deux finalistes :
Le GIF et le PNG,
le gagnant est le PNG, mais pourquoi ? Le PNG est
celui qui offre la meilleure qualité d’image, le PNG
supporte 16 millions de couleurs tandis que le GIF supporte 256 couleurs. Avec cette image, les
quatre
formats n’ont pas détérioré (à vue d’œil bien sûr) l’image.
Pour
bien voir la
différence entre les quatre formats, prenons cette image :
Image
réduite, taille
originale : 320 x 240
Format de l’image |
Taille de l’image |
Taille du gm6 |
Taille de l’exe |
Mémoire vive |
JPG |
23,4ko |
139ko |
1,21mo |
12,6mo |
GIF
|
37,3ko |
46ko |
1,11mo |
12,6mo |
PNG
|
33,2ko |
46ko |
1,10mo |
12,6mo |
BMP
|
225ko |
105ko |
1,17mo |
12,6mo |
Cette fois-ci, il y a eu
des détériorations à vue d’œil. C’est tout de même dommage que Game Maker supporte mal le JPG
car c’est lui qui offre le meilleur taux de compression.
Comme pour les images,
nous allons étudier deux formats : WAV
et MP3 avec différents taux de débits.
Pour cela, vous avez
besoin de :
-LAME
Installez Audacity et mettez la dll de LAME (seulement la dll) dans le dossier d’Audacity. Démarrez-le et cliquez sur Edit -> Preferences et sur l’onglet « File Formats », cliquez sur le bouton « Find Library » et sélectionnez la dll de LAME.
Pour ce test, je vais prendre un son inclus à Game Maker (applause.wav), vous pouvez choisir le votre.
Pour changer
la qualité d’un MP3 :
Cliquez sur Edit -> Preferences
et sur l’onglet « File Formats », après, il ne vous reste
qu’à
changer le débit (Bit Rate), plus que la valeur est basse, plus que le
fichier
est léger mais en contrepartie, de moins bonne qualité.
Pour le WAV :
Cliquez
sur Edit -> Preferences et sur
l’onglet « File Formats », dans « Uncompressed
Export Format », vous pouvez choisir entre :
-WAV
(Microsoft 16 bit PCM)
-WAV
(Microsoft 32 bit float)
-WAV
(Microsoft 4 bit IMA ADPCM)
-WAV
(Microsoft 4 bit MS ADPCM)
-WAV
(Microsoft 8 bit PCM)
Notez que
changer le débit n’a aucune influence sur le résultat final d’un
fichier WAV.
Pour
sauvegarder votre son/musique :
WAV :
Cliquez sur File ->
Export as WAV…
MP3 :
Cliquez
sur File ->
Export as MP3… Une fois que vous aurez
sauvegardé le MP3, il y aura un petit
formulaire qui s’affichera (Titre,
Artiste etc…), il n’est pas nécessaire de le remplir.
Avec Game Maker 6 et une pièce vide (320 x 240), le gm6 fait 4ko,
l’exécutable 1,07
Mo et prend environ 11,7mo de mémoire vive.
Regardons
un peu les résultats à la page suivante.
Format du son |
Taille du son |
Taille du gm6 |
Taille de l’exe |
Mémoire vive |
Microsoft 16 bit PCM |
36,1ko |
26ko |
1,08mo |
12mo |
Microsoft 32 bit float |
72,2ko |
Incompatible |
Incompatible |
Incompatible |
Microsoft 4 bit IMA ADPCM |
9,39ko |
13ko |
1,07mo |
12mo |
Microsoft 4 bit MS ADPCM |
9,33ko |
13ko |
1,07mo |
12mo |
Microsoft 8 bit PCM |
18ko |
18ko |
1,08mo |
12mo |
Généralement,
un son, c’est court (quelques secondes), pourquoi alors mettre une très
grande
qualité ? Le 32 bit float est tout
simplement hors jeu
vu sa lourdeur et son incompatibilité avec Game
Maker. Le 16 bit est inutile pour du son. Les finalistes sont donc le 8
bit, le
4 bit IMA ADPCM et le 4 bit MS ADPCM. À
vous de choisir !
Je ne ferais pas de test pour le MP3 car les résultats vont en ordre croissant : toujours un peu plus lourd. Le MP3 est plus léger en espace disque, mais il est beaucoup plus lourd en mémoire vive (environ 12,6mo), à vous de choisir si vous préférez sacrifier de l’espace disque ou de la mémoire vive.
Lorsque vous distribuez votre jeu, tout est inclut dans l’exécutable, cependant, Game Maker est loin d’avoir la meilleure compression, il est donc bon d’utiliser des images (ou des sons) externes. Certes, votre jeu aura plus d’un fichier, mais ce sera à votre avantage car ce sera beaucoup plus léger.
Petit exemple avec une image :
Image
non-externe - JPG
Taille de
l’image :
10,1ko
Taille du gm6 : 41ko
Taille de
l’exécutable :
1,10mo
Mémoire
vive :
12,1mo
Dans le dossier où vous avez mis votre jeu, faites un dossier du nom « images » (pour faire plus propre) et mettez votre image dans le dossier crée. En externe, sachez que Game Maker ne supporte que les images BMP, JPG (qui est mieux supporté par Game Maker en externe) et GIF.
Faites un objet contrôleur, dans Create, insérez ce code :
ImageNom = sprite_add("Image",0,true,transparent,true,true,0,0);
ImageNom est à remplacer par un nom que vous donné à votre image.
"Image" est à
remplacer par l’endroit où est placée votre image (vous devez laisser
les
guillemets), comme l’image est dans le dossier « images » qui
se
trouve dans le répertoire du jeu, vous tapez "images/nomdevotreimage.blabla".
Transparent est à
remplacer par true (pour mettre l’image
transparent)
ou à false.
Le reste
n’est pas nécessaire à changer. Dans Draw,
insérez ce code :
draw_sprite(ImageNom,0,x,y);
ImageNom est en remplacer par le nom de l’image que vous avez donné et la valeur x et y doivent être changer pour la position de l’image.
Le résultat pour ce test est :
Image externe
- JPG
Taille de
l’image :
10,1ko
Taille du gm6 : 5ko
Taille de
l’exécutable :
1,06mo +
10,3ko (image)
Mémoire
vive :
12,1mo
Même chose
pour les backgrounds :
Create : BackgroundNom =
background_add(fname,transparent,smooth,preload);
Draw : draw_background(BackgroundNom,x,y);
Il est aussi
possible de faire la même chose avec le son et la musique :
Create : SonNom = sound_add(“sons/son.blabla”,kind,preload);
SonNom
est à remplacer par le nom que vous
donnez au son.
“Sons/son.blabla” est à remplacer par
l’endroit où est placée votre son (vous devez laisser les guillemets),
comme
l’image est dans le dossier « sons » qui se trouve dans le
répertoire
du jeu, vous tapez "sons/son.blabla".
Kind est à
remplacer par 0 (normal), 1 (background), 2 (3d) ou 3
(mmplayer).
Preload est à
remplacer par true (pour charger le son ou
la musique
dès le début) ou à false.
Après, pour
jouer le son ou la musique, il vous suffit d’ajouter sound_play(SonNom); dans l’event que vous voulez,
sauf Draw auquel cela ne
fonctionnera pas.
Dans ce cas,
libérez-le ! Si vous utilisez – par exemple – une image pour un
niveau et
qu’après, vous ne l’utilisez plus du reste du jeu, ajoutez donc :
Image :
sprite_delete(nomdusprite);
Son/Musique :
sound_delete(nomduson);
Background :
background_delete(nomdubackground);
Cela
aura
pour effet de libérer la mémoire utilisé pour
l’image/son/musique/background.
------------------------------------------------------------------------------------------
Il est possible que dans l’une de vos pièces, un objet puisse « sortir » de celle-ci sans changer de pièce. Par exemple, si vous tirez une balle d’un fusil et que la balle sort de la pièce, elle ne se détruira pas et elle continuera son chemin qui ne se finira jamais. Après plusieurs balles, les effets négatifs commencent à se sentir, il suffit de rajouter une petite option qui dit que si les balles sortent de la pièce, elles sont détruites.
Pour cela,
dans l’objet de votre balle : Add
Event -> Other
->
Outside Room
Après, allez dans l’onglet main1, prenez l’icône de poubelle pour ainsi détruire la balle lorsqu’elle quitte la pièce.
-------------------------------------------------------------------------------------------
Lorsque vous
avez finit votre jeu, pensez à le compresser pour gagner quelques
kilo-octets.
Si vous souhaitez compresser votre jeu mais que vous n’avez pas de
logiciels
comme Winrar ou Winzip,
Windows XP inclut un compresseur basique
mais
fonctionnel. Cliquez-droit sur le dossier/fichier que vous voulez
compresser -> Envoyer vers -> Dossier
compressé.
Un fichier
sera crée, c’est ce fichier que vous distribuerez sur internet,
l’avantage est que le jeu est plus rapide à télécharger, un atout non
négligeable pour tout le monde, et surtout, pour nos amis possesseurs
de 56k.
-------------------------------------------------------------------------------------------
Ai-je
vraiment besoin de Game Maker 6 ?
Posez-vous
cette question avant de commencer votre jeu, avez-vous besoin des
nouvelles
fonctions de Game Maker 6 ? Dans le cas
contraire,
tournez-vous vers des versions plus anciennes qui sont plus légères. Un
bon
compromis est la version 5.3A de Game
Maker qui est performante et plus légère, bien entendu, il y a quelques
fonctions en moins.
Pour le test,
nous allons utiliser une pièce vide de 320 x 240.
Version |
Taille du gm6/gmd |
Taille de l’exe |
Taille de l’exe (zip) |
Mémoire vive |
5.3A (gmd) |
4ko |
1,43mo |
674ko |
7,3mo |
6.x (gm6) |
4ko |
1,06mo |
966ko |
11,7mo |