NEWS         TESTS         INTERVIEWS         DOSSIERS         GALLERY 3D         3D SITES
 Q&A XITH3D,
Amos Wenger, Equipe de Xith3D
Feb . 2007
 

 

"Tous types de jeux peuvent être réalisés avec Xith3D ! Il est très facile, de par la nature orientée objet de Xith3D, de travailler sur des jeux réseaux ou des jeux de simulations (qui demandent une simulation physique lourde). Au niveau des applets, la technologie JOGLAppletLauncher permet d'avoir des applets (intégrée à une page web) avec l'accélération 3D intégrée. C'est un des domaines où Java a les moyens de battre le Flash..."

< Xith3D en action

   
Q1 Quelles sont les raison qui vous ont poussées à contribuer au projet Xith3D ?
A1 J'ai toujours été intéressé par le développement de jeux vidéos. Après avoir testé différents "game maker" 2D sous Windows, je me suis mis au C++/OpenGL. Mais je n'étais pas satisfait par le langage... Puis j'ai découvert Java. Repartir en OpenGL pur (JOGL/LWJGL) ne me disait pas trop, j'ai demandé conseils à un développeur d'Oddlabs (les créateurs de "Tribal Trouble" et de la librairie LWJGL), qui m'a conseillé de considérer des alternatives viables comme jME (Java Monkey Engine) et Xith3D. Après avoir testé jME, je n'étais pas convaincu, j'ai donc fait un essai avec Xith3D. J'ai tout de suite aimé la librairie et depuis je ne l'ai plus quitté !
Après, pourquoi n'être pas resté simple utilisateur ? C'est le propre des projets open-source, il s'agit souvent d'une sorte d'échange, on reçoit énormément (dans ce cas, un moteur de jeu 3D de qualité professionnelle) et on donne un peu (corrections de bugs, ajout de fonctionnalités, support technique). Comme je l'ai mentionné, j'aime l'architecture de Xith3D et j'avais quelques idées pour les fonctionnalités de haut niveau (en gros, faciliter le plus possible la vie du développeur moyen, et permettre le développement rapide, par ex. pour le prototypage), j'ai donc commencé à participer.
   
Q2 Comment se déroule le développement d'un projet Open Source, comment sont partagés les rôles ?
A2 Pour ce qui est de Xith3D, la majorité du développement se règle sur le forum public disponible sur notre site web : http://www.xith.org/ et quand une collaboration plus étroite est nécessaire entre les développeurs, nous communiquons par messagerie instantanée (Jabber).
Le développement est plus ou moins "user-driven" (conduit par les utilisateurs). A la base d'un besoin, soit la personne concernée implémente (=code) la fonctionnalité en question, soit nous (les développeurs les plus impliqués) le faisons directement. C'est souvent le cas. Dernièrement, un nouveau venu désirait pouvoir activer l'Anti-aliasing (anti-aliage, permet d'avoir une image plus "lisse", moins "pixellisée") dans une application Xith3D. Après une courte phase d'étude pour déterminer la meilleure manière de l'intégrer au projet, cette option fût ajoutée, seulement 5 jours après la demande de l'utilisateur...
Les rôles ne sont pas réellement "distribués", la répartition se fait naturellement en fonction des compétences et des motivations de chacun. Par exemple, Marvin Froehlich a commencé à contribuer en Juin 2006. Depuis il a fait beaucoup de "réorganisation" (refactoring), et d'optimisation, on peut dire qu'il s'est spécialisé dans le bas niveau (proche du matériel). D'autres, disposant de moins de temps, se contentent de guider les nouveaux-venus (newbies), ou écrivent des classes utilitaires pour faciliter le développement.
   
Q3 Il existe déjà quelques projets de moteurs en Java, pourquoi Xith3D ?
A3 A l'origine, Xith3D a été créé par David Yazel, pour son jeu, Magicosm. On peut dire qu'il est "né de la frustration des développeurs avec Java3D". En effet, Java3D a souffert de plusieurs problèmes de licencement, et a été "abandonné" par Sun pendant un moment. Malheureusement, David Yazel a décidé d'arrêter là le développement de Xith3D. C'est William Denniss et Yuri Vl. Gushchin qui ont continué à maintenir le projet. Après quoi il y eut une période où le moteur n'a pas vraiment évolué, puis depuis l'arrivée de Marvin, les utilisateurs et les contributions se font croissante.
En dehors du "c'est mieux car c'est moi qui le fait", il y a maintenant un certain attachement quasi "sentimental" à Xith3D. On n'abandonne pas comme ça 2-3 ans de sa vie de développeur !
Je pense qu'on peut dire que nous sommes très ouverts aux contributions extérieures, et le moteur est entièrement open-source, ce qui n'est pas *réellement* le cas par exemple, de jMonkeyEngine (rappelons que NCSoft, qui a employé les deux développeurs principaux, a déclaré "retenir les meilleures fonctionnalités pour eux", ce qui est bien "normal", mais pas très libre..).
   
