Game Development Reference
to predict and fill in what is going on while it is waiting for updated game information.
When your character is running around, this can result in jittery movement or even a
“rubber band�? effect, where you see your avatar run a certain distance and, all of a sud-
den, you see your character being attacked way back from where you thought you were.
Getting back to the familiar Vanish bug, let's look at a Timing defect scenario. In this
case, pretend that one function starts up an animation for casting the Vanish ability,
and a global variable g_animationDone is set when the animation has finished playing.
Once g_animationDone is TRUE , the duration should be displayed. A Timing defect can
occur if the ShowDuration function is called without waiting for an indication that the
Vanish animation has completed. The animation will overwrite anything that gets put
on the screen. Here's what the defective portion of code might look like:
And this would be the correct code:
while(g_animationDone == FALSE)
; // wait for TRUE
Build/package/merge or, simply Build defects are the result of mistakes in using the
game source code library system, managing changes to game files, or identifying and
controlling which versions get built.
Building is the act of compiling and linking source code and game assets such as
graphics, text, and sound files in order to create an executable game. Configuration
management software is often used to help manage and control the use of the game
files. Each file may contain more than one asset or code module. Each unique instance
of a file is identified by a unique version identifier.
The specification of which versions of each file to build is done in a configuration
specification—config spec for short. Trying to specify the individual version of each
file to build can be time-consuming and error-prone, so many configuration man-
agement systems provide the ability to label each version. A group of specific file ver-
sions can be identified by a single label in the config spec.
Table 3.1 shows some typical uses for labels. Your team may not use the exact label
names shown here, but they will likely have similarly named labels that perform the