Client

PlayCanvas, la pépite cachée des éditeurs WebGL

De bons outils pour faire travailler ensemble les équipes graphiques et développement a toujours été important pour offrir une expérience numérique géniale ! À l'époque, Macromedia/Adobe Flash était un outil 2D qui réunissait artistes et…

De bons outils pour faire travailler ensemble les équipes graphiques et développement a toujours été important pour offrir une expérience numérique géniale ! À l’époque, Macromedia/Adobe Flash était un outil 2D qui réunissait artistes et développeurs, et c’est pour ça qu’il était si puissant et populaire. Plus tard, Unity et Unreal Engine ont fait de même pour la 3D. Mais ces géants sont trop lourds pour une expérience web optimisée et le workflow de build est long.

De l’autre côté, le web lui-même, avec des standards qui évoluent, est plus puissant que jamais : des animations SVG complexes ? Salut lottie. Le framework Electron, via Chromium, permet à des logiciels comme VS Code, Slack, etc. d’exister sur le web. Alors pourquoi ne pas avoir un éditeur puissant directement dans le navigateur et ciblant le web ? Voici PlayCanvas.

Pour commencer, jetons un œil à l’état de l’art des frameworks 3D :

Unity

Unity est l’un des outils les plus populaires pour les développeurs indépendants, du projet solo aux équipes AA. Sa grande force est évidemment son éditeur, qui offre aux artistes et aux développeurs un outil commun. Concernant le support WebGL, il est activé depuis un moment mais officiellement “les appareils mobiles ne sont pas supportés par Unity WebGL”. De plus, si vous avez beaucoup de code de développement spécifique au web à faire, comme vous connecter à un Learning Management System, ou simplement essayer différentes configurations pour voir comment évoluent les performances, le temps de build va vous déprimer.

https://unity3d.com/profiles/unity3d/themes/unity/images/unity/beta/alpha-beta/2020.1b-improvements.jpg

Voici donc le projet Tiny ! Malheureusement, ce n’est pas une priorité pour Unity : plus de trois ans après son annonce, il est loin d’être stable. Unity réécrit son moteur, et Tiny utilise de nouveaux paradigmes comme DOTS, donc le chemin ne sera pas simple. Personnellement, je m’éloigne du hype Unity, en attendant que tout soit connecté et fonctionne correctement.

Three.js

Three.js est là depuis un moment maintenant et c’est un gros morceau :

https://preview.redd.it/8gxlm1wd0bi61.png?width=640&crop=smart&auto=webp&s=a895553dacb241cd456e470ca51b76380662055c

Open source, porté par la communauté… génial !! Mais il manque un véritable éditeur, comme Unity. Il existe quelques outils : - comme son éditeur simple mais vous ne ferez pas un projet sérieux avec.

- AFrame, un framework pour écrire du contenu 3D en HTML pur, s’appuie sur Three.js. Il est sur la bonne voie, proposant même un éditeur mais trop limité.

GitHub - aframevr/aframe-inspector : outil d'inspection visuelle pour A-Frame. Appuyez sur  *<ctrl> + <alt> + i* sur n'importe quelle scène A-Frame.

- et enfin il existe des outils pour utiliser Unity comme level builder / éditeur et exporter les données vers three.js, par exemple UnityToThreeExporter.

Babylon.js

Babylon.js est un véritable concurrent de Three.js et est développé par Microsoft. Il va encore plus loin : c’est un framework de jeu intégrant un moteur physique, du pathfinding, etc. Et une documentation exceptionnelle !! Il existe plusieurs Éditeurs : GUI, node material, particules, sprite, texture, squelette… Malheureusement, ils ne sont pas réunis dans un seul éditeur.

Cependant, notez que la communauté est active avec deux projets : - un Éditeur réalisé avec Electron et utilisant les sous-éditeurs, bien plus avancé que celui de Three.js mais encore insuffisant pour un projet conséquent. - comme pour three.js, un exportateur Unity (officiel). - également vraiment intéressant à noter : Babylon Native.

http://editor.babylonjs.com/img/home/templates.png

PlayCanvas

PlayCanvas existe depuis un moment. Il a démarré en 2011 et le moteur est passé open source en 2014. La force de PlayCanvas, c’est son éditeur. Bien qu’il soit à code fermé, de nombreuses parties ont été rendues open source : bibliothèque de composants UI, bibliothèque de graphes basée sur des nœuds… Côté tarifs, c’est gratuit pour les projets publics et des abonnements sont proposés pour les projets privés.

N’est-ce pas magnifique ? Vous pouvez avoir des scènes 3D complexes et l’éditeur reste extrêmement réactif.

L’éditeur PlayCanvas est accessible depuis n’importe quel navigateur, et tout est sauvegardé dans le cloud. Ainsi, l’éditeur PlayCanvas offre un moyen génial de partager des exemples / démos ou de demander de l’aide sur un projet : voici un exemple simple. Vous pouvez facilement forker un projet ou copier/coller des assets et des entités !

Comment l’éditeur PlayCanvas se compare-t-il à l’éditeur Unity ?

Eh bien, la première chose à noter, c’est que PlayCanvas permet la mise à jour en direct de plusieurs personnes sur la même scène !! Comme c’est basé sur le web, la collaboration est intégrée nativement. Sur une même scène, plusieurs personnes peuvent travailler sur le level design en temps réel. Tout est synchronisé, et vous disposez d’un système de contrôle de version intégré pour créer des checkpoints.

Il y a ensuite la grande différence avec la conception d’Unity. Dans Unity, une fois que vous appuyez sur Play, vous pouvez ajuster des valeurs mais elles ne seront pas sauvegardées. Dans PlayCanvas, vous êtes toujours synchronisé avec les différentes instances, donc vous pouvez tester le script de votre character controller et voir le level design se construire en temps réel par d’autres personnes sur la même scène. Cette collaboration en temps réel peut devenir délicate si certains scripts plantent ou s’il y a beaucoup de tâches en cours. Heureusement, on peut créer des branches pour travailler dessus.

Mon retour d’expérience sur l’éditeur PlayCanvas :

Après avoir utilisé PlayCanvas pendant plusieurs mois maintenant, j’ai beaucoup apprécié l’expérience. Le produit tout comme la communauté ! Bien que PlayCanvas soit une petite équipe, vous pouvez facilement leur faire part de vos retours et interagir avec eux. Concernant les bugs, ils sont très réactifs, et comme c’est basé sur le web, tout peut être corrigé rapidement et automatiquement, sans gros téléchargement requis ! La puissance du web :)

AL
Aymeric Lamboley
Fondateur & Directeur technique