I’ve worked with PlayCanvas a year ago on a one-man project and while it was a great experience, the always-online-collaborative nature of the editor felt like it would be a bad choice for any game that has a team of multiple people. Now, a year later, I realize that I still haven’t found any HTML5 engine with an editor as great as the PlayCanvas one - and that I never actually talked about my concerns here. Maybe I misunderstand something or there is a workflow that I don’t know of, so here goes.
My primary concern is on the coding side. Am I correct in assuming that any code file saved is automatically used on any other machine running an editor with the same project? As a programmer, my code seldomly works correctly the first time I save it. What if I’m working on something and saving a file that breaks behaviour while an artist or level designer wants to change something in the game and check how the current version works ingame? In my experience, multiple people usually work concurrently on the game and they don’t want to “push” in-progress versions of what they are doing in realtime, but in a controlled manner once it is complete - which could take hours or days. I think the collaborative nature of the editor might be a blessing if multiple people want to work on the same scene, but forcing the code to be collaborative and automatically make everyone deal with the broken in-between stages of what a programmer is working on is a pretty big dealbreaker.
Secondly I’m concerned with version control (or the lack thereof). Using versioning is a given even when working solo, but in a team the chances of something breaking are even bigger. As far as I understand, there is no proper version control for any current version using the PlayCanvas editor?
Thirdly, and that is less of a team thing: Tooling. I’ve not seen any bigger serious JS project that didn’t use Babel in some form. Being able to use ES6 without any repercussions, Sass, React JSX and much more produces more readable code in most cases. And don’t get me started on npm/yarn.
Sorry that this post is such a downer. Just to make this clear: I really like PlayCanvas, and I want to use it. The PlayCanvas editor is absolutely wonderful and I’m grateful for all the work you put into it, and for that reason it makes me even sadder than I don’t feel like I can use it in the companies I work for. Every time I have to build a scene by hand or integrate (or, god forbid, build) an external editor for another engine I wish that I could use PlayCanvas instead because I know it would save me the effort, but I know there is no way I can persuade any other programmer to work in a real-time collaborative environment without source control and tooling.