Dans le cadre du projet TUER et dans le contexte actuel (mon infographiste m'a rapidement lâché), j'ai besoin d'un outil RAD (
Rapid Application Development) appliqué au domaine des
First Person Shooters (jeux de tir en vue subjective). Cet outil doit être suffisamment simple pour pouvoir être utilisé aussi bien par un
game designer qu'un développeur. Il doit également être interopérable afin de s'intégrer dans l'environnement logiciel d'un infographiste. Cependant, mon logiciel ne s'adresse pas spécifiquement à des artistes car ils disposent déjà d'outils bien plus poussés. J'ai choisi d'exporter à terme les cartes dans les formats DAE (Collada) et OBJ (WaveFront) pour qu'ils puissent les améliorer avec leurs modeleurs favoris (Blender, Art Of Illusion, Maya, Milkshape, 3DSMax, Virtools, Cinema4D, Bryce4D...). Ainsi, JFPSM se concentre sur la conception rapide de maquettes de FPS.
L'outil est rudimentaire pour le moment. Il se situe à mi-chemin entre FPSCreator (mais sans les bogues) et Duke Nukem Build (dont un collègue m'a parlé). Cependant, JFPSM sera à ma connaissance le seul outil du genre compatible avec 4 familles de système d'exploitation (vous me direz que ce n'est pas bien difficile avec Java). JFPSM n'est pas seulement un éditeur de cartes, il contiendra une sorte de méta-moteur. Concrètement, vous pourrez générer un jeu facilement déployable et exécutable. Je proposerai 2 modes d'installation :
- Java Webstart
- IzPack
Pour les
applets, je préfère attendre qu'elles gagnent en stabilité.
Java Webstart s'avère adapté pour de petites maquettes, pour des projets pas encore finalisés à destination de non joueurs (bêta-testeurs pour l'essentiel) alors qu'
IzPack permet un déploiement beaucoup plus propre et plus professionnel afin que le jeu soit bien intégré pour que le joueur final dispose clairement d'un raccourci pour (re)lancer le jeu et d'un autre pour le désinstaller (on peut aussi rajouter un raccourci vers la notice, etc...).
Le méta-moteur s'interfacera avec un moteur 3D existant. Pour le moment, je ne supporterai qu'
Ardor3D. Les développeurs de Xith3D, 3DzzD et JMonkeyEngine sont invités à implémenter les interfaces nécessaires si le projet les intéresse surtout qu'une bonne partie du boulot est déjà faite pour JMonkeyEngine 2.
JFPSM est organisé de manière arborescente. Un projet contient un ensemble d'étages (
floor set) et un ensemble de tuiles (
tile set). Une tuile gère un motif à appliquer à un voxel. Chaque tuile se voit associer des textures, des ensembles de coordonnées, des caractérisques de matériel (en rapport avec la lumière) et un code couleur qui l'identifie dans la visualisation 2D. Dans cette visualisation, un étage comporte plusieurs couches :
- la
container map qui gère les éléments de délimitation (murs, portes, téléporteurs ...)
- la
light map qui gère l'éclairage
- la
content map qui gère les objets, la faune et la flore
- les
path maps qui gère les chemins notamment pour les patrouilles d'ennemis
Toujours dans cette visualisation, les codes couleur des tuiles apparaissent dans les cartes énumérées ci-dessus. Je prévois aussi une visualisation 3D, je me demande si je vais implémenter la modification de la géométrie directement dans cette visualisation, ce serait intuitif à utiliser, souvenez-vous de Duke Nukem Build.
Les projets JFPSM sont au format ZIP (je voulais utiliser GZIP mais j'ai eu un souci d'implémentation qui était déjà réglé avec ZIP). Le ZIP contient un fichier "project.xml" qui contient l'essentiel des informations et un répertoire "floorset" avec l'ensemble des cartes. L'implémentation n'étant pas terminée, il me reste plein de choses à ajouter.
Les jeux sont composés de plusieurs JAR et soit d'un fichier JNLP (pour Java Webstart) soit d'un fichier XML (pour IzPack).
J'ai débuté la programmation de ce logiciel il y a environ deux semaines. Il est sous licence GNU GPL. Le code source sera mis sur mon dépôt SVN dans la branche pré-bêta de TUER avec la maquette d'Ardor3D dans les prochains jours. Je rappelle une chose importante : j'ai évoqué FPS Creator mais
je ne cherche en aucun cas à concurrencer des logiciels professionnels maintenus par une équipe de programmeurs à plein temps; c'est encore une fois
un modeste sous-projet avec des objectifs réalisables. Une bonne partie des traitements les plus complexes nécessitera seulement un petit
refactoring du code source des systèmes de pré-calcul des géométries des cartes de TUER. Je n'ai utilisé ni Eclipse RCP ni Netbeans RCP car j'estime que le projet est trop petit pour vraiment en tirer partie. Toutefois, je changerai peut-être d'avis pour éviter de réimplémenter certaines fonctionnalités qui sont déjà présentes dans ces
frameworks.
P.S : Je remercie
Etoile-Blog pour la publicité.