Game Development Reference
Another reason that customization is important is because there is such a wide
variety of hardware that applications can run on, and the default appearance does
not always look good on different hardware configurations.
The biggest issue is in regards to video options like screen size, resolution, and
color depth. Your application may look fine on 1024×768 and 32bpp, but it may look
absolutely terrible on 800×600 and 16bpp.
Allowing users to tailor the basic interface, such as fonts, toolbar location and
appearance, menu entries, color scheme, and sound scheme, helps to alleviate this
While customization is important, this feature is somewhat useless if the settings
are not persistent between different instances of the application. If the user
changes the settings, closes the application, and restarts it, the application should
be in the same state it was left at in the previous session.
Persisting changes to the settings is a simple registry key with a single user, but
multiple users present additional issues that must be addressed with an alternative
solution. If your application supports multiple users on a single workstation, then
consider recording preferences as user specific profiles, rather than as a single pro-
file from the last time the application was run.
It is a misrepresentation of software to think of a user interface as “intuitive”
because software applications simply do as they are instructed. It is the users who
must “intuit” an application, meaning an interface that is intuitive to one user may
be unintuitive to another.
The best way to design an interface that users can intuit is by designing an inter-
face to respond just like all the other applications they are used to. The way to
accomplish this is by following the Design Guidelines for Class Library Developers ,
as well as the principles and concepts in this chapter. It is also advantageous to look
at similar applications and take note of how they operate.
A technique I have professionally used in the past is to open up any popular
Microsoft product like Office and look at how the interface works in it. Microsoft
has invested millions of dollars in user interface design research, and their research
can be adapted into your applications by mimicking how their products work.