It’s a big request, but I think it could be very beneficial for the engine on a long term basis.
It would be really awesome if users could be able to choose which playcanvas version they want to use. Every time there is an update there is a lot of trouble with the editor and the dynamic asset loading. Which sometimes cause projects to be simply unusable for 1/2h.
The other problem is with retro-compatibility. When the API changes devs have to make a lot of conversion making a project work with the new one. It will be easier for them to make more ambitious games if they where able to choose wich one they want.
Allowing users to use a version of the editor would be really hard and long to achieve, but It would be a really big step forward for the engine. playcanvas in sometimes has the potential to have AAA webgl games using it but it would require a more stable work environment.
Thanks for the feedback. I’m very interested to get more information from you about your experiences as an end user. The intention has generally been to shield developers from having to make changes to their projects in response to engine/Editor updates. It’s very rare that we mark any engine change with the [BREAKING] tag in GitHub. Instead, we normally deprecate the old API but leave it in place (often hiding it from the docs). If possible, we get the old API to call the new API.
When the API changes devs have to make a lot of conversion making a project work with the new one.
Can you let me know the instances when this happened to you and a rough idea of the work involved?
Every time there is an update there is a lot of trouble with the editor and the dynamic asset loading. Which sometimes cause projects to be simply unusable for 1/2h.
Can you explain in more detail what problems you have had with dynamic asset loading? When we deploy a new version of PlayCanvas, you should only see momentary disruption. Sometimes, this might manifest as an autoreload of the Editor. And sometimes you won’t notice at all, with updates only being apparent on a manual refresh of the Editor. On rare occasion, we have noticed our asset server requires a restart (which we have been in the process of diagnosing) - perhaps you encountered one of these instances?
I wasn’t clear enough on this one . The problem is not with script ‘compilation’. I’ve never seen a function just stopping from working after an update on playcanvas. The issue is more when the logic changes.
Clear example: A few months ago, there was an issue with collision boxes when the object was scaled and rotated inside a parent the collision was displaced. I adapted my code so it can work with the issue. But when the bug was fixed, my code stopped working and I had too reverse the process.
When the logic of the API changes developers have to change theirs. Even if the new code is better in the new version, the components which were working on the previous buggy version just stopped working on the new one. So it would be better to let users choose when they are ready to update and when they don’t.
I’ve seen multiple times 404 errors in game, especially with dynamically loaded JSON files during a server update. We use them a lot to store data (dynamic entity placement, presets etc.) and our game can not run without them. Sometime just re-importing the asset fixed the issue. But when you have a couple of assets, it’s a bit annoying.
Having the choice to upgrade now or wait sometime would make those troubles less recursive and would allow users to have a more stable working flow.
As I said on my previous post, it’s a big feature to add and I’m sure it’s not going to be here tomorrow. it would be very nice to have it, especially with bigger projects.
I hope my examples were clear enough to explain. Even if this post is pointing the flaws of playcanvas, the job done on the engine is amazing. However I think a feature like this is very important to attract bigger video game producers.