Rules: be consistent, give good feedback, player should always be in control, few steps to do an action, easy undo/redo, minimize physical stress, no recall, group controls and feedback elements together when they are related, provide shortcuts. No more than 2 clicks between the start/loading screen and actual play.
|Player question||In-game solution(s)|
|Where am I?||Minimap, ambient environment sounds|
|What am I doing right now?||Visual and audio feedback cues|
|What challenges am I facing?||Quest or mission log|
|Did my action succeed/fail?||Visual cues|
|Am I in danger of losing the game?||HP, gauges|
|What should I do next?||Quest helper|
First, define gameplay modes: camera perspective, interaction model (= mapping player input to game actions), and gameplay (= challenges and actions). Then, figure out which visual elements and controls are needed for each UI mode.
Interaction models can be avatar-based (FPS), omnipresent (RTS), party-based (RPG), desktop-like, or contestant (TV game shows).
|Abstraction||Replace a detailed feature by a less accurate one, or aggregate it with another.||Fuel is never seen in racing games|
|Automation||Let the computer handle the annoying or repetitive parts of a process.||Path finding in RTS is handled by the AI.|
|Choice of automation||Let the player decide if a feature should be automated or not.||Racing games: manually switching gears is often more efficient than automatic gear.|
Broad interface: all buttons are directly on the screen. It takes time to learn and remember where each of them are. Example: plane cockpit.
Deep interface: the information is categorized in hierarchies, menus, and options.
Consoles usually have deep interfaces with menus because there's no mouse pointer and few buttons given to the player. A keyboard, on the other hand, gives a lot of breadth.
The interface should be context-sensitive. Only show the possible actions and buttons in a given situation. Give also visual cues of the consequences. Example: When pointing the cursor to a tree, the pointer should change into an axe.