Hello!
There are indeed materials on version control for unity game dev projects but they all are lacking practical considerations. I hope somebody will be able to give me an advice.
Short story:
I’m starting a new studio. The number of collaborators will vary from 6 in the beginning to 15 on the peak. Some of them will also work remotely. There will be three programmers, four-five artists, a couple of designers, a writer, an animator, some qa etc. I need the version control solution, that is reliable and cheap to be able to make all these people work together without breaking each other’s work, without having huge overhead and without somebody being a bottleneck.
I worked in a larger company before, we did not use Unity (used in-house engine), there were about 120 people working together and we used Perforce. So I’m not completely new to version control or organizing staff, it is just the conditions are different (requirements and budget) so I can’t just go the same way.
The biggest problem for me (this is why those advices on the internet does not work) is that we have way more artists and other content creators than normal unity indie studio. So when internet says just use Git, it does not take into account all those creators working simultaneously on binary files of assets, models, scenes etc. We need to be able either lock files or have a system that informs user that file is changed by someone else. This most likely will not work with any distributed system. Also using free services for five people will not work too, we are bigger and we need pay for stuff.
Because of workflow above, I considered using Perforce too. But p4 cloud or p4 hostings are quite expensive. It is something like 40$ a month per user for the cloud service (Assembla, HelixCore cloud). For me, it is a bit too expensive. The separate license is another solution, but having a server in the office, all the setup and maintenance (also handle network VPN so people can work remotely) is quite a hustle. Well, and it is expensive too.
Another solution I found is PlasticSCM and their cloud service. They have basic plan Plastic SCM - Plastic SCM that allows using cloud for 6.75$ per user, which is somewhat reasonable. Also, it has the solution for huge binary files and locking artistic content, which sounds promising. For me, downsides, for now, are only that I don’t know much about this system and you need to pay more if your project size grows more than 5gb, which is very possible. Well, and even the base price per user, if possible I’d prefer something even cheaper
Still sounds promising as easy to use solution. If someone uses this service, please give some feedback.
Another option on the internet is to set up old-fashioned SVN server (then have the same overhead as with p4), or use cloud service. Cloud services are different in pricing and options, being something like 2-10$ per user per month or fixed price as 50$ for a repo with unlimited users. Price wise SVN seems very affordable. My concern is how good is SVN for ongoing projects in game dev? SVN is not that modern, it is probably quite slow on big projects with a lot of revisions. It allows locking files (I believe) which is good. Is there someone around who successfully used SVN for a somewhat big game project?
Well, last option is to use Git, Mercurial or something else while having our own server (in office or some Azure-like solution) or cloud (Github, bitbucket). Pricing is comparable to SVN, maybe a bit more expensive. But I still have not seen any solutions with these systems for team/project types I have (binary files, huge files).
Any practical examples on this topic? Any use-cases? Any solutions?
Thanks for your time, and thanks in advance for any help.