Unity and Source Control (without Unity Pro)

I fully understand that versioning is for the full version only and Unity wants to earn money.

But before we get rich with our game we need a cheap solution. We tried SVN, but run into trouble. Unity seems to mix up things in the asset database.

I tried this guide: http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html

But this seems to be out of date. In Unity PC 2.61 and Unity iPhone 1.5 there is no Edit->Project Settings->Editor.

Is there a way to work as a team in the free version?

Updated for Unity3.5:

All Unity versions (including Free) now support version control.

Steps:

  1. Goto Edit → Project Settings → Editor and enable External Version Control support by selecting Metafiles in the dropdown for Version Control.
  2. Then checkin the Assets and ProjectSettings to your SVN but ignore the Library Directory.
  3. Quit Unity and Delete the Library directory.
  4. CheckOut unity from SVN server. Press Option/Alt (recreates Library) and open Unity.

Hope this helps!

Source: http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html

Not trivially, no. You may want to check out this post on version control workflow. You will probably need to end up writing your own serialization/deserialization code, or sending around a bunch of unity packages and have one person do the integration.

Updated: you may want to review the UnityTextScene project.

A quick fix for this is to use Dropbox. It's not without its flaws, but it works for the most part (and supports things like revision control, deleted file recovery, and file change logs), plus, it's free (you can't beat that!). I've synced about 3 or 4 different Unity games of various shapes and sizes over Dropbox with no major problems.

Updated: With the new Unity 3

We've been working with Unity in our small team here for a few months. The best way we found to work simultaneously is to compress the library folder into a .Zip file, and to commit it along with the Assets folder. On the local machine, you simply extract the library and open Unity. So you any modification to the code is controlled. You only need to create a new Library.zip once in a while, to integrate the settings made using the inspector. For example, if someone attach his new script to an object in a scene, if he does not commit a new library, it will still work but the script won't stay attached on your teammate's machines. So if that script is important for everybody's work, you just need to compress your library folder and replace the old one.

The worst thing that can happen is to obtain a conflict with the library.zip, but it is pretty easy to get around it by having someone integrate the modifications.

Note: We are using SVN subversion and Unity 3.

This question is pretty much the same as http://answers.unity3d.com/questions/11075/how-does-unity-free-source-control-go-wrong, with all the same answers.

Couple things not already mentioned:

  • being able to find missing script components is useful, since if someone moves or renames a script, it can break the scene. See this script or this package.
  • saving out tweaked values of component properties is handy for quick movement of data from one person to another, available from the dump-to-file feature of this package.