
I am no menu or interface designer whatsoever, only a player who is occasionally surprised by the lack of quality of some game menus and astonished to see the same annoying mistakes repeated over and over again. This isn't a handbook to designing great menus. It is rather a list of the things I think should be avoided at all costs or considered with caution.
Menus and interfaces are important because it is through them that we experience games. A bad interface doesn't mean a game isn't worth playing, but good interface design lets players enjoy a game without distractions or outside frustrations, and the smoother the player can get through a menu, the more easily and frequently he'll be playing the game.
Most of these issues are treated from a PC gamer point of view, thus some of them don't apply to console games, especially the ones related to custom controls or graphical options.
Standards exist for a reason: they are effective solutions to common problems, which is why they were adopted by so many developers in so many games. Standards are good for players: they allow a player to jump from a game to another without having to learn too much new patterns or change his habits. Standards are good for developers: they are pretty safe to use and help save time.
Standards are to handle with care. You can introduce a whole new feature/system, but you should avoid modifying widely accepted ones. Most people are able to learn new systems, but being asked to change their minds and habits is a much bigger issue.
Games are recreation time, this means they have a tremendous potential to teach new things to players. Actually, learning represents a big piece of the fun (see A Theory of Fun by Ralph Koster.) Consequently, adding a new feature is good, as long as it is well thought and intuitive. But there are few things more frustrating than having learnt a system's behavior and being confronted with a new instance that behaves differently.
That doesn't mean there is no room for improvement though; quite the contrary. As long as the fundaments remain, adding new details or improving on previous ones is welcome, and even necessary for the whole medium's advancement. Only by slowly adding complexity and trying out new ideas can progress toward new conventions be made.
This doesn't mean no customization is possible either. The same feature may be called "New Game", "Start Mission", "Begin journey" or "Join the army", players will get the point, especially if other aspects of the standard are respected (the button's top or second position in the menu's list in this case.) Improvement and customization of existing standards should still be thoroughly tested to ensure people don't get confused by the changes.
My advice is to avoid using a system that looks too much like a standard but doesn't work the same way. If players acknowledge a particular submenu doesn't look like anything they've used before, they'll try to make sense out of it and learn how to use it. However, if it looks familiar but behaves differently, frustration is bound to arise.
The amount of settings (graphics, performance, audio, etc.) available to the player has and will continue to increase each year, as new discoveries are made and revolutionary features are created. This explains the amount of incomprehensible terms players have to make sense of to configure their games, and I'm afraid the source of the problem - progress - can't be gotten rid of.
But that doesn't mean there's no effort to be made to help players get the meaning of these features. What if, next to the slider that allows you to pick a value for the texture filtering, from "Bilinear" to "16x Anisotropic", there was a small text explaining the differences between these values and how it would affect the performance? What if, under the box labeled "Enable HDR", there was an interrogation mark icon that, when clicked, would open comparative screenshots of the game with HDR on & off? What if, on the side of the controls list, an animated character performed the move currently selected?
Even if the target audience is limited to hardcore gamers, the kind of people who supposedly can make sense out of these features, there's no excuse for not going the extra mile and helping the player understand what is going on. A part of the software's price got into these features and settings, it'd be a shame to pay for them and not being able to get anything out of them.
Just help the player! An average person who doesn't play games or not much should be able to make sense out of the game settings. There is no point not to provide the user with assistance, as long as it doesn't get in the way of the experienced players.
Game menus are supposed to be rushed through to get to the action; for each feature that's not fully clear, easy or quickly set, there should be some kind of intuitive and unobtrusive help provided. The idea is not to fill the menus with countless explanations, but to provide them in case they're needed.
This problem is closely related, in most cases, to the controls settings, and a good example is the game Hidden & Dangerous 2.
The game presents a total of 76 actions that can be assigned to the keyboard, with no way (but common sense, faith, or trial and error) of knowing the crucial ones from the secondary ones, the shortcuts for features available through in-game menus from the ones that'll constantly be used, nor the effect of some of them. Of course, all of them aren't used all at the same time, and some keys have different effects depending on the context. Still, that's 76 actions assigned to 62 keys by default, and if you want to slightly alter the setup, with such a crowded keyboard, you will have a hard time reorganizing it all.
The efforts involved in setting up the game can discourage the player to even play it. The player spent money on the game, so chances are he'll try to cope up with the menu and give it a try, and the developers obviously thought the default setting through, so it's just about learning it; but this kind of overwhelming design can get pretty damaging when the player is running a demo.
If the game's inputs are complex and there's no way to simplify them, efforts should be focused on making them as accessible to players as possible, by means of text, images, animations or videos, grouping actions by themes, interrupting the game early on to get feedback from the player, etc. There are numerous tools available to help the player along the way and avoid confusion; it is just a pity to see how rarely they are used.
One of the most common instances of this problem is again related to controls settings, especially in games combining different, separate sets of movements (like walking/running, driving a car, piloting a chopper, plane or boat, etc.) Some of these games combine them into a single set of actions, i.e. "Walk forward" becomes "Accelerate" when driving a car, and "Jump" turns into "Go higher" when in a chopper. This is good: it's intuitive and simplifies the input. This in the way Crysis behaves for instance.
But some other developers don't use this solution. Whatever their reasons may be, they force players to assign keys to every type of actions, and let the game switch automatically from a set to another when entering/exiting a vehicle, for instance. I guess one could argue that it allows for more advanced customization of the controls, but this is not the real source of problems anyway.
Troubles arise from conflicts. Let's say I am able to set the same directional keys for every type of movement (e.g. the up arrow is assigned to "Run forward" and "Accelerate", and the left arrow to "Strafe left" and "Turn wheel to the left") Then I notice the "Horn" entry from the car actions, and the "Drop bomb" entry from the plane actions. I figure: why not assign both actions to the same key? It's genuine: there's no bomb dropping involved when driving cars and no horn on jets. Sadly many games won't let me do such a thing, or they allow some of these buttons to have multiple functions but not others.
Why can't I use the same key to jump when I'm on foot and gain altitude when I'm piloting a chopper? Or the same key to toggle crouching and to get a jet's landing tires out? Or the same key to drop my current weapon and to look into the rearview mirror when I'm driving a car?
Conflicts should be the developers' problem, not the players' one. There is no reason why the latter group should cope up with such troubles when they can be avoided.
***
There is an even more common unfair limitation related to controls: when some keys can't actually be assigned to anything. For instance, a whole lot of games don't allow the player to assign the "Return" key to any action. It is just banished from the keyboard once you're in the game. Why is that? I understand the technical challenges at play, as that particular key is also used to accept the new key binding, and so it requires extra coding to get a solution to this conflict. But laziness, lack of time or simply unawareness of the issue are no good excuses: it is unfair, illogical, and can be a real pain if this key is usually central to a player's controls.
I usually use the "Return" key to use, "Delete" to reload, and "Numpad 0" to crouch. Well you can imagine how screwed up my controls are when I occasionally buy a game that won't allow me to use the "Return" key for the aforementioned reason, or the "Delete" key as it is used to remove bound key associations, or "Numpad 0" because of some incompatibility related to the "NumLock" feature. I sure wouldn't have bought the game in the first place if I had been inspired enough to download the demo first.
***
The opposite problem exists aswell. In the PC port of Saints Row 2, I assigned the Up and Down arrows to Run Forward/Backward, as well as Forward/Reverse for car driving, and Accelerate/Reverse for piloting aircrafts. I soon realized I couldn't properly fly a helicopter: pressing the Up arrow would make it go forward and gain height at the same time, and going backward would get me closer to the ground, making it pretty tricky to land on a precise position. The problem was that I was able to assign the same keys for the Run Forward/Backward actions and Accelerate/Reverse, while the two sets had to be seperate to be able to pilot choppers. The lack of limitation led to my confusion and it took me a few minutes to figure out exactly how to fix the situation. Ideally, the issue would have been fixed by combining Run Forward/Backward and Accelerate/Reverse, and adding the actions Go Up/Go Down instead.
I mentioned issues related to setting custom key bindings, but the absence of that possibility is also a serious issue in itself. Usually being lazy console ports, some PC games don't allow to alter any of the controls (Scarface: The World Is Yours) or only part of them (Dead Space). Others do allow such changes but the new binds are only taken into account in certain situations.
Bad ports are seen more and more frequently and they regularly feature such issues. A PC game should have a decent key binding feature, no matter what extra coding is required to make it work. The controls are the only mean the player has to influence the game, to actually play. Messing them up is definitely a bad idea.
General accessibility advice: provide feedback to the user's actions.
I will illustrate this with an example:
I want to set up the game difficulty. I open the settings menu, and then the game options sub-menu. I make the change, and then want to validate it. But my only option is to press the Back button that'll bring me back to the main settings menu. And when I do, nothing tells me my changes have been saved. I need to run the game to see if it was taken into account, and such a thing as the difficulty level isn't so easily evaluated. Simply replacing the label of the Back button by Save Changes would have done the trick, assuring me that clicking it would apply any change I made, saving me from wondering.
The menus must blend nicely with the rest of the game. If, for instance, browsing the main menu is done differently than browsing the in-game menus, people are bound to get frustrated. Keep the menu coherent in itself and within the whole game package as well.
Letting the player set the game options and failing to record it is bound to frustrate him. This is a rare problem, but it's worth mentioning anyway. It happens for different reasons, sometimes because you are supposed to create a profile prior altering the settings and you realize it too late, or because the changes are only saved when exiting the game and it happens to crash to the desktop, failing to do so. Whatever it is, don't let it happen to your players. Force them to open a profile first, save the options right away, etc.
Even though it tends to disappear, forcing the player to exit the game after he tweaked a few graphic settings can and should be avoided. If it is too complex to refresh the game, think about providing a tweaking interface that runs separately, or at the very least, find a way to restart the game automatically instead of forcing the player to find the right shortcut again in the start menu. I would rather see "The game will restart now to apply the changes" than "The changes won't take effect until you restart the game."
Introduction videos (such as advertisements from producers, technologies or trailers) are everywhere these days, and even though I don't especially like them, I understand the pressure to use them. What I don't get though, is why I should have to watch them every single time I want to play the game. This is fair to lock the skip feature on the first run, so they all get seen, but it's not to force the player to sit through 20 seconds of ads everytime he runs the game before getting to the menu, which usually means additional loading times afterwards.
I also don't get games that allow skipping these videos, but add a delay or fading effect to the process. If the player presses a key, it obviously means he wants to go ahead and play, so I really don't see the point in delaying that with a fade-out, especially when the ad itself lasts little more than 3 or 4 seconds.
Furthermore, any key on the keyboard or button on the mouse should allow the player to skip the video, there's no point going through Left Click, Space, Return or Escape when the message is clear: any key pressed means a will to skip the current video. Respect the player's will.