Skip to main content

Unity3D for teams of 6 people or more

I've done this rant live to various people, but I thought it was time to write it down.

First of all: I like Unity3D. I sincerely think Unity3D existing makes the games industry a better place.

But, basically, I don't see how it can be used for efficient, professional game development, with teams of 6 people or more all actually using Unity. I'm sure people are doing this, but I'd like to know how.

This rant is based on my experiences on a project that used Unity 3.5. Maybe Unity 4 is better. It was our first Unity3D project, but to be honest we spoke to a lot of other Unity developers and if there were any major rookie mistakes we made I don't know what they are.

Final caveat: It's been a while since I've gotten my hands dirty on this, plus I wasn't the one who set up the project, so I might get some details wrong.

We used Unity3D with Perforce, with a team of 6 to 8 people, most of whom had to work within Unity itself, as opposed to just making bitmaps or something. The daily workflow for pretty much everyone on the team was:

  • Check out everything in the Unity folder in Perforce. Not 'get latest'. Check out.
  • Open Unity3D.
  • Do your work and test it.
  • Save, then quit Unity3D. You must do this.
  • Go into Perforce, reverse unchanged files, then try and guess if any files, particularly all of those tiny .meta files, have been added or removed and tell Perforce about those.
  • Repeat.

Unless you want to change a scene, then you must yell through the office that you're going to change a scene, lock the scene file, then do all of the above. So this was pretty much like not having a repository. We had things set up so scenes and other data are text files, but to be honest, just because it's now YAML doesn't mean you can just merge scenes - all those internal references don't necessarily match up.

That's a pretty sucky workflow, and it took us a while to get it through everyone's heads that they really, really had to do all this. I personally suspect - I never investigated this - that we had to quit Unity because of one plugin that saves important files on exit. But to be honest if that's the case I still see that as a design flaw in Unity.

So, internet: what did we do wrong? What are your experiences with Unity3D and teams of more than a couple of people? We did not use the Team License - could that have solved our problems, and if so how?