Uli's Web Site
Text adventure tricks for UI design
There is a lot to be learned from people who create text adventures. A text adventure, or interactive fiction as it is sometimes called, is basically a way to tell a story inside the computer and allow the user to manipulate objects in this story and this way drive the actual unfolding of the plot.
Since computers are still not able to understand human thoughts (although the dictation software I'm using to write this proves that they are getting closer), text adventure designers have to employ a lot of clever little tricks to give the appearance of the program understanding what the user is writing. This includes faking your way through language.
People who know a lot about linguistics and natural language processing may be tempted to just give up and claim pretending to understand the user would never be possible. However, text adventure developers quickly became aware of the limited means that the user has to interact with their work. The only thing the user can do is type in text and read text replies generated by the program.
This in turn means that your world model does not have to accurately reflect the actual world. For example, you can take one real world object and split it up into several objects that perform the different functions the object has in the real world. Similarly, if you have a whole bunch of objects they can all be implemented as one single object in your code. Since the user only sees the text they output, they will not even notice that there are three people talking to them instead of one.
The same approach can be applied to other kinds of programming. For example, in user interface design, you can have a single view that displays data on several tabs. You could achieve this, by using a group box and a segmented view to fake a tab view, and changing a few flags on your custom view. As long as it looks and behaves identical to the user, almost everything goes.
This is a useful technique if you want to avoid modes: Instead of providing a mode switch, simply hide it behind a view switch. In addition to finding a good label for each view, you can help the user remember the limitations of the various modes by making the views more unique, for example by using different colors, different icons, or other easily differentiated characteristics. Sometimes, it may also help to move other technically unrelated controls into such a switcher.
For example, if you had a timeline, and you want to the user to be able to switch between arbitrary parts of tracks or just rearranging clips, you could just pretend that there were two different views, even though they might be implemented as the same thing under the hood. Your entire main Window's contents might be inside this tab view, and seemingly be switched out and in if you use the tab's segmented view, while all you may be doing under the hood is change the measurement units used.
Of course, if you decide to fake something, you'd better fake it good: It wouldn't do to select part of a track on which an error occurred, while everything is still switched to the clip view. That would destroy the whole illusion of them being two separate things.
Created: 2007-12-16 @830 Last change: 2008-06-16 @904 | Home | Admin | Edit|
© Copyright 2003-2014 by M. Uli Kusterer, all rights reserved.