❤ 0 Optimiser son jeu (De RM2000 à MV)
Vous venez de finir votre jeu. Formidable ! Plus qu'à le compresser et le proposer ! C'est chose faite. Un élan gronde, puis, plus rien. Un mois passe, puis deux. Avec trois téléchargements. Quoi, 600 MO, trop ?
Avec les ordinateurs actuels et les capacités de stockage en constante progression, on pourrait penser que le poids de son jeu n'a plus beaucoup d'importance. Cependant, pour une activité niche telle que le making, soutenue par des amateurs, ce poids est non négligeable. Pis, il affecte non seulement l'espace occupé, mais également le temps de téléchargement. S'il est trop élevé, il rebutera à coup sûr plus d'un joueur, et de potentiels sites pourraient le refuser pour privilégier d'autres jeux équivalents, mais moins gourmands. C'est la principale barrière qu'a rencontré MV à sa sortie, avec des jeux autour de 400 MO, dans le meilleur des cas, le double pour le pire.
L'objectif de ce tutoriel est donc de vous donner des clés pour trouver le meilleur équilibre possible entre le poids de votre projet et l'expérience qu'il propose, le tout en restant accessible à tous. A noter que les logiciels testés ont été utilisés sous Windows, et que vous devrez donc peut-être trouver leur équivalent pour Mac/Linux/autre. Il existe également des méthodes plus avancées pour réduire le poids d'un jeu, mais le gain d'espace n'est pas essentiel ; ce tutoriel portera donc sur les ressources graphiques et audio, et non sur l'éditeur.
1/ Réflexion sur l'utilisation des ressources
Un bon moyen d'éviter l'obésité d'un projet consiste à réfléchir dès l'ébauche du projet à sa teneur : expérience courte ou long RPG ? Cette seule question peut déjà moduler la quantité de ressources nécessaires. Une erreur courante consiste à avoir une durée de vie d'un heure ou moins, et 20 à 30 musiques dans le dossier BGM. A mon sens, il s'agit d'une erreur qui pourrait être évitée et relève plus de l'utilisation excessive des ressources. Pour donner un exemple, Blades of Justice propose une introduction de 2 minutes environ avec 5 morceaux musicaux différents. Qui plus est des thèmes longs. Résultat : les thèmes sont trop rapprochés, et au moins d'eux d'entre eux auraient pu être supprimés sans altérer l'ambiance.
Le point où je veux en venir ? Choisissez peu, mais bien. Un thème bien utilisé vaut souvent mieux que trois en patchwork. Pour un jeu court ou une démo, une musique pour l'introduction est amplement suffisant. Pour un jeu long, deux thèmes (en cas de moments contradictoires) suffisent.
Legend of Pearls : Deux exemples d'intérieur de maisons, à 10 mètres l'une de l'autre. Rien ne vous choque?
Côté graphismes, la même observation s'applique, avec un constat plus flagrant : l'hétérogénéité. RTP et RIP ne font pas forcément bon ménage. Mieux vaut se cantonner à un style défini, quitte à éditer les ressources, et les réunir dans des chipset/tileset thématiques (mappemonde, plaine, ville…). Sur RM2000/3, où la multiplicité des événements au contact/toucher du héros n'entraîne pas de lag (pas avant d'en avoir inondé la map, en tout cas), vous pouvez facilement insérer des éléments de décor courants (chaises, fenêtres, tonneaux) sur les charset et ainsi étoffer vos chipset pour des éléments plus spécifiques.
2/ Vérifier les ressources inutiles
Pour des raisons diverses, on trouve parfois des ressources non utilisées dans un dossier, qui prennent donc inutilement de l'espace.
Si vous avez suivi le tutoriel pour rendre votre jeu jouable sans installer les RTP, vous aurez peut-être remarqué des ressources inutilisées (par exemple, pas besoin de tous les fichiers des dossiers Title1 et 2 pour faire tourner VX Ace). Il existe plusieurs méthodes pour ajouter les fichiers nécessaires à votre dossier de jeu. Pendant le développement :
_ En général, créer une liste avec le nom des ressources et les moments d'utilisation dans le jeu reste le plus fiable, mais aussi le plus consommateur niveau temps.
_ Pour les jeux sans RTP, seuls certains fichiers systèmes sont indispensables (et non présents dans le projet de jeu) : c'est le cas de tous les fichiers .dll. Ce problème n'existe pas sur MV, qui trie automatiquement les fichiers utilisés ou non lors de la création de l'exécutable.
_ Si vous en utilisez, vous pouvez soit : a) les ajouter au fur et à mesure ; b) votre jeu est intégralement en RTP, et vous décidez de tout ajouter.
Pour cette dernière option, les façons d'éliminer les fichiers inutilisés (sans avoir pour autant de fichiers manquants) rejoignent celles des outils développés pour trier les ressources, et sont donc aussi valides pour les fichiers non RTP. Elles consistent en divers outils selon l'éditeur concerné :
_ RM2000/3 : RM Tool (inconnu, logiciel) : trie les ressources utilisées ou non utilisées pour un projet RM2000/2003. Tutoriel de Trotter ici pour éviter quelques bugs.
_ XP : Zeus Resource Checker (script) : crée une liste des ressources utilisées ou inutilisées sur les cartes et la base de données, mais pas dans les scripts. Zeus81 Ressources Scanner (script) : pareil que le précédent, les accents sont pris en charge.
XP-VX : Yeyinde's RM Data Checker (logiciel) : fait le tri des ressources utilisées, non utilisées et manquantes d'un projet.
_ VX : Jet's Integrity Checker (script) : repère s'il y a des erreurs (notamment des fichiers manquants)
_ VX Ace : Hime's Resource Checker (script) : vérifie la base de données et les événements, mais pas les scripts hors ceux présents de base.
_ MV : Depuis la version 1.2, l'éditeur a une option pour enlever les fichiers obsolètes. Cet outil peut cependant s'avérer imprécis, vu qu'il retire également des ressources utilisées dans les plugins (peut être pallié en créant temporairement un dossier à part avec lesdites ressources avant de lancer l'option de tri). Si votre jeu n'est prévu que pour Windows, Linux ou Mac, certaines extensions de fichiers peuvent être retirées : m4a (audio), .mp4 (movie).
Si ces outils sont bien pratiques, rien ne remplace cependant la vérification manuelle, en testant son projet pour vérifier les ressources manquantes. Enlever les plugins inutilisés pour MV gagne de l'espace, et nettoyer la base de données en ne conservant que les éléments utilisés peut également aider à gagner quelques MO.
Enlever les ressources inutilisées constitue souvent le gain d'espace le plus important, quand la vérification n'a pas eu lieu.
Ils prennent une place minime, mais les fichiers Thumbs.db (un fichier caché créé automatiquement par Windows) peuvent également être supprimés.
3/ Gagner de l'espace sur ses fichiers
1/ L'extension
Vous avez maintenant des clés pour rationaliser les quantités de fichiers selon l'envergure de votre projet, et enlever les fichiers inutilisés. Il reste donc cette dernière partie, sur les fichiers en eux-mêmes. Et deux aspects de ceux-ci peuvent affecter le poids de votre jeu : l'extension, et le taux de compression.
Pour l'extension, la question est plutôt quel fichier utiliser ?
Certaines s'avèrent en effet plus adaptées que d'autres, et pas forcément de moindre qualité.
Pour les musiques, il arrive (de plus en plus fréquemment) qu'elles soient au format .wav, certes d'excellente qualité, mais qui plombe le projet par sa taille, son seul avantage étant de pouvoir boucler parfaitement sur n'importe quel RM (le format .mid le fait aussi, mais avec une qualité bien moindre à cause de la nature du fichier). Pour un morceau de 30-40 MO, multiplié par 20-30 morceaux, pas étonnant donc que certains projets puissent rebuter de prime abord. Pour RM2000/3, mieux vaut se cantonner au .mp3 si vous ne souhaitez pas tenter le .mid. Le format n'est certes pas idéal, mais la qualité sonore reste correcte.
Pour les suivants, RM supporte le format .ogg, meilleur en tout point que le .mp3 pour la qualité du son et la taille. De plus, celui-ci peut être édité pour boucler (pris en charge à partir de VX) à l'aide de logiciel externes (lien vers le tutoriel ici).
Pour les effets sonores, le format .wav est le seul lu par RM2000/3, et peut être utilisé sur les versions suivantes, la différence de poids n'étant pas flagrante à cause du temps très court des pistes.
Pour les fichiers visuels, le .png est dans tous les cas supérieur au .jpeg à cause de son meilleur taux de compression et sa gestion de la transparence, et plus universel que le .bmp. Pour RM2000/3, vous disposez également du format .xyz, mais son taux de compression est plus faible (il est principalement utilisé comme protection des ressources, n'étant lisible et importable/exportable pratiquement que par RM2000/3).
Pour les vidéos, la question est plus complexe et peut amener à l'ajout de codecs. A savoir qu'il peut s'agir d'une ressource très gourmande, et dont les méthodes d'édition sont relativement peu connues. Le choix d'utiliser les extensions .avi ou .mpeg dépendra principalement de la durée de la vidéo : .avi pour les plus courtes, .mpeg pour les plus longues (> 30 secondes).
2/ La compression
Le choix du format le plus adapté influera autant sur la qualité que les possibilités de compression de votre jeu. Pour celles-ci, pas question de réduire vos images à une bouillie de pixels et vos sons à du bruit, mais bien d'éditer pour avoir un rendu satisfaisant pour un jeu proposé gratuitement.
Pour le son, je ne recommande personnellement pas Audacity : bien qu'ergonomique et complet pour éditer un fichier, il s'avère peu pratique pour gérer la compression de masse. Pour une cette dernière, vous pouvez opter pour Fre :ac, qui propose la plupart des formats audio nativement (hors .wav), la gestion de qualité du rendu, et qui propose des options intéressantes, notamment supprimer le fichier source automatiquement ou l'emplacement à la racine du fichier original. Dans la pratique, un flux de sortie à 128, voire 96 kbts[/color] est largement suffisant selon la musique de départ et la qualité du fichier original. Pour un fichier .ogg, vous pouvez donc configurer l'encodeur à une qualité de 3, et être plus prudent pour le .mp3 avec un 4.
La compression sonore fait gagner environ 30 % du poids total des fichiers sons (si vous utilisez des mp3/ogg au départ), et monte facilement jusqu'à 90 % si vous partez de fichiers .wav.
Important : Pour le format mp3, RPG Maker 2000 et 2003 ne lisent pas le VBR (variable bitrate). Faites attention à ne pas l'utiliser pour l'encodage.
L'économie d'espace s'avère moins flagrante pour les images, moins gourmandes. En moyenne, vous pouvez gagner 10/15 % d'espace en utilisant un outil comme PNG Optimizer, qui n'altère pas la qualité de l'image mais crée une palette des couleurs indexées dans l'image. Son apport pour les ressources RM2000/2003 est donc moindre, les images faisant déjà l'objet d'une limitation de couleurs (l'outil peut cependant supprimer d'autres données comme les textes, ou les couleurs inutiles).
Cependant, une astuce vous permet un gain d'espace intéressant pour des fichiers sans transparence (backgrounds, transitions de type photos...) : en convertissant vos images .png en .jpeg (par exemple avec ce site), vous réduisez d'environ 10 fois la taille de votre fichier. Pour les visionner en jeu sur MV, il suffit de renommer l'extention en .png (le fichier garde ses caractéristiques de .jpeg). L'image ne sera juste pas visible dans l'éditeur, mais s'affichera en jeu.
Pour les vidéos en revanche, l'utilisation d'un convertisseur adapté peut diviser jusqu'à quatre fois le poids d'une vidéo, en gardant une qualité correcte. Le principal problème étant que RM2000/3 ne lit pas tous les codecs de Avi/MPEG.
Cinepak Avi : recommandé pour des vidéos courtes, avec beaucoup d'images fixes (compatible sur différentes plateformes).
A utiliser dans l'invite de commande :
Citation: ffmpeg -i <input_video> -c:v cinepak -c:a adpcm_ms -vf scale=320:240 <output_video> |
Exemple :
Citation: ffmpeg -i <C:Documents and SettingsLogo.avi> -c:v cinepak -c:a adpcm_ms -vf scale=320:240 <C:Documents and SettingsLogosmaller.avi> |
En cas de vidéo longue avec beaucoup de mouvements, vous pouvez lui préférer mpeg1 Muxed, avec un convertisseur comme CCE (pour Windows XP) et la configuration suivante :
Image tirée de rpgmaker.net
Pour lire des formats encodés avec MPEG2, un convertisseur comme XMedia Recode convertit une large palette de formats vidéos (compatible sur Windows 7 et suivants).
Pour les Maker suivants, un outil plus récent comme Any Video Converter fonctionne. A noter que VLC peut aussi faire l'affaire pour convertir des vidéos, vu qu'il en lit certains. Pour MV, à noter que celui-ci ne lit que les extentions .webm (sur ordinateur) et .mp4 (sur Android).
Ces outils de compression s'appliquent encore plus pour ceux qui souhaitent exporter leur jeu créé avec MV sur Android, puisque l'espace maximum alloué par Google Play est de 100 MO. La plupart des articles consultés recommandent tinyrpg, un compresseur d'images en ligne, qui utilise le même principe (réduire l'image à une palette de couleurs indexées pour économiser de la place), mais limité à 20 images par compression. Pour les fichiers audio, vous devrez diminuer la qualité plus drastiquement (1 sur Fre:ac, le minimum sur Audacity pour les deux formats).
Ecrit le 27 mars 2020.
Mis à jour le 3 mars 2021.
Sources
Ce tutoriel part de plusieurs sources, librement paraphrasées ou reprises.
_ "Gestion et format des ressources", article, GameDev Alliance, dernière mise à jour le 17/4/2020 [consulté le 24/06/2020], https://wiki.gamedevalliance.fr/rpgmaker/formats/
_ Exhydra, « [XP/VX/VXA] Project Optimization (Revision 2.5; Upd-07/04/15) », tutoriel, RMRK, dernière mise à jour le 4/7/2015 [consulté le 17/3/2020], http://rmrk.net/index.php?topic=43125.0
_ Imperium, topic, Oniromancie, écrit le 20/6/2020 [consulté le 24/6/2020], http://www.rpg-maker.fr/index.php?page=forum&id=28306&deb=1&ancre=1180641#rech.
_ LordBlueRouge, « Video Request Thread: How to Bring Video into RM2K/2K3 », topic d'entraide, RPG Maker.net , initié le 25/1/2018 [consulté le 17/3/2020], https://rpgmaker.net/forums/topics/23647/?post=844044#post844044
_ kennysaurs, « Minimizing Game Deployment Size ? », topic d'entraide, RPG Maker.web, initié le 24/10/2015 [consulté le 17/3/2020], https://forums.rpgmakerweb.com/index.php?threads/minimizing-game-deployment-file-size.46695/
_ ~Z~, « Shrinking RPG Maker Game from 528 to Under 100MB », article, Nim Design and Development, 19/2/2019 [consulté le 17/3/2020], https://www.nimdesignanddevelopment.com/single-post/2019/02/19/Shrinking-Rpgmaker-Game-from-528MB-to-Under-100MB-Google-Plays-Limit
Autres articles intéressants :
_ RishigangiX, « Tips for Size Reduction/Compression of your Project », article, RPG Maker.net 10/5/2016 [consulté le 17/3/2020], https://rpgmaker.net/forums/topics/20754/
|