Managing multiple versions of the same game

What is the best way to handle multiple versions of the same game within the PlayCanvas editor? Lets say I have a game in a single scene where all you do is jump up and down with one button (super simple). If I need to have different versions where 1 just swaps the player diffuse asset and then another has a slightly higher jump etc what is the best way to handle these different code bases? I need to be hosting all of these different versions at the same time and would prefer to not fork them so that I don’t have 30 versions of the same game in different editors floating around. One requirement for my use case though is if I make a version with Mario jumping and a version with Luigi jumping, when I export the game to host it, the Mario build cannot be also downloading the Luigi asset and vice versa.

Should I just be making different scenes and only exporting one at a time?

Hi @Jake_Johnson ,

You can use version control for that, PlayCanvas has gone in great lengths to provide first class support in editor.

Start here on how it’s being used on how to create branches and checkpoints to support each version:


ahhhh okay I didnt see an area to make branches but I see it now. thank you so much!

1 Like

How big are the differences? Could you have one build that has all the core logic and a config file so that after you publish, you can easily change a few settings and resources to work for whatever your need is?

eg is it just a basic reskin + a few constant values that needs changing

1 Like

It is mostly an asset swap. but there are a couple things that change logically. like for example some assets are being swapped with assets that have skeletal animation so those components are having to be added. Can you link to an example of a config file so I can take a look?

They would still be an asset though right? The components are still the same and on the same entity?

If that’s the case, as long as you know the asset id, you can do the swap of the asset post publish.

Afraid there’s not an example but it can be just as simple as a JSON config file in the project that can be updated post publish.