Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Possible Duplicate:
Version control for game development - issues and solutions?

What are some good (free or open-source) Version-control packages for developing games, and what are any game-specific issues in using them?

Update There is a better version at Version Control Issues. If you want to copy over your Answers/Comments from here to there, please do so now. Then vote to close this Question.

share|improve this question
1  
This is a question that should be asked on StackOverflow or SuperUser, there are lots of answers there already... There isn't any Game Design, Game Development or Asset Creation here. –  Tom Wijsman Jul 14 '10 at 21:26
    
The post by munificient although makes me wonder, maybe the question should state that it is regarding games. This would make John C his answer a bad answer and munificent a good answer. Related Meta question: meta.gamedev.stackexchange.com/questions/3/… –  Tom Wijsman Jul 14 '10 at 21:29
1  
None of these answers address game-specific issues! The top rated answer does not even mention game design at all! –  Justin L. Jul 15 '10 at 4:34
1  
Game Development has specific demands for version control and post-release patch handling, so I think it is a valid question to this site. –  Spoike Jul 15 '10 at 11:11
3  
Anyone's who's worked on a AAA title knows this is an on-topic question. Subversion and Mercurial/Git are designed for fundamentally different projects and cannot (and likely will never be able to) handle a game development situation - there's just too much data. –  280Z28 Jul 15 '10 at 16:26
show 3 more comments

marked as duplicate by Firas Assaad, Justin L., MechP, Joe, ZorbaTHut Jul 16 '10 at 1:49

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

8 Answers

git using github as host

share|improve this answer
add comment

Where I've worked, I have encountered Perforce, Subversion (with TortoiseSVN) and Git. I've been using Git only a fraction of the time I've worked with Perforce and Subversion, but for source control, I prefer it over the other two hands-down.

Git has a steep learning curve, but it offers the most flexibility, especially with regard to working on parallel features collaboratively; I find Perforce and Subversion's branching capabilities to be lacking.

What Git isn't good at is asset storage. Both Perforce and Subversion are better than Git in this regard, and I've seen both used for the task -- TortoiseSVN is great for non-programmers to work with when they just want to "get their stuff in".

share|improve this answer
add comment

One that you don't host yourself. If your game is open source, I recommend going with public VCS hosting for the added piece of mind that comes from knowing your house could burn down and your work would not be lost. CodePlex, SourceForge, and Google Code are all fine choices. Personally, I use CodePlex. I can't speak to the others, but CodePlex natively supports Mercurial and Team Foundation Server (TFS). They also provide Subversion support via a SVN<->TFS bridge; in other words, if you use their TFS hosting option, you can use any SVN client instead of a TFS client. If your game is not open source, you still might consider using a "closed" VCS hosting service to get the same security.

Personally, I would recommend Mercurial, for the many reasons others have listed here. It also gives you a fallback measure should the host's (i.e. CodePlex's) servers ever get hit by a meteor: you will still have your local Mercurial repository and history. However, I am still using TFS and have had a great experience with it. While not a distributed VCS, TFS does have a nifty feature called 'shelve sets', which enables you to push ('shelve') changes to the server without actually checking them in. This gives you a means of "backing up" unfinished work without actually committing it, or sharing unfinished work with other team members (shelve sets are shareable).

share|improve this answer
add comment

If you're going to have multiple people working on your game it's much, much easier in my experience to use a distributed version control system (I use Mercurial) just because it makes merges so much simpler.

But remember, you can use a different version control system for your binary assets. For instance, you can get the Mercurial bigfiles extension ( http://mercurial.selenic.com/wiki/BigfilesExtension ) to have your assets stored in the same Mercurial repo, but only fetch the binaries you need when you need them.

After changing from Subversion to Mercurial for my hobby game project, I would never go back to Subversion because of how much easier it is to merge changes made by different developers in a distributed system like Mercurial.

share|improve this answer
2  
+1 for the bigfiles extension... I'm SO going to try that. –  Spoike Jul 15 '10 at 11:07
add comment

I personally use Mercurial. There is an asset management oriented VCS from AVID called Alienbrain http://www.nxn-software.com/ which used to be heavily marketed towards game developers.

share|improve this answer
add comment

I have been using Mercurial for a bit now with some of the XNA development I've been working on with a friend. We don't have Gigs of stuff though so we haven't had any problems.

Besides Perforce as munificent mentioned another non-free (although it also has a 2 user non-expiring license) is AlienBrain.

share|improve this answer
add comment

One of the best packages is Subversion, an open-source, multi-platform version-control package. There's an excellent (Windows) front-end for it, called TortoiseSVN plus a free on-line book at Version Control with Subversion. For a general introduction to how VC works, see An Introduction to Version Control.

I've had no problems using Subversion with Blender .blend files, I can't say how well it does with other binary data types.

share|improve this answer
1  
+1 for Subversion + TortoiseSVN on windows –  Some One Jul 14 '10 at 21:26
1  
I use Subversion along with TortoiseSVN. And I use AnkhSVN plug-in for Visual Studio. –  ElementCy Jul 14 '10 at 21:27
    
Subversion is nice, especially for games, since you can transparently include binary files (art assets) along with code in the repository. (Others may do this too, but my experience is with SVN) –  Karantza Jul 14 '10 at 22:41
2  
Subversion is nice, but nowhere in the answer does it addresses the question asking specifically about game development-related version control. Of course the asker already knows about subversion; he wants to know now, in the gaming industry, what version control works BEST for game-development-related purposes. –  Justin L. Jul 15 '10 at 4:34
4  
Subversion is not even close to being able to handle the customized workspaces (limited views), team permissions, or sheer amount of data involved in the average game today. –  280Z28 Jul 15 '10 at 16:29
show 2 more comments

John's post covers it. One important consideration: if you're going to have a lot of assets (gigs and gigs), like many games do, you will probably want to steer away from a DVCS. They aren't designed for many large binary files and don't tend to handle them well.

The non-free industry standard for games is Perforce.

share|improve this answer
2  
There is also a free, non-expiring 2-user license which you can use for evaluating Perforce. –  user143 Jul 14 '10 at 21:31
    
Perforce is particularly robust for projects with complex directory hierarchies and upwards of several dozen developers committing at the same time. Perforce also ships with a couple of tools, such as P4Merge, which is basically their Diff and Merge GUI. It's nothing special but it works and has a pretty nice visual representation for developers to compare changes. –  Philip Tan Jul 15 '10 at 17:43
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.