Interview : haXe supportera Molehill (Flash Player 11 3D)

 

Q&A  haXe,
une solution pour développer des contenus multi-plateformes se met à la 3D !

 

“Des personnes de la communauté haXe travaillent actuellement à créer une API 3D commune pour Flash+WebGL, ce qui permettra de cibler les deux plateformes en écrivant une seule fois le code.”

Q1. En quelques mots peux tu nous présenter haXe ?
haXe est un langage de programmation objet haut niveau. Il offre un mix entre un langage strictement typé (comme Java) et de nombreuses features "dynamiques" ce qui fait qu'il est adaptable à de très nombreux usages.
haXe a été développé pour pouvoir fonctionner sur plusieurs "plateformes". Au contraire des autres langages, il n'a pas de machine virtuelle dédiée, mais peut compiler vers Javascript, Flash (bytecode .swf ou AS3), PHP, NekoVM et C++
Cela en fait un langage que l'on peut utiliser autant côté client (Javascript, Flash) que coté serveur (PHP/NekoVM avec accès MySQL et fichiers, etc) ou sur des "devices" (iPhone, Android, etc.) via C++.

Q2. Tu as posté sur ton blog une démo "HxSL Studio" permettant d'appliquer à la volé un Shader sur un objet 3D. Quelles sont les technologies utilisées ?
Il y a deux parties : une partie Flash qui utilises l'API Molehill (accélération 3D hardware) qui serra très bientôt disponible avec le lecteur Flash 11 (actuellement en beta), et une partie Javascript pour la saisie du code.
Le deux sont écrites en haXe et les sources sont disponibles.

Q3. A en croire cette démo, haXe supporte(ra) molehill (3D accélérée introduite avec Flash Player 11) ?
Oui tout a fait, l'ajout de nouvelles API dans haXe est assez facile.
L'essentiel du travail a été de développer un langage de shader nommé HxSL (similaire à GLSL ou PixelBender) mais directement intégré/compilé dans le code source haXe. Cela a été rendu possible par le fait que haXe dispose d'un puissant système de macros.

Q4. haXe est multiplateforme, peut-on imaginer que haXe permette également de générer des contenus interactifs en WebGL ?
Il y a déjà plusieurs démos qui existent en haXe/WebGL, dont un port du moteur flash "away3d".
Des personnes de la communauté haXe travaillent actuellement à créer une API 3D commune pour Flash+WebGL, ce qui permettra de cibler les deux plateformes en écrivant une seule fois le code.

Q5. Sans rentrer "dans la guerre de clans", as tu un avis Ă  propos de ces deux technologies "web3D" ?
Professionnellement, je suis toujours intéressé pour que le contenu que je créé soit accessible pour le plus de personnes. Le fait que Flash soit largement installé alors que WebGL n'est pas encore bien déployé (et pas sur IE en particulier) donne un avantage à Flash.
Ensuite, je n'en fait pas une religion : le fait que haXe puisse cibler Ă  la fois Flash et JS permet justement de choisir la bonne technologie en fonction de l'envie ou de ce que l'on veut faire.

Q6. Est-il possible de générer des contenus pour les mobiles avec HaXe ?
Oui, avec l'ajout de la plateforme C++ il est désormais possible de cibler iOS/Android/WebOS/etc. Il y a de nombreuses démos et plusieurs jeux haXe ont déjà été publiés sur les "app stores".

Q7. HaXe est un moteur développé par Motion Twin. Pourquoi est-il distribué en Open Source à l'heure où certaines entreprises considèrent ce types d'outils comme des "secrets de fabrication"?
MotionTwin vends des jeux à des joueurs, ce n'est pas notre rôle de vendre des logiciels professionnels. Commercialiser haXe n'était donc pas une option.
Nous utilisons aussi de nombreux logiciels open source (Linux/MySQL/etc.) et il était donc logique que nous contribuions en retour à la communauté OS.
Et pour finir, haXe de par sa communauté active s'est beaucoup développé ces dernières années : les retours nous ont permit d'améliorer le langage, et le support de PHP et de C++ et tout le travail sur les mobiles n'a pas été fait par Motion-Twin par exemple.
Cela ouvre de nouvelles possibilités.

Q8. La plupart des jeux web sont des casual games en 2D et il existe un fossé entre ces jeux et les AAA. Penses-tu qu'avec Flash3D ou WebGL les jeux online utiliseront de plus en plus la 3D ? Les budgets consacrés aux jeux web peuvent-ils supporter des contenus 3D?
La 3D en soit n'est pas une technologie plus coûteuse que la 2D. C'est même plutôt le contraire : dés que l'on parle d'un jeu riche en animations, la production 3D est plus efficace que la 2D.
Ensuite, c'est une question de gout et d'adaptation du gameplay : certains types de jeux se prĂŞtent bien Ă  la 3D, d'autres non.

Q9. Petite question indiscrète : Motion Twin a un forme juridique singulière puisque elle est structurée sous forme de coopérative. Dans la pratique, peux-tu nous dire quels sont les avantages de ce montage et ses inconvénients ?
Motion-Twin est une SARL SCOP : toutes les personnes qui y travaillent possèdent des parts de la société en quantité égales et nous votons toutes les décisions de façon démocratique. Cela veut dire aussi que nous n'avons pas de hiérarchie (donc pas de patron), et pas d'actionnaires.
Les avantages principaux sont que chacun peut avoir son mot à dire sur le décisions que nous prenons (comme le choix des nouveaux jeux ou des technologies) ce qui permet une grande implication personnelle.
L'inconvénient c'est que parfois cela fait de longues discussions, mais comme on dit souvent la démocratie est le pire des systèmes, à l'exception de tous les autres.

Q10. Autre chose ?
Je pense que toutes les personnes qui s’intéressent à la 3D sur le Web et mobile devraient regarder haXe de près : c'est ici que les choses les plus innovantes se créent en ce moment !