external next up previous contents index
Next: 10.2 The MOO Programming Up: Elements of the MOO Previous: Elements of the MOO

10.1 Introduction to the MOO system


Text for this section is mostly stolen from the Introduction to the MOO Programmer's Manual.

LambdaMOO is a network-accessible, multi-user, programmable, interactive system well-suited to the construction of text-based adventure games, conferencing systems, and other collaborative software.

Participants (users, characters) connect to LambdaMOO using Telnet or some other, more specialized, client program. (See section 1.4 on page gif). Upon connection, they are usually presented with a welcome message explaining how to either create a new character or connect to an existing one. Characters are the embodiment of players in the virtual reality that is LambdaMOO.

Having connected to a character, players then give one-line commands that are parsed and interpreted by LambdaMOO as appropriate. Such commands may cause changes in the virtual reality, such as the location of a character, or may simply report on the current state of that reality, such as the appearance of some object.

The job of interpreting those commands is shared between the two major components in the LambdaMOO system: the server and the database. The server is a program, written in C, that manages the network connections, maintains queues of commands and other tasks to be executed, controls all access to the database, and executes other programs written in the MOO programming language. The database contains representations of all the objects in the virtual reality, including the MOO programs that the server executes to give those objects their specific behaviors.

Almost every command is parsed by the server into a call on a MOO procedure, or verb, that actually does the work. Thus, programming in the MOO language is a central part of making non-trivial extensions to the database and thus, the virtual reality.

Therefore, one needs to learn three things:

  1. The MOO Programming language itself.
  2. Extensions to the language that are included in the database you are using: libraries for doing common and rather low-level things.
  3. How to use a core data base: A MOO without core is totally useless (unless you are an expert MOO programmer with a lot of free time), besides the above utilities it includes about 70 to 100 generic objects that will allow you to start building a virtual world, such as: Most MOOs are derived from Lambda Core, but documentation is not always easy to obtain off-MOO. The LambdaCore User's Manual and the Programmer's Manual are outdated, but still might be useful. In most cases it is best to use the ``in-MOO'' help which is more up-to-date than those manuals.

next up previous contents index external
Next: 10.2 The MOO Programming Up: Elements of the MOO Previous: Elements of the MOO

Daniel K. Schneider
Thu Apr 17 12:43:52 MET DST 1997