Game Development Reference
In-Depth Information
better branching to their software that better matches other software. They also have
some excellent production pipeline helpers in their software, so files can be reviewed
and approved after they are checked in.
Programmers and
will like the fact that AlienBrain has sophisticated
branching and pinning mechanisms just like the more advanced source code reposi-
tories on the market. (I
build gurus
ll discuss the importance of branching in the next section.)
Artists and other contributors will actually use this product, unlike others that are
mainly designed to integrate well with Visual Studio and not creative applications
such as Photoshop and 3D Studio Max. One of the big drawbacks of other products
is their rather naive treatment of nontext files. AlienBrain was written with these files
in mind. They have some great features to track peer review in art files, for example.
'
Using Source Control Branches
I freely admit that up until 2001 I didn
'
t use branching. I also admit that I didn
'
t
really know what it was for, but it also wasn
t my fault. I blame Microsoft. Their
Visual SourceSafe tool is distributed with Visual Studio, and some engineers use it
without question, as I did for many years. Microsoft software, like Office, has hun-
dreds of thousands of source files and many hundreds of engineers. It turns out that
SourceSafe was never designed to handle repositories of that size and certainly wasn
'
t
designed to account for the tricky problem of trying to get each one of those engi-
neers and the files they changed every day to be ready at a moment
'
'
s notice to build
the entire, massive project without any errors caused by incompatibilities. Those
readers who have worked on even a modest-size project will know that, on any
given morning, when you grab the latest code from everyone
'
s work the previous
day, more often than not it doesn
t even compile, much less link and run. This prob-
lem is compounded when the test department needs a build to test and needs it right
away. Luckily, there
'
s a solution.
Branching is a process where an entire source code repository is copied so that paral-
lel development can proceed unhindered on both copies simultaneously. Sometimes
the copies are merged back into one tree. It is equally possible that after being
branched, the branched versions diverge entirely and are never merged. Why is
branching so important? Branches of any code imply a fundamental change in the
development of that code. You might branch source code to create a new game.
You might also branch source code to perform some heavy research where your
changes won
'
s. Sometimes a fundamental change, such as swap-
ping out one rendering engine for another or coding a new object culling mechanism,
is too dangerous to attempt where everyone else is working. If you make a new
branch, you
'
t affect anyone else
'
'
ll wall off your precious main code line, usually called the
trunk.
 
 
Search WWH ::




Custom Search