Q4 Quels sont les axes de développement, quand prévoyez-vous une RC 1 ?
A4 Nous avons trois types de versions (releases) de Xith3D comme on peut le constater sur notre site : les "cooker" (littéralement : fourneau), où les fonctionnalités expérimentales sont mises en tests, les "beta" qui sortent régulièrement, déjà très stables mais non finale, et enfin les versions "stable", recommandée pour un usage en entreprise par exemple.
La dernière Stable en date est la 0.8.0, nous venons de geler la branche 0.9.0 (=plus d'ajout de nouvelles fonctionnalités ni de changement d'interfaces, corrections de bugs uniquement) et développons activement la prochaine branche qui donnera nous l'espérons la 1.0.0 finale. En fait de "RC1", sortira une 1.0.0-beta1. Cependant nous ne pouvons donner de date pour l'instant. Bien que le moteur soit déjà très performant, très stable et aie beaucoup de fonctionnalités, nous ne nous donnons jamais de "date limite". Les sorties viennent quand c'est prêt !
Pour ce qui est de la version 1.0.0 finale, les principaux axes de développement sont premièrement, encore plus de stabilité et de performances, et surtout l'interaction entre le "scenegraph" (librairie graphique) et des moteurs de simulation physiques (comme JOODE), un nouveau code de Terrain (avec de nombreuses optimisations pour permettre des décors plus riches et plus réalistes, donc plus beaux!), plusieurs outils graphiques pour aider au développement (visualisateur et "assembleur" de modèles 3D, interface pour construire facilement des assemblages d'objets physiques, par exemple des personnages, éditeurs d'Interface Utilisateur en temps réel) et au débuggage (ex : "watchers", qui affichent des valeurs directement dans l'écran du jeu, et permettent de les modifier en temps réel pour ajuster le game-play, permet de développer bien plus rapidement), ainsi que des fonctionnalités plus avancées, comme par exemple un éditeur de Shaders.
   
Q5 Les perfo sont un élément crucial : peut-on charger des scènes lourdes (>1 million de poly) ?
A5 Oui. En plus des très grands progrès qui ont été fait depuis environ un an et demi, ces derniers temps, nous travaillons énormément sur l'efficacité des algorithmes de culling et de rendu, du format de stockage des données, minimisation des appels OpenGL afin de "booster" au maximum les performances de Xith3D. La limite du nombres de polygones est plutôt déterminée par la quantité de mémoire vive et la puissance de la carte graphique que par le moteur de jeu.
Aussi, tout dépend du format de stockage des données. Ainsi, une "map" Quake 3 sera affichée dans Xith3D de manière beaucoup plus efficaces qu'un simple modèle de Terrain de ~260000 polys au format Wavefront OBJ exporté directement depuis Blender3D.. Nous travaillons aussi sur un nouveau code de Terrain qui permettrait d'avoir un mesh multi-résolution en fonction du point de vue, permettant d'avoir des scènes extrêmement détaillées et réalistes.
   
Q6   Collada devient un format de fichier relativement standard dans le domaine de la 3D temps réel, supportez-vous ce format et ses attributs (ColladaFX) ?
A6  Absolument, nous avons été le premier moteur 3D open-source en Java à supporter le format COLLADA. Le format de shaders ColladaFX sera probablement implémenté prochainement. Nous supportons également le format d'animation squelettale Cal3D, ce qui nous permet avec l'outil graphique de modélisation et d'animation Blender3D d'avoir un "pipeline" de création de jeux vidéos entièrement open-source, et en même temps viable pour le commercial
(note : Xith3D est sous BSD, Cal3D sous LGPL et Blender sous GPL cependant vous n'avez nul besoin de modifier le code de Blender donc le contenu produit avec Blender est tout à fait utilisable dans des projets commerciaux).
   
Q7 Peut on faire avec Xith3D un jeu online ou un serious game (simulateur) ?
A7 Bien sûr, tous types de jeux peuvent être réalisés avec Xith3D. Il est très facile, de par la nature orientée objet de Xith3D, de travailler sur des jeux réseaux ou des jeux de simulations (qui demandent une simulation physique lourde). Si les utilisateurs sont intéressés, nous pourrions envisager de supporter l'API réseau JavaGameNetworking. Au niveau des applets, la technologie JOGLAppletLauncher permet d'avoir des applets (intégrée à une page web) avec l'accélération 3D intégrée. C'est un des domaines où Java a les moyens de battre le Flash... Pour ce qui est de la physique, je travaille en ce moment sur XPAL : "Xith3D Physic Abstraction Layer" qui permet d'utiliser facilement n'importe quelle librairie physique avec Xith3D.
(Note : seul JOODE, pour l'instant, est implémenté, mais rien ne vous empêche d'ajouter le support ODEJava, par exemple)
   
Q8 Parmi toutes les fonctionnalités de Xith3D, quelles sont les plus originales et les plus puissantes ?
A8

Xith3D est le seul moteur 3D à proposer autant d'abstraction : parmi JOGL+AWT, JOGL+SWING, JOGL+SWT, LWJGL, LWJGL+SWT (références : http://jogl.dev.java.net/ , http://www.lwjgl.org/ , http://www.eclipse.org/swt/) les possibilités sont nombreuses Un de nos utilisateurs travaille par exemple sur des plugins Eclipse utilisant Xith3D.
Parmi les autres points forts, nous avons par exemple une API d'interface utilisateur (HUD) puissante, de nombreux chargeurs de modèles 3D (3DS, ASE, OBJ, Cal3D, COLLADA, MD2, BSP), beaucoup de classes utilitaires pour toutes les tâches des programmeurs de jeu, et, mais ce n'est pas vraiment une "fonctionnalité", Xith3D dispose maintenant d'une communauté de développeurs très active et qui grandit rapidement (nous avons environ un nouvel utilisateur par jour).

   
   
 
  Search on 3d-test with Google
      A PROPOS DE 3D-TEST            INFORMATIONS LEGALES               LINKS              TRANSLATE WITH GOOGLE
 
© 2001-2007 3d-test, Panorama of web 3D technologies, 3d-test is edited by Westimages Realtime 3D Solution Provider