Si vous jouez régulièrement à des jeux sur YoYo Games, vous noterez que certains prennent vraiment longtemps à charger, alors que d'autres démarrent immédiatement. Et cela semble assez indépendant de la taille du jeu. Regardez par exemple un jeu comme Lost Snowmen. La taille du jeu est de 25 Mo. Mais une fois téléchargé, il démarre dans les secondes qui suivent. (Et si vous y jouez plusieurs fois via Instant Play, il n'est éléchargé qu'une fois.)
Donc, comment eux et les autres font? Si vous regardez la taille de l'executable, il ne fait que 2,6 Mo. La plupart de ce .exe est la partie opératoire. Le jeu lui-même ne contient que les bases. Tous les sprites/images/musiques/sons sont chargés pendant que le jeu tourne. Et ceci est exactement comment réussir à obtenir un chargement rapide. Gardez la taille de l'executable petite.
Vous devez peut-être vous demander pourquoi charger à la volée est plus rapide que de mettre les ressources dans le jeu en lui-même. Ceci peut sembler illogique. La raison est que les ressources incluses doivent petre extraites de l'executable, décodées, décompressées, et interprétées. Tout ceci prend beaucoup de temps.
Mais comment diminuer la taille du fichier? Bien, premièrement, vous devriez garder vos sprites et backgrounds petits. N'utilisez pas d'espace non nécessaire autour des sprites. Pensez attentivement sur le nombre de sous-images d'animation que vos sprites devraient avoir. Réalisez que la taille de l'image originelle n'est pas une bonne indication pour la taille de l'image dans el fichier. Game Maker ne stocke pas les fichiers originaux. Il les enregistre toutes dans un format sans perte. Le fait que vous ajoutiez des images Jpeg ou Bmp ne change rien. C'est la taille finale de l'image qui compte. Aussi, faites attention lorque vous avez trop et de trop grandes polices. N'incluez que le nombre requis de symboles dans vos polices. La musique et les sons sont aussi une raison. Pensez au sample rate de votre musique et réduisez-le si possible. Je vois des jeux qui incluent des fichiers mp3 de beaucoup de Mo alors que ce n'est pas forcément requis.
Si vous avez VRAIMENT besoin de gros sprites/images/musiques/sons, vous devriez les charger durant le jeu. Pour ceci, vous pouvez utiliser les fonctions:
("Code"): sprite_replace(ind,fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig) background_replace(ind,fname,transparent,smooth,preload) sound_replace(index,fname,kind,preload)
|
Vous pouvez trouver leur description dans la section Changing Resources du fichier d'aide de GM. Il y a aussi des actions pour ces fonctions. Vous ajoutez les ressources dans le jeu avec une image ou son très petit, voir même non-existant. Vous créez un objet de contrôle et le placez dans la première room. Dans un event Room Start ou Create, appelez les fonctions et urilisez les actions pour charger toutes les ressources requises via les ressources crées précedemment dans le fichier (NdT: Vous pouvez aussi tout bonnement les créer ces ressources, sans utiliser de bases mises dans le fichier, via les fonctions sound_create, background_create, etc...), mais n'oubliez pas de mettre les fichiers requis dans le jeu. Si ce chargement prend toujours un peu de temps, vous pouvez changer cette première room en une room de chargement, ou vous montrez une petite animation ou un peu d'aide et même jouer un peu de musique( que vous ne pouvez pas charger depuis un fichier externe, bien sur.)
Les polices peuvent aussi être changées à la volée durant le jeu avec cette fonction:
("Code"): font_replace(ind,name,size,bold,italic,first,last)
|
Pour utiliser ceci, creez une police très petite dans le jeu (par exemple avec une seule lettre), et dans la room de chargement, remplacez-là par la nouvelle, plus grande police.
Mais bien sur il y a un problème. Quand vous utilisez des fichiers externes, les autres peuvent les voir et les ""voler"". Ceci peut toujours arriver. Il existe une facon d'éviter ceci. Vous pouvez actuellement stocker vos fichiers cryptés, et les décrypter avant de les charger. Vous aurez cependant besoin d'une DLL pour ceci, du fait que l'encodage en GML serait bien trop lent. Mais ceci est vraiment pour les utilsateurs expérimentés, et je n'en parlerais plus.
J'éspère que vous avez appris qu'avec seulement un travail limité, vous pouvez faire charger vos jeux très vite.
|