Game Development Reference
An extremely important factor in the success of any software project is its reliability.
A tool is pretty useless to designers if it crashes or corrupts the data almost every
time it is used. The reliability metric is a measure of failure rates surrounding the
software project. If you run a certain tool a thousand times, what percentage of
those times will it fail? The resulting data from this test is generally referred to as
the meantime to failure .
There are different acceptable failure rates for different stages in software develop-
ment. At the beginning of development, the software fails quite often. As develop-
ment progresses, bugs are removed, and the failure rate declines to the point where
the tool rarely fails. The failure rate is rare when the software is ready for integra-
tion and deployment, at which point the failure rate is said to be acceptable.
Workflow productivity using a tool is directly tied to reliability. Losing work or
requiring tedious workarounds to maintain stability is a frustrating process, and
should be minimized at all costs. Spending the extra time to stabilize a tool can
save the designers much more time in the long run.
Judging the efficiency of an application is relatively difficult to do, because there
are several things you must take into consideration. Some measurement contexts
also combine the efficiency metric with the performance metric, while others do not.
Some measurements of efficiency include the size of the application, especially in
circumstances where available disk space is limited, such as handheld or other
resource-limited platforms. Smaller applications typically gain a slight perfor-
mance boost over larger applications, due to how the operating system manages
memory associated with processes.
The amount of memory required by the application to function optimally is also
important to measure, especially in situations where memory is limited. If you had
an application that performed a task in four seconds with 1MB of memory, it
would be more efficient compared to an application that performed a task in two
seconds with 9MB of memory.
The speed of an algorithm can also be measured in terms of efficiency. An algo-
rithm can be evaluated in terms of the time it takes to complete its work, and how
it goes about doing that work. Issues like memory access, disk access, and network
access can all be considered in this measurement.