Certified studio & training center
ENFR
Client

PlayCanvas, the hidden WebGL editor gem

Good tools for having graphics & dev team working closely together has always been important for providing awesome digital experience! Back then, Macromedia/Adobe Flash was a 2D tool bringing together artists &…

Good tools for having graphics & dev team working closely together has always been important for providing awesome digital experience! Back then, Macromedia/Adobe Flash was a 2D tool bringing together artists & coders, and that’s why it was so powerful and popular. Later Unity and Unreal Engine did the same for 3D. But those giants are too heavy for optimized web experience and the build workflow is long.

On the other side, the web itself, with evolving standards, is more powerful than ever: complex SVG animations? Hi lottie. Electron framework via Chromium enables softwares like VS Code, Slack, etc on the web. So why not having a powerful editor directly in the web and targeting the web? Here comes PlayCanvas.

Firstly, le’s have a look at the state of the art for 3D frameworks:

Unity

Unity is one of the most popular tool for indie developers from one man project to AA teams. Its big strength is obviously its editor, offering artists & coders a common tool. Regarding WebGL support, it has been enabled for a while but officially “Mobile devices are not supported by Unity WebGL”. Also if you have many web specific development code to do, like connecting to a Learning Management System, or just trying different setup to see how the perf goes, the build time will depress you.

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

So here comes project Tiny! Unfortunately, it’s not a priority for Unity, more than three years after its annoucement, it’s far from being stable. Unity is rewriting its engine, and Tiny is using new paradigms like DOTS, and thus the journey won’t be straightforward. Personnaly, I’m moving away from the Unity hype, waiting for things to be all connected together and working fine.

Three.js

Three.js has been here for a while now and is a big guy:

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

Open source, community driven… awesome!! But lacking a proper editor, like Unity. There are some tools: - like its simple editor but you won’t make a serious project with it.

- AFrame, a framework for writing 3D content in plain HTML, embraces Three.js. It’s on good tracks, providing even an editor but too limited.

GitHub - aframevr/aframe-inspector: Visual inspector tool for A-Frame. Hit  *<ctrl> + <alt> + i* on any A-Frame scene.

- and finally there are tools for using Unity as a level builder / editor and export data to three.js for example UnityToThreeExporter.

Babylon.js

Babylon.js is a real competitor to Three.js and is made by Microsoft. It goes even further: it is a game framework having built-in a physics engine, pathfinding etc. And a top notch documentation!! There are several Editors: Gui, node material, particle, sprite, texture, skeleton… Unfortunately, they are not built together in one editor.

However, note the community is active with two projects: - an Editor made with Electron and using the sub editors, way more advanced than the Three.js one but still not enough for a consequent project. - like for three.js, an (official) Unity exporter. - also really interesting to note: Babylon Native.

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

PlayCanvas

PlayCanvas has been here for a while. It started in 2011 and the engine has been open sourced in 2014. The strength of PlayCanvas is its editor. Altough it’s a closed source, many parts have been open sourced: UI component library, node-based graphs library… From a pricing point of view, it’s free for public projects and offer subscriptions for private projects.

Isn’t it gorgeous? You may have complex 3D scenes and the editor will still be extremely responsive.

PlayCanvas editor is accessible through every browser, and everything is saved in the cloud. This way, the PlayCanvas editor provides an awesome way to share examples / demos or ask for help on a project: here is a simple example. You can easily fork a project or copy/paste assets and entities!

How does PlayCanvas editor compares to Unity editor?

Well, the first thing to notice is that PlayCanvas enables live update of several people on the same scene!! Since it is web based, collaboration is built-in. While on the same scene, several people can work on the level design in realtime. Everything is synchronized, and you have a built-in Version Control system to create checkpoints.

Then there is the big difference with Unity’s design. In Unity, once you press Play you can tweak values but it won’t be saved. In PlayCanvas, you’re always synchronized with the different instances, so you can test your character controller script and see level design being built by other people in realtime on the same scene. This realtime collaboration can be tricky if some scripts failed or if there are lots of tasks in progress. Fortunately, people can create branches to work on.

My feedback on PlayCanvas editor:

Having used PlayCanvas for several months now, I enjoyed a lot the experience. The product as well as the community! Though PlayCanvas is a small team, you can easily provide your feedbacks and interact with them. Regarding bugs, they are very active, and since it’s web based, everything can be patched quickly and automatically, no big download required! The power of the web :)

AL
Aymeric Lamboley
Founder & CTO
// STAY IN TOUCH

Studio news,
straight to your inbox.

One email a month at most: our technical articles, project debriefs and new training sessions. No spam, one-click unsubscribe.