Friday, September 9, 2011
I don't know weather you heard the word version control before or not but I am sure that most of you used it never before. I don't know why no one don't teaches using source control (version control) in first semester in university. I read a great article on reasons for which I forgot the link and name and ... completely (shame on me). Version control software allows you to keep the history of all changes to your project and its files. It also allows multiple people to work on the same project and merge their changes with ease. It works on most network protocols on LAN and on the Internet so working remotely is highly possible. To use version control you don't need experience or anything close to that. Just download an SVN server like visual SVN server and install it on a computer in your LAN or on a machine with static IP on the net, even you can use one of the many free alternatives like sliksvn.com. If the project is open source there are dozens of sites that would be more than happy to lend you some space. A project's container on the server is called a repository and all users and members of the project will connect to it using their clients in order to put their changes on the server (commit) or update their projects (working copies) with the changes other maed to the project (update). As you might noticed we use subversion (svn) as our version control system. There are other systems available with pros and cons which I'll not describe cause you can find much info simply by googling their names. As subversion client, you can use the main/original command line client but there are many clients available for most IDEs. There is a great client for windows explorer called tortoiseSVN that we ourselves use. Before using SVN if someone would ask us: what do you need on your system to make a game we would say, well Unity and visual C# express but now surely we would say: Unity, visual C# express and subversion surely with tortoiseSVN client. The speed would become more than doubled even when only 2 or 3 people are working on the project. Unity users should know that it's better to don't use the SVN clients of IDEs cause there are files that they should version but they are not available on the projects of their ides (i.e models and scenes and prefabs and ...). you can use visual studio's SVN client but don't forget to commit your other changes. We highly recommend tortoiseSVN for windows users. Lucas meijer of unity himself recommended this to us. Unity has a version control software for itself that is called asset server which is $500 for each client but they say that it handles large binary files much better than other solutions which originally created for versioning code (text files). At this time some of the unity file formats are binary and svn can not merge them so if two people change a scene when the second one commits his/her changes changes of the first one will be lost (file will be replaced and not merged). in 3.5 this will no longer be a problem cause unity will use YAML for all of it's file formats which is a popular XML serialization format. they'll also bring in a better integration for subversion and perforce too. A big thanks to robotduck for reviewing and helping me to edit the post (i did not manage to find the time to do all of what he said).