Game Development Reference
This special type of defect is not the result of improper code. The errors themselves
are in the bytes of data retrieved from files or defined as constants. This data is subse-
quently used by statements or function calls that print or draw text on the screen, play
audio, or write data to files. Defects of this type are detectable by reading the text, lis-
tening to the audio, checking the files, and paying careful attention to the graphics.
String constants in the source code that get displayed or written to a file are also
potential sources of Documentation type errors. When the game has options for mul-
tiple languages, putting string constants directly in the code can cause a defect. Even
though it might be the proper string to display in one language, there will be no way
to provide a translated version if the user selects an alternate language.
The examples in this section take a brief detour from the Vanish bug and examine
some other bugs fixed in the Dark Age of Camelot 1.70i release, which appear at the
end of the “New Things and Bug Fixes�? list:
If something damages you with a DoT and then dies, you see “A now dead
enemy hits you for X damage�? instead of garbage.
This could be a Documentation type defect where a NULL string, or no string, was
provided for this particular message, instead of the message text that is correctly dis-
played in the new release. However, there may be other causes in the code. Note that
this problem has the condition “…and then dies�? so maybe there is a Checking step
that had to be added to retrieve the special text string. A point to remember here is
that the description of the defect is usually not sufficient to determine the specific
defect type, although it may help to narrow it down. Someone has to get into the bad
code to determine how the defect occurred.
Grammatical fixes made to bug report submissions messages, autotrain
messages, and grave error messages.
This one is almost certainly a Documentation type defect. No mention is made of any
particular condition under which these are incorrect. The error is grammatical, so text
was provided and displayed, but the text itself was faulty.
Sabotage ML delve no longer incorrectly refers to siege equipment.
This description refers to doing a /delve command in the game for the Sabotage
Master Level ability. The quick conclusion is that this was a Documentation defect
fixed by correcting the text. Another less likely possibility is that the delve text was
retrieved for some other ability similar to Sabotage due to a faulty pointer array
index—perhaps due to an Assignment or Function defect.