Unity and version control for a small to mid studio

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 :slight_smile: 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.

I have virtually no opinion, but thought I’d throw this 1 thing out there… Have you considered Unity’s collaborate at all? I know, compared to other services, it’s a bit “new”, but since you had a huge list, I thought I’d at least mention it. :slight_smile:

1 Like

In my experience, there’s no one technical solution that will solve all your problems. Process is what makes your workflow work. You’ve already done some of the hard work by identifying the challenges and needs for your particular use case. Now find the set of tools and processes that will work for you. In my opinion, it’s always best to try the cheapest solution first (cheap might not just mean money… could be time required to get going, etc) and find what the weaknesses are, then move up from there. It might take you a few changes to get things right, but how else would you know if you’ve found the right match for your team?

In any case, as long as everyone on the team is on the same page, you’ll be in a position for success.

I actually did not know about it. I only knew there is Unity Cloud. I will take a look, thank you.