How to scale project correctly on PlayCanvas


Could anyone share some bigger project managment experience or tips?
Backstory: we are porting our project from Unity to PlayCanvas. It is metaverse based project with multiple events happening at the same time, with multiple scenes and some user base. We were able complete most of back end and project is starting to become accesable publicly. However here I met with some problematic situations:

  1. There are quite a lot of commits, branches and merges, so project size in several months reached 6GB storage, and it is expected to even more front end changes to come in near future.That means 10gb limit will be reached in no time. And as there no way to delete branches if they were merged, there is no way to reduce this size effectivly. How should we approach it? Currently we having two main branches: development and release. All other branches goes to development one first and after testing to release branch. Is there a way how to keep things more efficient and scaling in size slower? Oh maybe some tips with branches control, back ups creation or something like that?

  2. As there are event based project, some events needs to be unique in one way or another, let’s say have one specific scene more. While I can just have different builds for it, we would also lie to be capable of updating that version with new added features. Forging it would seperate them to much and duplicate account storage. Having it on specific branch could be a solution, but PlayCanvas version control is not very convienient and I am afraid it will soon go out of hand if we will continue to creating branches like that for every event. Is there any better approaches or it is pretty much all we can do?

Or we somehow would need to move out of webEditor to self hosted solution, is it even possible? To be honest any tips or examples would help. I am willing to embrace limitations of PlayCanvas, but nobody listens to me anyways, so all I can do is collect as much information as possible.

Thank you everyone who read it and double thanks for any comments!

Best regards

1 Like
  1. I wouldn’t worry about using storage legitimately. Ask for more storage from the PlayCanvas team at ahead of time and they usually will add more for no cost as long as the storage is not being abused (eg adding 10GB of video)

  2. Do you need to maintain the event projects? If not, I would fork in PlayCanvas. If you do need to maintain it with upstream fixes etc, I would use branches (one per event) depending on the level of customisation needed. What concerns on branching do you have here?

2b. Depending what changes you need to upstream, if it’s just code, that can be a separate library bundle that is updated manually per project. There’s some work from PlayCanvas to support NPM bundles and modules so that can also be factor here in managing multiple projects with the same set of internal frameworks

2c. I’ve seen some workflows where all the events are in a single project but assets are tagged for what build they are should be included in etc. Then teams would have a build process where they download the build from the editor via API, stripped out the assets and modify the asset registry, re bundle the code etc and create the final build zip. This is a pretty customised solution though

1 Like

No, that’s not possible unfortunately

Thank you for confirming and sharing extra information. It seems only thing I can do is to continue with a workflow we have now, and hope that 10 Gb limit will be increased. Or will need to consider having custom data load if that will not be enough.

Once again, Yaustar, you are the star!

If you are concerned about the limit, please email the PlayCanvas team in advance to try to get it bumped up.

There will be no problem but bump the limit, don’t worry about it.