Game Development Reference
Principle of Refinement
One common mistake a lot of developers make is to throw a warning or error
exception when the user performs an invalid operation. In actuality, you should
view every warning and error message generated by your application as an oppor-
tunity to improve the interface and task sequencing techniques.
A good user interface is when warning and error messages are rarely generated,
with the exception of disk failures or interrupted network connections. Otherwise,
all other warning and error messages can be considered as design flaws.
Instead of letting the user do whatever he wants and throwing a warning or error
message when he does something invalid, consider the prevention of these mes-
sages as a better design alternative.
The majority of erroneous user operations result from invalid input data and
inappropriate task sequencing. If your program requires formatted data, such as
dates or particular numeric ranges, help users enter correct data by using bound-
ed input controls that limit input choices. Rather than letting the user enter what-
ever data he wants and complaining about the input when the user clicks the Save
button, instead force the user to enter correct data using controls that strip invalid
characters and perform automatic formatting.
If a particular step in the application cannot be legitimately performed until the
user completes other steps, the dependent step should be disabled so that the user
cannot attempt to perform it until all the dependencies of the step are satisfied.
User action should be limited to only valid steps through the use of disabled con-
trols. Most user interfaces have a dim appearance for disabled controls, and this
visual feedback informs the user that the functionality of that control is unavail-
able until another step is completed.
Principle of Exploration
The human race was born to be explorers, and our curious nature causes us to
attempt certain things just to see what the outcome is. When prehistoric cavemen
created fire, it is safe to assume there was at least one curious individual who want-
ed to see what happened when they touched fire—obviously burning themselves
in the process. From that point on, everyone knew what would happen if they did
the same thing, so their curiosity was satisfied.
The same analogy can be used for interfaces and user exploration. Humans want
to explore any environment, but with tools, they risk corrupting the database or
game content. This concept is based on the idea that the user interface and application