Sims, MUDs and GUIs

Cliff Chaput and Brian Slator

User Interface and Simulations

Applications are designed to be microcosms. They all have (or should have) consistent user interface and functionality, to allow the user to understand and even predict how the application will work. This is the purpose that the Macintosh Human Interface Guidelines serve: technical notes for creating applications that are true to the "physics" of the Macintosh.

A result of this consistency and predictability is a greatly reduced learning curve. When you are using a Macintosh application you know right away that you can cut and paste with Command-X and Command-V. Take a moment to consider the implications of this bit of knowledge: you understand what "cut" and "paste" mean, you understand that you can cut and paste non-text objects even if these objects are new to you, and you can cut and paste across applications. This knowledge is so fundamental to the use of a Macintosh, that if any part of this schema fails, it could be said that the application is functioning incorrectly.

This brings us to the second and most important (though least recognized) benefit gained from consistency and predictability. An application with a simple but powerful user interface constitutes a system that lends itself to understanding. By using certain cues, usually visual, we can look at the state of an application, tell whether the state is what we want, and know how to correct it.

A simulation is just like any other application, except that its "physical rules" are designed to be consistent -- to some degree -- with the real world. In the classic simulation example, SimCity, we deal with zones and transportation rather than fonts and sizes. When a city block is riddled with crime, the player can fix the problem in one of several ways: increase the land value by building roads or parks, or put a police station near the property in question, or raise police funding (if it's not at 100%), or increase the land value of the surrounding zones. While these specific operations are meaningful within the context of the SimCity application - like cut and paste - they are also meaningful operations

in the real world.

The hope is that if the program models some aspect of the real world closely enough, the user can transfer the knowledge gained from the application's user interface across domains to the real world. This, by the way, is the flip side to Virtual Reality, where the sensory input (user interface) is sufficiently real to compensate for the lack of realism in the application content. "Seeing is believing," as opposed to the simulation approach, "Believing is seeing." In any case, the operating system provides a suitable ramp up for understanding the application domain. In the case of SimCity for the Macintosh, one can use familiar user interface paradigms - like menus, windows, point-and-click - to accomplish otherwise difficult real-world tasks, like building an airport. This fact makes the Macintosh particularly suited for simulations, provided that the program stick to the Macintosh Human Interface Guidelines.

Multiple User Domains: MUDs

Due to the nature of today's workstation-style computers, most (if not all) simulations to date have the user isolated in the application's microcosm, when in fact one of the most important tools people use in the real world is social interaction. Some simulations try to make up for this deficiency by attempting to simulate social interaction, but the human agent is always limited by the scope of the program and the foresight of the programmer. For the forseeable future, social simulations will always lack the depth, unpredictability, and common sense of actual human beings.

Perhaps the best way to represent human agents in a simulation is to use actual humans. This would relieve the programmer of simulating a secondary microcosm (people) so that she may focus on the primary microcosm, or the domain. Multiple users would then interact with the "physics" of the application, and interact with each other. This adds a new dimension to the concept of simulation, allowing the introduction of cooperation, competition, delegation, trust, and specialization into the domain. This is a new dimension rather than a feature because multiple players can change the simulation idea in many different ways.

Adding multi-player mode to SimCity, for example, could result in many different designs. One design would have different players in different roles: mayor, chief of police, fire chief, transit authority, city clerk, even aldermen. Another design would pit multiple mayors against each other as their cities struggle for the highest rating. Yet another would flip the model upside down and let the players be the citizens who can all vote on zoning laws, etc. We can see that one cannot just make a simulation multi-player; the simulation has to be designed (or re-designed) to accommodate the desired social structure.

One of the first attempts at a multi-player simulation was Zork. Zork was originally designed to accommodate multiple players in the dungeon. The original design allowed for speaking to other players, stealing from them, even killing them. But the design proved to be too unwieldy and was reduced to single-player mode in the hopes that multi-player mode would be implemented later. But the simulation stuff remained, and though it was in a very crude text format, it allowed for dungeon exploration, puzzle solving, and troll killing.

About 10 years later, MONSTER was developed at Northwestern University. The idea of MONSTER was to take the original design of Zork one step further, working from the original multi-player design and a little known feature called "wizard mode". Wizard mode was put into Zork to allow for debugging of the original dungeon, letting you pick up and move objects that weren't supposed to be moved (like the thief), and letting you redirect exits in a limited fashion. MONSTER was designed to give every player this capability, and the result was a programmable and extensible text adventure. Of course, the shift from single-player to multi-player drastically altered the play of the game. At first, users started creating adventures of their own for other users to solve. But later, more complex patterns of social interaction started to arise.

Since MONSTER was implemented on VMS, and the masses were on UNIX boxes of all sorts, MONSTER's port to UNIX was inevitable. The first port was called MUD, for Multiple User Dungeon (though today it is referred to as the more respectable and more accurate Multiple User Domain), and it was more or less the same as MONSTER. But soon several versions of MUD were written to accommodate changing tastes. The internal programming language was cleaned up, a power structure was devised to avoid uncontrollable growth, and the text language was fleshed out to allow for more intricate social interaction.

A MUD/MOO Example

Following is a brief example of intereacting with a MUD (user typing is in boldface):


Welcome to the XXXX MUD

Type 'connect username password' to connect to an existing character.

Type 'create username password' to create a new character.

This MUD is maintained by XXXX.

connect MudUser9 ********

*** Connected ***

BitHead Industries

You are in the lobby of BitHead Industries. The floor and walls are black marble, and indirect fluorescent lighting bounces off the ceiling. To the east there is a reception area.

Obvious exits are northwest and east.

You see a portrait on the wall, tag, gift, and dead rat here.

Last connected Fri Jun 18 17:17:28 1993 CDT from aristotle.ils.nwu.edu


Like any text adventure, the user can manipulate objects.

look

BitHead Industries

You are in the lobby of BitHead Industries. The floor and walls are black

marble, and indirect fluorescent lighting bounces off the ceiling. To the

east there is a reception area.

Obvious exits are northwest and east.

You see a portrait on the wall and a gift here.

look portrait

The painting is an abstract expressionist rendering of BitHead's illustrious founder and president (though it looks kinda like a messy squash).

get portrait

The portrait is way out of your reach.

get gift

You take gift.

look gift

gift-wrapped box with a gift tag

It is empty.

get tag

You take tag.

put tag in gift

You put tag in gift.


The user can also expand the universe by creating new rooms and objects:

@dig south to Janitor's Closet

Janitor's Closet (#340) created.

Exit from BitHead Industries (#101) to Janitor's Closet (#340) via {"south"}

created with id #341.

south

Janitor's Closet

You see nothing special.

@describe here as You are in a small closet that smells like ammonia.

Description set.

look

Janitor's Closet

You are in a small closet that smells like ammonia.

@create $thing called broom

You now have broom with object number #342 and parent generic thing (#5).

drop broom

You drop broom.

look

Janitor's Closet

You are in a small closet that smells like ammonia.

You see broom here.


And, most importantly, the user can interact with other players:

out

Corner of Emerson and Maple

This is the busiest intersection of the city. People bustle past you and buildings tower over you. To the southwest you can see a three-story brick building. To the southeast, there is a towering black monolith.

Obvious exits are the express bus to the Transport Center, southwest, south, and southeast.

south

Maple Food Court

You see nothing special.

Obvious exits are north, Bob's Restaurant, south, and east.

south

Davis Street

You are in the heart of Downtown Evanston

Obvious exits are north, into the El Station, and east.

Wizard is here.

say Hello, Wizard

You say, "Hello, Wizard"

Wizard says, "Hi MudUser9, what's up?"

say I'm putting you into my write-up.

You say, "I'm putting you into my write-up."

Wizard says, "You are?"

Wizard frowns.

give gift to wizard

You hand gift to Wizard.

Wizard removes tag from gift.

Wizard drops tag.

Wizard says, "Thanks."


Since the port of MONSTER to MUD, there has been an explosion of MUDding on the net, the likes of which haven't been seen since Email and News. There are dozens of dungeons you can explore today, with more being created every week. In order to learn more about this phenomenon, LucasFilm's software wrote a rudimentary graphical MUD, where players were animated, and what they said showed up in "word balloons". When they brought the population of the MUD above a hundred, weird properties began to emerge: since room creation cost resources (to control growth), an economy sprang up; one of the players started a church which had dozens of members; the players formed a democracy, voting on changes to the MUD; laws were passed and those who violated them were excised from the MUD. The LucasFilm programmers did not design an economy and a democracy and a legal system into the MUD. They just needed to put in the support structure for such things, like resource units and social interaction and a power structure.

Given all this, it should be clear that MUD/MOO can be the ideal platform from which to start creating multi-player simulations. Technically, a MUD is just a multi-user database and messaging system, which happen to be the essential elements of any multi-player game. It runs on a UNIX box and networks using TCP/IP. So the architecture for a multiple player simulation already exists.

MUDs and GUIs

One of the major shortcomings of MUDs, however, is their low-tech communication system: text. What is needed is graphical user interface layered on top of the networked multi-user database and messaging system that MUDs provide.

While MUDs support the object management and inter-player messaging that is required for multi-player games, and at the same time providing a programming language for writing the simulation and customizing the MUD, the text-based interface is problematic. This led to the development of a MUD client with a graphical user interface (The MOOPort). The MOOPort interface is customizable, along with the simulation itself, leading to the design of simulations and their user interface together. Once a game is designed, the information for it is stored at the server site, both the simulation information and the user interface. This allows one client to be used with all simulations that are created. It also allows for clients to be written on other platforms with minimal pain.

Future Applications

One good idea for application development would be to use the GUI to build the simulation builder itself. This way the people who design the simulations can do so from a graphical Macintosh client. They would design the simulation by describing the interaction of discrete values. They would then create a user interface to do three things: affect the values of the simulation, reflect the state of the simulator, and convey other information like user interaction and tutoring.

The combination of a simulation, multiple players, and multimedia is not only an effective education and training tool, but just a compelling application all around. The LambdaMOO development team at Xerox PARC is currently integrating multimedia into their MOO product. This application should eventually support audio and video. But this is more a bandwidth constraint than anything else. To make the client fully independent of user interface, it would have to receive movie information over the network and display it. Since this is currently impractical, the graphical client software will fake it by sending clip titles rather than the video itself, and storing QuickTime files at the client site.

For a brief description of ongoing GAMES research and develpment at NDSU, see Slator's NDSU Computer Science Research Project List


Original text by Cliff Chaput and Brian Slator, Revised by Brian Slator
Last modified: Sunday, January 12, 1997 at 5:42:18 PM
Send comments to: slator@badlands.nodak.edu