Working via the Editor then moving to the Engine


I’m currently studying the potential of PlayCanvas to develop games, but there’s something I could not figure out after reading a bit about it.

If I start to work in the Editor, then later on for some reasons I cannot use the Editor anymore, is it currently possible to export my project and then continue to work and build it just via the open source Engine ? (obviously without the closed source Editor)
If yes, how do I achieve this ?

It’s important to make my final choice that I’m not locked in to a closed source solution, even if the engine itself is open source.

Thanks in advance!

TLDR, Yes with some caveats

When you download a build from PlayCanvas for self hosting, it’s just a standard static page project with boilerplate. You are free to modify etc to it.

Most of the boilerplate logic can be found in the index.html and __start__.js.

The default publish settings will concatenate the game scripts that you write in the Editor and minify it into a single file __game-scripts.js.

More info on the settings for publishing can be found here: PlayCanvas Hosting | Learn PlayCanvas

If you disable minification, __game-scripts.js will just be concatenation of the of your game scripts with comments included.

This means it is trivial to edit and modify outside of the PlayCanvas Editor if you wish.

Scenes, information about assets etc are in pure JSON so you can edit that post publish as well.

What will be more difficult is where we generate assets such creating SDF fonts, basis textures and also the render assets that reference GLBs.

These are generally overcomable (we should think about detailing how SDF fonts are generated for example), GLBs can be loaded as containers and instantiated at runtime and Basis is open source.

If you do go down this route, I recommend that you setup a regular download of the publish build that doesn’t minify code on a daily/weekly basis via the REST API Apps - Download app | Learn PlayCanvas and that would protect you to the extent mentioned above

Thank you very much for your answer, that’s very clear! I’ll test all of this and see if I can reach a satisfactory solution :slight_smile: