Parmi ces applications, trois d'entre elles ont besoin de vous. Je m'explique : le développement a principalement été mené par deux personnes (Pablo Martin et Guillaume Libersat (/me)) et aujourd'hui, nous devons ralentir le développement à cause de nos contraintes professionnelles. Ceci ne signifie cependant absolument pas que nous abandonnons nos bébés, bien au contraire. Ces logiciels sont le fruit d'un peu moins de deux ans de développement, c'est dire que nous y avons investi du temps et de la sueur :-).
Je poste donc aujourd'hui ici pour à la fois vous présenter ces applications mais surtout pour faire un appel à contributeurs et/ou mainteneur pendant cette période de vache maigre.
Le but de cet ensemble d'applications est de répondre à un manque d'outils libres de haut niveau pour la création de jeux temps-réels (qu'ils soient "serious" ou non : visites virtuelles, jeux ludiques, VJing 3D, applications industrielles…), le tout, en équipe. Hop, petite présentation des logiciels concernés :
- CrystalArchitect (CA) est un IDE pour le développement d'applications en 3d. Il est actuellement basé sur CrystalSpace ( http://crystalspace3d.org ) mais peut fonctionner sur d'autres moteurs . CA se veut WYSIWYG et permet de travailler en collaboratif temps réel à travers le réseau. Il se base sur CAF (voir plus bas), metamodel (idem), est hautement modulaire (tout est greffon) et travaille selon une approche dirigée par les modèles (IDM). Vous pouvez aller zieuter ses captures d'écran ( http://wiki.kyanite-studios.org/doku.php?id=ca:screenshots ), son wiki ( http://wiki.kyanite-studios.org/doku.php?id=ca:start ) ou sa plate-forme de développement ( http://forge.kyanite-studios.org/projects/ca ).
- DAMN est un gestionnaire d'actifs (Assets en anglais) permettant le stockage de toutes les données d'un projet (audio, vidéo, images…). Il intègre des mécanismes de transcodage afin de fournir de manière transparente des données aux supports d'exécution (par exemple, fournir un "mesh3d" à CrystalSpace alors que le fichier d'origine est de type Blender). Il gère aussi la synchronisation : si vos artistes mettent à jour leurs fichiers, la chaîne de transcodage est automatiquement rappelée et le visuel est mis à jour au niveau de votre client (ici, CrystalArchitect). C'est donc le backend pour la gestion des données de CrystalArchitect. Développement : http://forge.kyanite-studios.org/projects/damn . Un prototype d'interface web utilisant XMPP pour le changement temps réel a aussi été développé dans le cadre du Google summer of code de cet été : http://forge.kyanite-studios.org/projects/webi .
- The Crazy Architect Framework (CAF) est notre framework de base pour CA et DAMN. Il permet de capitaliser au maximum les bases des approches (Composants + Orientés modèles) et fournit des patterns et autres joyeusetés utilisées au cours du développement. Le wiki ( http://wiki.kyanite-studios.org/doku.php?id=caf:start ) et le redmine ( http://forge.kyanite-studios.org/projects/caf ).
- Metamodel est une bibliothèque sur laquelle CAF se base. Elle permet d'obtenir les outils nécessaires pour travailler avec des méta-modèles et de les synchroniser sur le réseau. Wiki : http://wiki.kyanite-studios.org/doku.php?id=metamodel:main ; forge : http://forge.kyanite-studios.org/projects/metamodel .
Inutile de préciser que ces logiciels ne sont pas forcément évidents à prendre en main, encore moins à reprendre car ils sont principalement à l'état de prototype. Cela dit, ils sont fonctionnels et donnent déjà des résultats très encourageants dans un contexte de "laboratoire" :-)
Côté technique, ils sont tous écrits en Python (avec quelques touches de C pour faire certaines glues), se basent sur GTK pour les interfaces, réutilisent au maximum les bibliothèques existantes et sont (normalement) portables.
Question licence, ils sont tous sous GPL v3.
Dernier point, j'avais réalisé des présentations de ces applications à diverses occasions, vous pouvez trouver les diapos là : http://www.kyanite-studios.org/pages/presentations/ , ça vous éclairera peut être :-)
Tout ça pour dire que si reprendre ces projets pour les élever au rang d'alpha et beta intéresse quelqu'un, je suis prêt à consacrer du temps pour passer la main, fournir de l'aide au maximum car je pense qu'il serait vraiment dommage d'interrompre trop longtemps le développement (désynchronisation avec l'amont, etc).