Game Development Reference
In-Depth Information
Source control systems also let you create branches. This is a way to split pro-
grams into two separate versions. For instance, your chess game is going pretty
well but you're pretty sure it would be better if it had a first-person shooter
mode. Adding such a mode will require a lot of code changes, and it might fail.
With source control there's no need to worry. You can create a branch. All the
new code changes can be made in a new branch repository. Changes here won't
affect the main repository, called the trunk. If you fail at making ChessFPS then
you can switch back to the main trunk and forget all about your failed branch. If
you succeed then you can merge the branch and the trunk together again.
Source control is extremely useful for the lone developer, but one of its primary
uses is allowing a team of programmers to work on the same codebase at the
same time. Source control lets any programmer edit the code, and any other
programmer can update and see those changes. To make a game with a group of
friends, source control should certainly be used!
Using Source Control
Hopefully, by now I've convinced you that source control is great and you need to
use it. The code in this topic uses a source control system called Subversion, but it's
a good idea to know a little about the many different source control systems.
CVS —This is used primarily on older projects. It's best to avoid, as Sub-
version has all its functionality and more.
Visual Source Safe —Try not to use this. It is made by Microsoft, but not
even Microsoft uses it internally. It has some stability issues.
Subversion —Great free open source control with good Windows integra-
tion. My choice.
Perforce —Used by many game companies, very good merge tools, good at
handling large amounts of binary data (like images and models). Not free,
or cheap.
Git —Git is quite new and is used as source control for the Linux kernel.
It's not dependent on a central server, and it's fast and scalable. Mostly
command line based at the moment, though there are some GUI tools.
Mercurial —A bit of a newcomer and mainly command line based, but once
again there are a few GUI tools. Its goals are stated as high performance and
 
Search WWH ::




Custom Search