Game Development Reference
Table 3.1 Typical Labels and Uses
Identifies files that programmers are using to try out new ideas or bug fix attempts.
Developing games for multiple platforms may require a different version of the
same file that is built for only one of the supported platforms.
Identifies a particular set of files to use for a release to the testers. Implies that the
programmer is somewhat certain the changes will work. If testing is successful, the
next step might be to change the label to an “official�? release number.
After successful building and testing, a release label can be used to “remember�?
which files were used. This is especially helpful if something breaks badly later on
and the team needs to backtrack either to debug the new problem or revert to
Each file has a special evolutionary path called the mainline . Any new versions of files
that are derived from one already on the mainline are called branches . Files on branches
can also have new branches that evolve separately from the first branch. The changes
made on one or more branches can be combined with other changes made in parallel
by a process called a merge . Merging can be done manually, automatically, or with
some assistance from the configuration management system, such as highlighting
which specific lines of code differ between the two versions being merged together. A
version tree provides a graphical view of all versions of a file and their relationship to
one another. See Figures 3.1 through 3.3 for examples of how a version tree evolves as
a result of adding and updating files in various ways.
When a programmer wants to make a change to a file using a configuration manage-
ment system, the file gets checked out. Then, once the programmer is satisfied with
the changes and wants to return the new file as a new version of the original one, the
filed is checked in. If at some point in time the programmer changes her mind, the file
check out can be cancelled and no changes are made to the original version of the file.
With that background, let's explore some of the ways a mistake can be made.
Specifying a wrong version or label in the configuration specification may still result
in successfully generating a game executable, but it will not work as intended. It may
be that only one file is wrong, and it has a feature used by only one type of character
in one particular scenario. Mistakes like this keep game testers in business.