Versioning in PlayCanvas

I wanted to ask about Versioning in PlayCanvas. If this has been covered before, please share a link!

So … suppose I am writing my game. And I try out a new feature. I write a bunch of scripts, change some other code, add assets, re-organise things and generally tinker about with stuff.

And then… the new feature sucks. (This happens a lot when I make games). Does PlayCanvas support a way to get me back to my last-known-good version?

I’ve got my scripts hooked up to BitBucket, so I’m kind of all good there, but ideally I’m looking for all the standard version control workflows, so for example:

  • Rolling the project back to a previous version (by timestamp, label, etc)
  • Branching & merging - so I can develop new features or undertake bugfixes and commit changes to my branch before merging it back into mainline.

Is there even a manual method to do this. So for example, if I’m at a known-good state, can I download the project, and then if I make changes and mess things up with my latest work, can I re-import the known-good project which I downloaded - which in effect performs a rollback.

Many thanks in advance!

The only way I know is forking your project every time you want to add a new feature. So if the feature sucks, you can just delete the fork and get back to the previous version. Yeah, it’s just a simple linear approach, but given PlayCanvas focus on small and medium sized projects, I doubt a full-fledged asset versioning is worth development effort.

Unfortunately there is no full-on versioning system atm.
Manual approach exists of Org users as Export/Import project (downloadable).

We are thinking on next big thing, to enable better workflow for bigger teams, which we refer as Branching System. That will allow to make a branch of whole project, work on it, and merge back, which will cover everything: scene graph, assets and code.
This will allow to work on new features on separate branches.
Once that system is in place, there will be possibilities to do even “snapshot” of a project in time, and be able to revert to it indeed.
This is fairly big job, and will require a lot of effort from our side to implement and solve certain challenges that are unique to our collaborative clouded system. Saying that, there is no particular ETA.

Thank you for the response Max.

I do agree that this is a big job!