The user interfaces for general-purpose virtual environments get a pretty bad rap. It's not surprising, actually. They've generally been pretty awful. Not that they are actually hard to learn, but they've been far from comfortable to use.
That's not really very surprising. Those virtual environments don't really fit any of the accreted body of knowledge of user-interaction models, and building comfortable user-interfaces is no easy task.
In most major software applications, a number of things are well-understood. The user's gaze, common use-cases and more are all well-understood in areas such as word-processing, browsing the web, reading and writing email, and more.
More time is generally spent on the user interface of a major application than on any other part of the software. After all, the software generally only has to perform a single, basic task and do it completely and well. The user interface must make the performance of that task smooth, simple, unimpeded and as pleasant as possible. In most cases, the user interface has the more difficult task.
The amount of usability engineering expended is generally proportional to how much time you hope the user will be spending with the application.
In order for the user to have the best and easiest experience, the user interface needs to be consistent, to make information easily available where the user expects to see it, to allow the user to perform tasks with minimum effort, to provide timely and concise feedback, and -- where possible -- to not crash to the desktop, wipe the hard-drive, or cause hair-loss in pets.
General purpose virtual environments (GPVEs) seem to be the exceptions to the compendious body of user interface design knowledge. Why?
Well, unlike most software that we're familiar with, GPVEs don't just do one thing. A GPVE isn't a task, or a game. It's not a word-processor or a spreadsheet. It's a multi-purpose environment, and environments require many more basic tasks.
While a GPVE might not have as many possibilities as the physical world, you'd probably go a bit crazy if you had to use a mouse and keyboard to move from room to room in the physical world, get dressed, make a cup of coffee, and perhaps a little breakfast. The user interface required to cram any semblance of those activities into mouse and keyboard interactions would be ludicrously complex.
It's no surprise, then, that our physical bodies -- our user-interface to the physical world -- are among the most complicated systems that exist. They take years to learn to use, and even longer to learn to use well.
Simpler user interfaces (like the controls of a car, with two to three pedals, a gear-shift, a wheel, some dials and gauges, and a few mirrors) often expect us to take at least a year to master the basics, and longer to become really competent. All that for the basic tasks of go-faster, go-slower, stop, go-backwards, turn and don't-injure-anyone.
In a GPVE, there's a welter of tasks. Moving, looking around, positioning objects in 3-D space, modifying avatar appearance, managing inventory, carrying on conversations (in text or in voice), instant messaging, playing media, managing virtual currency or land, or interacting with the user interfaces of any number of user-created systems.
And yet, with all of these GPVEs, the presentation-layers of the user interfaces feel more like an afterthought, a dubious veneer of control bolted onto a rich toolbox of possibilities. It's little wonder that a user tends to feel like Stephen Hawking on an episode of Trading Spaces.
Graphical GPVEs, however, aren't yet well-understood. There's little accumulated research into the virtual environment user's gaze. Where do they look? What portions of the screen are best for certain elements?
The gaze is different, but the principles applied are much the same, generally resulting in a Frankensteinian assemblage of tools made even more complex by an attempt to resemble some other, more familiar kind of application, like a game or a web-browser.
Virtually every major software application has a completely configurable interface, allowing the user to see more or less (or none!) of the user interface. You're expected to reconfigure the application's interface as suits you best.
For GPVEs, configurability is minimal or absent. You're expected to love it or leave it.
Yes, usability engineering is really very hard. It's even more difficult with new paradigms of software. That difficulty doesn't excuse skimping on essentials like usability testing, or running usability tests without control groups. Rather it demands that we try to do better.
And until we do, we'll be stuck creating and consuming digital 3-D content with the user interface equivalents of stone-knives and bear-skins.