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 :
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).
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).
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).
A mon avis, une autre piste pour la 3D dans Flash est représentée par Alchemy et sa possibilité de porter des librairies C/C++ sous la machine virtuelle AS3.
Quand on voit ce que ce ça donne avec le moteur 3D du premier Quake : http://www.silvergames.com/game/quake-flash/
Il y a quand même de quoi refléchir. Alors certes, le rendu étant uniquement logiciel ca ne sera jamais aussi beau et puissant qu’Unity, mais bon arriver à faire tourner un moteur 3D qui est loin d’etre ridicule à vitesse aussi élevée dans du Flash natif ca laisse augurer de bonnes choses…
P.S. : la source de la démo est ici http://github.com/mkr3142/QuakeFlash
L’analyse est bonne du point de vue des techno constatées et leur capacité a s’afficher et être exploitée par le masse market… Mais la vraie question c est de savoir que les enjeux du web 3D sont aussi fortement conditionnés par les joueurs et donc, l’industrie du games. Le même jeux (avec unity), peut être jouable sur iPhone, web,wii et Xbox (bientôt), ce quin’est pas le cas avec flash et autre…
Demain, si les 100 millions de joueurs décident d’installer leplayer unity pour suivre leur jeux sur iPhone ou ipad, celui du web sera naturellement installé…
Citons aussi la manipulation directe de pixels grâce à la balise canvas de HTML5 (voir le travail de Jacob Seidelin http://blog.nihilogic.dk/) qui permet de refaire un Doom sans WebGL.
J’allais aussi parler de Quake, mais cette fois… de Quake Live http://www.quakelive.com, le remake sublime de Quake 3 Arena en Flash qui est bien plus impressionnant qu’un parcours de golf.
N’oublions pas non plus nos ptits frenchies de chez StoneTrip avec leur moteur Shiva qui en est à la version 1.8.
Certes une techno encore jeune mais prometteuse ! ^^
@ Louis > Non non non, QuakeLive tourne avec un plugin propriétaire.
Et puisque l’on parle de Unity3D et d’acteurs français, citons l’exemple de CMune et de Paradise Paintball qui vient de sortir sa 3ème version.
Il y a aussi Virtools (enfin 3DVIA Virtools) et le noveau 3DVIA Studio/Player.
: voir la fin de la présentation pour le coté “online”
Ma préférence va a 3DVIA: http://www.3dvia.com/
On y trouve tout ce qu’il faut pour l’interativité; Warehouse, Modeleur, Game engine, Scenes prédéfinies, hosting des applis et tout ca gratuit.
bonjour,
A mon avis, les plugins sont sans avenir. Mis à part Flash, aucun n’a jamais réussi à percer.
HTML 5 et WebGL ont un potentiel énorme, comme le démontre le portage de Quake II par Google:
http://googlewebtoolkit.blogspot.com/2010/04/look-ma-no-plugin.html
C’est bluffant. Certe, cela ne peut rivaliser avec les consoles de dernière génération mais pour un usage “Web 3D”, cette solution est le bon compromis.
Reste à voir quels outils de creation seront proposés. Aujourd’hui, il faut être un spécialiste et la productivité n’est pas au rendez-vous pour un usage commercial.
Le soft (Unity, Shiva, Virtools…) qui laissera tomber son format propriétaire au profit d’HTML 5/WebGL remportera la mise.
Pour le moment il est hors de question de comparer ce que l’on peut faire avec Unity et ce qui sort avec la techno WebGL…
Je pense moi aussi que WebGL sera le standard de demain en ce qui concerne la 3D embarquée dans un browser. Reste à savoir quand sera ce “demain”.
Je pense qu’il faudra encore compter quelques années, mais quand on voit les supporteurs de cette nouvelle techno il est dur de douter de sa pérennité.
Et la croissance des mondes virtuels va dans le même sens, alors à quand un monde virtuel tournant avec WebGL? Moi je vote pour les deux prochaines années, et vous ?
@fredolegrand: Le WebGL a clairement un énorme potentiel, mais en attendant, il y a plugins et plugins … Le plugin de Unity3d est minuscule et s’installe sans les droits administrateurs.
L’appli web que je développe, assemblive.com, qui mixe du flash, du unity et du web “classique” pour organiser des évènements de groupes,
doit fonctionner dans des environnements contraints type corporate, et ce n’est jamais le plugin unity qui pose problème …
Et l’hypothèse évoquée dans le post est en bonne voie de réalisation pour unity – ils viennent de lever plus de 5M$ auprès de Séquoia, et inondent le marché avec leur version ‘indie’, gratuite, et sans aucune royalties.
Malgré la taille de la boite qui l’a sorti et son faible taux de déploiement, qui m’a amené à le suivre de loin mais à l’ignorer pour l’instant, il semblerait que Unity qoit en très bonne voie pour s’imposer.
“S’imposer” pour un plug-in Web 3D, ça reste modeste : atteindre le taux de déploiement du plug-in Shockwave 3D correspond pour moi à “s’imposer”.
2 choses m’ont amenées à penser ça :
– aux U.S., énorme buzz chez les développeurs de jeu online, tout le monde s’y met.
– certains sites de jeu en ligne proposent maintenant des jeux Unity.
Leur levée de fonds récente me poussent encore en ce sens.
Techniquement, Unity est un cran au-dessus de tous. C’est souvent le langage de script sous-jacent qui a fait l’essor d’une techno. JS est beaucoup trop léger pour construire de grosses applis, Unity a fait le choix du C#, et ça, vu le taux de pénétration du C#/Java-like chez les développeurs (particulièrement US), c’est un sacré point fort.
Je tiens à préciser qu’il y a une autre alternative gratuite (“frenchie” elle aussi!), de plus OpenSource, en plein développement actif: il s’agit de OpenSpace 3D, développé par I-Maginer (société Nantaise à laquelle j’appartient). Nous sommes encore en alpha, mais l’éditeur s’enrichit rapidement au fur des releases (mensuelles pour le moment).
N’hésitez pas à l’essayer!
Virtools n’est vraiment pas super! Pas de communauté, peux de tutos. J’ai migré vers Unity et je suis vraiment pas déçu. Même la version studio n’a pas su faire la différence.