Alléger son jeu avec Game Maker

Par bibi26, pour Le CBNA

 

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.

 

Pour Game Maker 6.x

 

 

 

Table des matières

 

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 ?

 

 

 

Les images

 

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.

 

 

Sons/Musiques

 

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 :

-Audacity

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

 

 

WAV

 

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.

 

 

 

Des fichiers externes

 

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.

 

 

 

Autres trucs

 

Je n’ai plus besoin de mon image/son/musique/background

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.

 

------------------------------------------------------------------------------------------

 

Outside Room

 

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.

 

-------------------------------------------------------------------------------------------

 

Compresser son jeu

 

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