First, for reference, this blog post is about non-game applications.
Usability and GUI design have been hot topics since the dawn of computers. The trends have always been towards increased usability and productivity. Since the world of IT is much more complex than what can be described using graphics from outside IT, GUI design has introduced a lot of mechanisms and visualizations that you need to learn before you can use a computer. A simple "Close" button on a form is actually not very intuitive, but it is one of the first thing we learn, and it's productive, so we could not imagine IT without it. I still remember once I had to teach an old guy how to use a computer. He had no clue about using a mouse, and I had to explain to him how I would use the name "button" for something on a monitor. Button was not as easy to explain as I originally thought, but try to explain to such a user how to tab through a radio button group...!! I still rarely run into people who do not use computers (!!!), and I still often run into people that are blocked from doing what they need to do on a computer, because of poor usability. Usability on computers will never be perfect, but we can do our best to improve it.
If you add 3D graphics, you can suddenly do a lot of new things:
* Moving parts of the GUI can visualize to the user, where a dialog comes from or disappears to. Think about how Windows or other systems minimize applications. You can also use it to browse in a book of multiple pages.
* Zooming into a picture, a chart or similar can be implemented by actually zooming in on the big GUI. This may not always make sense from a productivity point of view, but it certainly makes sense from a usability point of view.
* Semi-transparent layers on top of a normal GUI can be used to clearly identify a group of controls that belong together but are not located at the same place. When that semi-transparent layer moves just slightly, the human vision immediately recognizes all of the controls on that layer as belong to each other. For example, when zooming in on a chart, the axis controls can be positioned on a different semi-transparent layer, so that the user knows that we're only zooming in on the chart, but the axises are not zoomed, they just change the scale.
The current problem is, that most of us need to create software that works on computers without 3D acceleration, or via remote desktop solutions like VNC that do not perform well with 3D graphics. Also, 3D graphics need to be client-side in order to perform well, because server-side applications currently have bandwidth and latency problems.
However, once 3D graphics can be assumed to be available everywhere, the next problem is, how do you design GUI components for this? If you want to design a chart component that allows you to zoom into the chart by "moving towards your GUI", then your chart component needs to affect things outside the box that it was placed in. A good user experience in 3D requires a new infrastructure for writing GUI controls.
A good place to get inspired, is to look at 3D computer games. Imagine that you're writing a database application, with charts, grids, events, popups, comboboxes etc., and then start to look for useful GUI components in 3D games. Computer games experience a much higher pressure for usability, and at the same time there is a pressure for inventing new mechanisms and new paradigms. First person shooters are probably less useful to look at, but many other games are full of interesting solutions to simple usability problems.
Gamers are "niche" users, although a big "niche", with time and will to learn complex - and oftem awkward - interfaces.
It's years people talk about "3D" interfaces, but noone delivered an usable ones. One limit is the lack of proper controls to manipulate 3d interfaces - gamers learn a lot of complex keystroke sequences, or spend money in adavanced controls.
The other is that many user get lost in 3D interfaces - they require the user to be able to "remember" where they are. Gamers are trained to "remember" where they are, normal users aren't.
We're already on the path to 3D graphics - several operating systems and many online applications prove that, and I am sure that this development will continue. The only question is, what will the next steps be? Exploiting the human vision's ability to relate controls that move together will most likely be one thing we will see exploited more.
I think the point is a actually a broader one.
Game UI's are just another special case similar to the web that proves that the IT's industry obsession with "consistency" and user interface "standards" was hopelessly misguided from the very start.
Both show that innovative and creative UI's are no barrier to entry for regular users.
Consistency and Standards are a "crutch" that serve a useful purpose when the TRUE objective of a UI fails... Intuition.
If a user interface is intuitive then it doesn't actually matter whether it conforms to some arbitrary standard laid down in a style guide.
It's only when a user interface is NOT intuitive that those style guides then become important because the user - unable to feel their way around the UI naturally - has to have some "guide book" to help them.
3D gimmicks are one relatively new tool in the intuitive GUI designers toolkit, but the key tool is simply imagination.
Jolyon, I couldn't agree more!
Post a Comment