Le point sur la 3D dans votre navigateur

Faire de la 3D dans un navigateur est un sacré challenge, tout simplement car ils n’avaient pas été prévus pour ça. Il n’empêche, la pression de la part des éditeurs de jeux en ligne est toujours plus forte. De ce fait, une course à la montre à donc été entamée depuis quelques temps pour combler cette lacune (lacune ?) et faire tourner de la 3D dans nos navigateurs.

Plusieurs technologies sont ainsi en concurrence et le choix n’est pas évident car on peut difficilement les comparer. J’ai déjà eu de nombreuses occasions de vous en parler, mais je souhaite au travers de ce billet faire le point avec vous et éventuellement en apprendre sur des technologies et produits que je ne connais pas (encore). Il ne s’agit pas ici de dresser une liste exhaustive des technologies mais plutôt de voir où en sont les trois plus prometteuses.

Il y a tout d’abord Flash associé à la librairie Papervision3D qui permet de faire des choses tout à fait intéressantes. Le principal avantage est que Flash est installé sur plus de 95% des ordinateurs. Illustration avec OGCOpen, une simulation de golf :

Simulation de golf avec Papervision3D

Simulation de golf avec Papervision3D

La communauté est très active autour de ce projet mais il y a plusieurs problèmes :

  • Le coeur du moteur 3D de Papervision est en cours de réécriture depuis 1 an (nom de code : PapervisionX) et le chantier n’est pas terminé ;
  • Adobe travail de son côté à l’intégration de la 3D dans Flash ;
  • Il n’existe pas d’environnement de production dédié au jeu (même dans Flash Builder 4).

Hypothèse optimiste : Adobe décide d’investir officiellement dans le projet (pour l’intégrer dans les futures versions) et lance un environnement de production dédié dans Flash Builder 5.

Il y a ensuite Unity3D, une technologie propriétaire dont les principaux avantages sont les performances et la maturité de l’environnement de production (la prochaine version 3 s’annonce encore plus impressionnante).

Le rendu 3D de Unity 3

Le rendu 3D dans Unity

Problèmes :

  • La technologie est propriétaire ;
  • Le taux de pénétration du Unity Web Player est quasi insignifiant ;
  • L’éditeur est de petite taille donc se pose à la question de la pérennité.

Hypothèse optimiste : Unity est racheté ou financé par un gros éditeur et atteint la taille critique pour s’imposer sur le marché.

Citons enfin WebGL, le standard promulgué par le Khronos Group (cf. WebGL, le nouveau standard de la 3D sur le web) qui progresse à grand pas. En témoigne CopperLicht, un moteur Javascript exploitant WebGL et proposant à la fois de très bonne performances et un environnement de production dédié (cf. Copperlicht: A new WebGL 3D Engine).

Le moteur 3D de CopperLicht en action

Le moteur 3D de CopperLicht en action

WebGL semble donc être un bon compromis entre les deux technologies citées plus haut en combinant performance, ouverture et au moins un éditeur d’un environnement de production. Gros problème : WebGL n’est supporté que par les navigateurs de dernière génération (par exemple Webkit sur Mac).

Vous l’aurez donc compris, le choix n’est pas simple et il faut bien peser le pour et le contre avant de miser sur une technologie : Performances, maturité, viabilité, ouverture… La clé de cette course étant la domination d’un marché qui s’annonce très juteux : Les Rich Internet Games.

Merci de mettre en commentaire toute information complémentaire sur ces technologies ou sur des alternatives (ou même sur un benchmark).

Pourquoi HTML5 et Flash ne peuvent être comparés

Ces dernières semaine j’ai vu passer un certain nombre d’articles qui annonçait la mort prochaine de Flash avec l’avènement de HTML 5. Je dois bien avouer ne pas du tout comprendre cette “polémique” dans la mesure où ce sont deux technologies qui ne peuvent pas réellement être comparées. A la limite nous pourrions peut-être comparer les usages que l’on peut en faire (au travers des applications) mais là encore c’est très limité.

Avant toute chose remettons tout de suite les choses à leur place : Flash est aujourd’hui déployé sur près de 99% des ordinateurs, alors que HTML5 n’est supporté que par les navigateurs de dernière génération qui représentent à peine 10% du marché (et encore…). Vous pourriez me dire que les parts de marché de ces fameux navigateurs progressent vite, mais il faudra sûrement une décennie avant que HTML5 devienne un standard de facto (pénétration supérieure à 90%). Il est donc important de préciser que de toute façon ce débat n’a pas lieu d’être pour une simple raison arithmétique.

Mais revenons aux usages : Flash est à la base prévu pour faire tourner des animations vectorielles mais au fil du temps nous lui avons trouvé toutes sortes d’usages comme les jeux, les applications, la 3D ou encore les players multimédia (musique et vidéo). Nous avons récemment vu l’émergence du SublimeVideo Player, un lecteur vidéo en HTML 5 qui semble très bien fonctionner, mais est-ce une raison pour annoncer dès maintenant le remplacement des Flash player ? Non pas réellement, d’une part pour des raisons de performance (cf. Does HTML5 Really Beat Flash? The Surprising Results of New Tests) et d’autre part car les players de dernières générations ne font pas que jouer de la vidéo, ils peuvent aussi rajouter des sous-titres, de la publicité contextualisée et même adapter la résolution au débit. Et c’est bien sur ce dernier point que les placers vidéo en HTML5 ont de gros progrès à faire, surtout comparés à des technologies comme Flash ou Silverlight qui sont capables de faire de l’adaptive streaming mais aussi du smooth streaming (cf. Sorry, HTML5 Crowd, Flash Ain’t Dead Yet).

De même, HTML5 va apporter beaucoup de choses pour les applications en ligne avec le stockage local des données… mais est-il bien réaliste d’envisager des applications de retouche photo / audio / vidéo (comme la suite Aviary) en HTML5 ? Signalons aussi que Flash n’est que le dernier maillon d’une longue chaine : Flex propose en effet un environnement de développement tout à fait mûr pour développer et maintenir des applications métier.

Il y a aussi le cas particulier des applications mobiles (cf. The Future of Web Content – HTML5, Flash & Mobile Apps) où HTML5 peut apporter des choses intéressantes… tout en présentant de grosses limitations par rapport aux applications natives. Mais là encore, une solution de Rich Mobile Application comme AIR va mettre tout le monde d’accord.

Autre élément important à prendre en compte, derrière Flash il y a aussi tout un écosystème d’agences, de SSII, de développeurs indépendants, d’organismes de formation et de clients qui ne sont pas prêt à abandonner Flash pour relever l’exploit technique de l’HTML 5. Même s’il s’agit d’une technologie propriétaire, la Flash Platform a su faire ses preuves. En définitif je pense qu’il n’est pas faux de dire que ce débat n’existe que par la volonté de 2 ou 3 blogueurs / journalistes en mal de sujet fort et de visites facilement gagnées avec des titres accrocheurs.

Néanmoins je pense que pour aborder cette question et faire un choix en toute objectivité il y a deux critères essentiels :

  • Le ROI (quelle solution est la plus viable en terme de coûts de développement / intégration / maintenance ?) ;
  • L’expérience utilisateur que vous aller proposer à vos visiteurs (qui se moquent éperdument de la technologie employée).

Le pire dans ce débat à la noix c’est que vous n’êtes et ne serez jamais obligé de choisir entre ces deux technologies : Rien nous vous empêche d’utiliser les deux pour optimiser le ROI et l’expérience. Sur ce point là je rejoins tout à fiat l’avis de Dan Mall (Flash and Standards: The Cold War of the Web).

Fin du débat.