Network
    Places:
Basic terms and concepts
MOO!


[Up: Network Places] [Next: Supporting Documents]

 The abbreviation MOO stands for "MUD, Object-Oriented" and MUD, in turn, stands for "Multi-User Dungeon." As the name suggests, MUDs were originally used for networked role-playing games; that story is detailed elsewhere, and is largely irrelevant to our purposes.

 Each MOO is a type of computer program, called a server, which runs on one machine (the host machine) somewhere in the world. This program listens for incoming messages directed to it, and then handles them as it deems appropriate. Users connect to the MOO (as with any network server) with a client, which is a computer program (usually) running on the user's machine. The client sends messages to the server, and vice-versa. None of these terms or concepts are MOO-specific.

 Where MOOs differ from most other network servers is in their internal structure. The server has access to a database of MOO objects. Each object in the MOO may define programs (called verbs) and data (called properties). Because these objects are stored in a database on disk, they persist from one invocation of the MOO program to another. The server can send messages to objects in the database (by executing their verbs). Conversely, objects (whose verbs are currently executing) can ask the server to send messages to currently connected clients or to open new network connections to other network places. The details of the server-database interactions are not especially important here; the main thing is that the database is the part of the MOO which users may customize to their heart's content, and the rest of the server (which connected users cannot modify) implements the low-level details.

 The many features of MOO allow users to build virtual worlds limited in scope only by the capacities of their host machines; the depth of users' interactions with these worlds is limited only by the capabilities of their MOO clients. Consequently, most research focuses on improving the capabilities of either the server or the client. The available servers are already quite powerful and now the clients are quickly catching up.

 For years, telnet programs constituted the bulk of MOO clients. Telnet is pretty much the simplest client imaginable, although some telnet programs allow for limited colors and sounds through the use of special escape-code sequences. Later clients incorporated slightly fancier features such as better word-processing capabilities, but were not much more sophisticated than telnet.

 Today, clients clients support a wide range of features, including audio, video, and data sharing. These clients achieve such feats through low-level communications with the server called out of band (OOB) transmissions; such transmissions are (usually) invisible to the user. A client protocol, called MCP, was designed specifically to handle out-of-band transmissions and variants of this protocol are used by advanced MOO clients such as Jupiter or Supernova to work their magic.



[Up: Network Places] [Next: Supporting Documents]