FUNDAMENTALS OF GAME DESIGN, SECOND EDITION
Managing Complexity
As game machines become more powerful, games themselves become increasingly complex with correspondingly complex user interfaces. Without a scheme for managing this complexity, you can end up with a game that players find extremely difficult to play—either because no one can remember all the options (as with some flight simulators) or because so many icons and controls crammed onto the screen (as in some badly designed strategy games) leave little room for the main view of the game world. Here you learn some options for managing your game's complexity.
This option should be your first resort. If your game is too complex, make it simpler. You may do this in two ways: with abstraction and automation.
When you abstract some aspect of a complicated system, you remove a more accurate and detailed version of that aspect or function and replace it with a less accurate and detailed version or no version at all. This makes the game less realistic but easier to play. If the abstracted feature required UI control or feedback mechanisms, you may save yourself the trouble of designing them.
Many driving games don't simulate fuel consumption; the developers abstracted this idea out of the game. They don't pretend that the car runs by magic—the player can still hear the engine—but they just don't address the question. Consequently, the user interface needs no fuel gauge and no way to put fuel in the car. The player doesn't have to think about these things, which makes the game easier to play.
When you automate a process, you remove it from the player's control and let the computer handle it for her. When the game requires a choice of action, the computer chooses. Note that this isn't the same as abstraction because the underlying process remains part of the core mechanics; you just don't bother the player about it. The computer can take over the process entirely, in which case, again, you can save the time you would have spent on designing UI, or you can build the manual controls into the game but keep them hidden unless the player chooses to take over manual control (usually through an option in a shell menu). Racing games often automate the process of shifting gears so it just happens by itself; the player doesn't have to think about it.
If you let the player choose between automated or manual control over a game feature, you can refer to the two options as beginner's mode and expert mode in the menu where she makes the choice. You might want to reward the player for choosing the more complex task. For example, you can make automated gear-shifting slightly less efficient than expert manual gear-shifting, so the player who gets really good at manual shifting gets a benefit. If the automated task is perfectly efficient, the player has no incentive to learn the manual task.