Voici encore un projet à la con irréalisable mais qui me fait rêver. Sickle (faucille) serait un clone de Hammer (marteau) en mieux. Pour ceux qui l'ignorent, Hammer est le petit programme de mapping utilisé pour créer des maps pour Half-Life, et par extension CounterStrike (on parle ici de Half Life première génération hein, n'allons pas trop vite). Donc en gros Sickle devrait respecter ce cahier des charges :
- OpenSource, cross platform et multiluingue. Impose donc d'utiliser des librairies permettant ceci. (Pourquoi pas Gtk+, Ogre3d et CEGUI (quoiqu'on pourrait peut-être se passer de CEGUI avec GTK+))
- Permettrait d'éditer des maps pour tous les jeux, via un système de plugins. Dans un premier temps, que le programme soit capable d'éditer des maps au format .map pour Half-Life (maps en 3D), dans un second temps, qu'il puisse éditer les maps de teeworlds (maps en 2D), et enfin par la suite implémenter un système de plugins pour gérer les autres jeux. Chaque jeu demanderait donc des menus, des fonctions... spécifiques.
- Interface simple, intuitive (un utilisateur qui lance le programme pour la première fois doit pouvoir se démerder sans tuto, sans doc) et entièrement configurable (menus bougeables). Système d'onglets pour les différentes maps en édition.
Pourquoi faire ça ?
- Il n'existe aucun équivalent qui respecte ce cahier des charges, ou du moins qui soit libre, multiplateforme et multiluingue.
- Serait une très bonne base pour ceux qui veulent se lancer dans la création de jeux vidéos, avoir un level editor tout prêt serait une peine en moins. Les développeurs n'auraient donc plus à créer un éditeur entier, mais juste un plugin pour Sickle.
- Un intérêt plus personnel : m'apprendrait à mener un projet sur la durée et en équipe.
Dans un premier temps ...
Voici ce qu'il faudrait faire je suppose dans un premier temps.
- Obtenir une interface Gtk avec un viewport Ogre3d
- Obtenir plusieurs viewports Ogre3d redimensionnables
- Pouvoir déplacer la caméra dans chacun des viewports
- Menu de préférences, permettant de choisir les touches permettant de diriger la caméra etc
- Créer des viewports 2D (quelle librairie utiliser ?) affichant ce que l'on voit en 3D. (vues faciales, latérales, et de haut)
- Gestion des zooms, des déplacements sur les viewports 2D, gestion de la scrollbar
- Pouvoir créer un cube
- Redimensionner un objet, le déplacer, le faire tourner, le déformer
- Pouvoir créer des cylindres, des cônes, et quelques formes géométriques de base...
- Outil de découpage des objets
- Outils carve (creuser)
- Vertex tool (outil de modification des objets vertex par vertex)
- Exportation/Importation en .map, vérification de la compatibilité avec Hammer
- Charger des sprites
- Gestion des groupes d'objets
- Gestion des annulations, du copier/coller, du drag & drop (par exemple pour glisser des objets d'un onglet, d'une fenêtre à une autre)
- Charger des textures à partir d'un .wad (fichier de texture pour Half-Life)
- Gestion poussée des textures sur une surface (décalage, rotation, étirement, répétition)
- Gestion de la texture sky
- Chargement d'un fichier .fgd (fichier de mapping propre à chaque mod de Half-Life), positionnement des entités sur la map
- Gestion des entités
- What else ?
Le développement de l'éditeur pour teeworlds pourrait se faire en parallèle, voire avant celui de Half-life. Un éditeur de textures .wad pourrait être intégré au programme.
C'est donc l'idée folle qui me trotte dans la tête ces temps-ci, si vous trouvez que c'est une bonne idée, que c'est complètement con, si ça existe déjà ou quoi que ce soit, vous pouvez me faire part de votre avis... Je completerait peut-être avec la liste des premières choses à faire pour un level éditor pour teeworlds.
Commentaires
Il n'y a aucun commentaire pour le moment