Aujourd’hui je vais vous parler d’un tout nouveau truc pour Kowy Maker dont j’ai eu l’idée récemment
Avec le passage à Java, un problème s’est opposé à moi (« Mer il et fou » me direz-vous) : La gestion des ressources graphiques pour le jeu.
En effet, sous Flash, j’avais accès aux fichiers SWF, bien pratique du fait qu’on pouvait mettre du code dedans et aussi gérer le « point d’origine » de l’image (c’est à dire le point aux coordonnées [0;0], ce qui permet de positionner le SWF comme on veut). Or, avec Java je n’avais plus accès à tout cela, du fait que j’utilise principalement le format PNG pour les images, et j’avais besoin de ce « point d’origine » pour bien positionner les « tiles » (les briques qui permettront de modéliser le monde dans le jeu).
J’ai donc plusieurs solutions:
- Envoyer les infos supplémentaires sur les tiles au client via le serveur: Cela permettrait un certain contrôle sur les infos, mais peu pratique dans le sens où cela provoquerait une quantité de données à envoyer plutôt volumineuse à long terme.
- Utiliser un fichier XML à part, qui contiendrait les infos sur chaque tile: Ca reste un solution, mais le problème se pose si on veut ajouter de nouveaux tiles, on devrait alors éditer à chaque fois ce fichier :/
- Packager la ressource graphique dans un fichier .jar contenant une classe Java gérant cette ressource: Trop lourd pour ce que je veux.
- Utiliser un format spécial pour les ressources graphiques: Ca me permet de rajouter toutes les infos voulues, en plus de permettre d’ajouter de nouveaux tiles facilement (juste en copiant-collant le fichier), mais cela inclue l’utilisation d’un logiciel fait-maison pour voir et éditer le fichier (mais le format de l’image reste le PNG, dont les données seront contenues dans le fichier)
Au final, j’ai choisi de prendre la troisième solution, elle me semble la plus logique, et ouvre pas mal de possibilités en plus sur la gestion des ressources
Ainsi, les ressources graphiques du jeu (ainsi que les maps et pas mal d’autres trucs, sauf les fichiers de config) utiliseront un format spécial pour Kowy Maker que j’ai nommé : Kowy Maker Resources File Format (sexy non?)
Les fichiers ressources du jeu auront alors l’extension .kmr (Pour « Kowy Maker Resource ») et commenceront pas un entête contenant une signature de 5 bytes définissant le type de ressource (tile, personnage, effet, etc…)
Ensuite, afin de gérer ces formats, j’ai créé « Kowy Maker – Specification », une librairie Java qui sera utilisée dans tous les softs de Kowy Maker (Client, serveur, éditeur), qui contiendra toutes les spécifications relatives à Kowy Maker: Protocole réseau pour les paquets, formats des fichiers ressources, quelques classes Java utilisées par tout Kowy Maker, voire plus si je trouve d’autres trucs à mettre dedans.
Le code source des spécifications se trouveront dans le repo Github: https://github.com/KowyMaker/Specification
PS: Je rappelle aussi que vous pouvez trouver les builds « snapshot » du projet (ainsi que tous mes autres projets), sur mon Jenkins: http://ci.kokaelkiwi.tk:8080
Cordialement,
Koka El Kiwi


