OK, this is something I've been thinking about for a while, and today's the day. I'm adding a new item to my long-running list of "things game developers should and should not do". My item for today is a misquote of Jeff Goldblum's annoying character in Jurassic Park. . .
As far as user-interfaces go, just because you can do something doesn't mean you should
This is something that's been bugging me with products nowadays. It's especially true of big companies with competitive products. In an attempt to be competitive, they're allowing tons of feature-creep into the apps, and we're ending up with apps that are a big mess!
There's no better way to show off this problem than with the media players out there. There are three major media players out there (two if you're not using Windows). First, there's the Windows media player that comes with Windows. Here's the latest version. . .
It's fairly simple, and it's easy to figure out the first time. The area with the big logo is where the video plays. The controls under the video are fairly self-explanatory (except for that three-line thingy next to the volume control). The volume control's use is obvious. If you hover the mouse over any button, it'll tell you what it does.
My only complaint is that toolbar under the menus. It contains buttons that link to Microsoft's web sites. Given that the Windows media player has a "Favorites" menu that works like your browser's bookmarks menu, why add extra buttons to duplicate this functionality? Why not just put up "radio", "music", and "media guide" as pre-defined bookmarks?
Anyway, that's a minor complaint. Otherwise, it's downright easy to figure out. Let's move on.
My next example is Real Inc's RealPlayer. . .
Uh oh. Things are getting busy here. The play-controls and volume are still pretty obvious, but they felt the need to spread 'em out. The big problem here, though, is that there are no fewer than five different places where you can click-through to sites. First off, there are TWO menus which contain links. The "Presets" menu works like your browser's bookmarks menu. The "Sites" menu is basically the same, but you can't change or add entries. The panel to the left of the video window contains even more bookmarks. Finally, there is a way to search snap.com (because I often feel the need to search the web from my movie player) and YET ANOTHER button that takes you to yet another list of bookmarks. Why?
Another problem with this program is that they decided to do cute things with the non-client area. Even though I don't have gradient title-bars set up, RealPlayer decided that they're smarter than I am, and they added a fade-to-black in my title bar. They also decided that the System Menu in the title-bar was a lousy idea, so they replaced it with their icon. Why?
Finally, the player emits a noisy flourish whenever it is launched. I don't know why it feels the need to remind me that I've launched it.
Finally, we've got the newest and worst offender. Apple's newest QuickTime player. While Apple's earlier players were a model of user-interface simplicity, their new player is an example of "think different" run amock. Check this thing out. . .
What the hell? First off, Apple has apparently followed McDonald's lead in unlabeled signage, apparently feeling that their users cannot read. The interface is blissfully free of anything that would indicate what anything does.
Next problem is the volume control, which is on the left. While the volume indicator may be obvious, the way you set it is not. You must grab that little gray wheel and turn it, just like a little volume control. While it is cute, it's less obvious and more difficult to use than the slider used by the other players. The controls, while sparser than the other players, are also more difficult. There's no stop button, rewind, or fast forward.
Firthermore, the title-bar isn't just modified, it's gone! Apparently Apple found that users didn't like that whole "minimize-maximize-hide" thing, so they just put a close-box in the corner and eliminated everything else.
The worst problem, however, are the bookmarks. While Apple admirably got away from Real's policy of "bookmarks on every flat surface", Apple did manage to make a bookmark scheme that's slow, cumbersone, and miserably hard to use. Right under the big "play" button, you'll find a tiny handle. If you drag this handle, you pull out a drawer (really!) that contains little unlabeled windows that are your bookmarks. It's a miserably bad motif that manages to not only be more difficult and slower than a browser-style hotlist, but also took a lot more time to develop. Good work, Apple!
The other handle on the right of the drawer is used to resize the window, getting away from their own little motif.
Finally, there's a second "hidden" drawer that's in the same place as the hotlist-drawer. It actually contains the controls for fast-forward and rewind. Apple apparently felt that their users are too dumb to figure out how to fast forward and rewind, so they hid them.
OK, back to my point. Just because you figured out how to write to the non-client area of your window does not mean that you should. Just because you figured out how to launch a URL from your app doesn't mean that you should. Just because you thought up a really cute control doesn't mean you should use it. If you need a scrollable field in your game, use a plain old scrollbar rather than an escoteric slider that mimics the look of your game. If you need the user to click something to continue, use a plain old rectangular button. Forcing the user to learn an entirely new user interface right after he's figured out the user-interface of his computer is just rude.
As far as interface goes, my rules are. . .
- Whenever possible, use native controls (button, scrollbar, checkbox, etc) or controls that mimic the function of the native controls. Users already know how to use 'em.
- If you've got a particular function that doesn't fit with native controls, try to make it as simple as possible. Don't automatically mimic a real-world control (like a round volume knob), as people don't interact with the real world with a mouse.
- If you've got an idea for a terrifically cute, yet useless, interface element, and you feel like you're gonna pop if you don't add it, at least give the user the ability to shut it off.
- If it slows things down, dump it. Trust me, it's just not worth it.
- Don't add gratuitous colors and bitmaps to controls, thinking that it'll make things easier.
- Finally, USE WORDS! Your users know how to read. The old adage "a picture's worth a thousand words" works in some cases, but not all.
More example of good and bad interface is available at the Interface Hall of Shame.