Suggestions on how teams can work together online

Hi folks, so I'm currently writing up the rules and guides for the upcoming tsumea challenge, and I'm looking at the options available for teams working online together on Unity projects (the game engine of our choice for the tsumea challenge). The cheapest (free) and common way seems to be the use of Dropbox to share and synchronise Unity projects, but can anyone who has actual experience with Unity and Dropbox with an online team give me a list of pros and cons of having gone through with that? What issues did you run into, and are there better alternatives?

I'm curious about how Dropbox and Unity handles with synchronisation, particularly with multiple people opening and building the same project at the same time.

We may be able to avoid this particular issue, however, since the tsumea challenge is limiting each challenge entry to one programmer, one artist/animator, one sound person, and one game designer (so 4 team members maximum), and the sole programmer could just handle the building of the Unity project themselves and upload the exported webplayer file to their challenge entry page on tsumea for the rest of the team to see how the game is progressing. The rest of their team can update/share their particular assets to the programmer via dropbox to the programmer. This may be desirable for programmers who don't want their source code shared out in the open, particularly since we're encouraging teams to work with new people.

RedefDev's picture

Dropbox for a single user or a bunch of users sharing asset files and documents with each other is great. But sharing a Unity Project is hell!

Late last year we abandoned using Dropbox all together for our Unity Projects. It just doesn't play well with multiple users who want to work on a project. We encountered syncing issues with our assets as well as old assets regenerating themselves because of how the Unity cache likes to work.

You also can't use the project at the same time that someone else is, lets just say things will explode if you do.

Dropbox will also continuously sync changes if you don't turn it off, so if your working with big textures and the artist tweaks it a lot, you'll be syncing that large texture a lot.

When the project changes hands, it's likely that the next user will have to rebuild a number of assets each time, which also then need to be resynced. On small projects this is tolerable, but on large ones, it's painful!

It requires too much maintenance, and sometimes you won't realise something has broken until someone starts complaining that that thing you said you did, isn't in there.

So to cut a long story short, don't use Unity with DropBox unless your the only one using it.

We ended up moving BitBucket with TortoiseHg, which are both free to use. The advantage is that you can set up TortoiseHg to filter out some critical files which you don't want to share, this will allow each person opening the project to generate these files on their own computer, avoiding any cache related issues.

You can also work on the project at the same time as someone else because it's basically version control. Each user submits their change and everyone else just has to sync that change.

The potential for things blowing up in your face is still there, but you can at least tell when it happened with submissions and deal with it. It is version control system after all, so you can roll back if you need to.

BitBucket also lets you create Team based collaborative projects which is kind of nice.

Below is a link to the tutorial we followed to set it up. Tricky at first, but better in the long run.
http://www.gamasutra.com/blogs/BurkayOzdemir/20130303/187697/Using_Unity...

The critical part of that set up is the .hgignore file. That file ensures that it filters out cache related files and folders from being submitted, where most of the problems seem to be.

BUT!

If people still want to use DropBox, I recommend it be used for just sharing assets and documentation, while one developer handles the Unity Project. If you do use it to share the project, back up regularly.

It also must be said that there have been a number of new Unity versions since then, so some issues mentioned above may have been fixed. But BitBucket is still a better solution to allow multiple developers to work on a project at the same time.

Hope this helps!

souri's picture

Well, those sync issues were definitely what I was fearing! Thanks for the thorough insight as well as the alternative suggestion - I'm gonna have to look into BitBucket and TortoiseHg but that combo looks perfectly suited for the small teams required by our challenges. We might be able to avoid teams needing to share/synchronise projects between themselves since there's only one programmer in the teams and they can upload builds to the site for the rest to see, so a Dropbox solution to share assets might still be the way to go, but if not, this seems perfect. Plus you've written a great tutorial on setting it all up too!

RedefDev's picture

Happy to have helped : )