How MUD Games Work

Introduction

MUD stands for Multi-User Domain/Dungeon
MOO stands for MUD, Object-Oriented
LambdaMOO was developed at the Xerox Palo Alto Research Center (PARC), primarily by Pavel Curtis; it is freely available from http://ftp.lambda.moo.mud.org/pub/MOO/.

The MUD-based games operate on a client-server model.

  • The player/user works on a desktop machine, either

    • using a text-based client like tkMOO-light
    • using a graphically based game client designed specifically for the purpose
    • using client software; i.e. a Java Applet launched from a Java-enabled web browser like Netscape or Internet Explorer (IE).

  • The server is typically a Unix machine with the following services:

    1. Unix networking services (daemons): FTPd, telnet, etc., listening for FTP or telnet requests on standard ports (usually 19 and 23)

    2. A web server (daemon): httpd, listening for http requests, usually on port 80

    3. A MUD/MOO, listening for telnet requests, usually on port 7777 or 8888

    4. A MUD/MOO, listening for http requests, usually on port 7778 or 8889, respectively

LambdaMOO is a virtual environment composed of a server, a database, a messaging system, and an object-oriented programming language called LambdaMOO. See lambdamoo.html for more technical detail.

Connecting to a MUD-based Game

When a player connects to a game, the following occurs:


Click on this image to see a larger verion.
  1. Player launches a client
      In the case of a web browser employing applets, it points it to a game site, such as the Dollar Bay site.
    • The web server accepts the request and returns a web page containing a Java applet.
    • The player's web browser begins to execute the Java applet code in its Virtual Machine; typically resulting in a login dialog box being displayed
  2. The player provides a username and password (creating a character if visiting for the first time), which launches a telnet session in the applet.
  3. Telnet sends a login request to the server on a non-standard port (such as 7777 or 8888) where the MUD is listening
  4. The MUD accepts the login request and associates the connection with a player character
  5. The MUD returns a #login directive to the client browser
  6. In the case of a web browser employing applets,
    • The browser launches the applet's user interface code
  7. The graphical client creates a Java window for the interface, and requests the necessary graphics files from the web server, listening on port 80
  8. The web server returns the requested graphics to the client, which displays them.
  9. Thereafter, clicks and button presses on the client are interpreted and translated into actions (which sometimes means sending a verb/command to the MUD)
  10. Data returned from the MUD is in the form of text or directives (see the draft protocol)

Connecting to a MUD-based Web Server

Most of the MUDs running MUD-based games listen on two ports.

Port number 7777 or 8888 is conventionally used for responding to game requests and subsequent interactions.

Port 7778 or 8889, respectively, are normally used by the MUDs to respond to HTTP requests. See, for example, the Web servers hosted by Dollar Bay, the Dollar Bay product list and Blackwood.

When a user points their browser directly at a MUD, following occurs:

  1. The browser sends an HTTP 'get' request to the MUD which processes the argument and resolves it to an object
  2. The object's description is evaluated by the MUD and passed to the MUD's HTTPD object
  3. The necessary HTTP syntax is prepended to the description text and returned to the browser.
  4. The browser interprets the return value as though it were a web page, and displays it as appropriate

See Understanding LambdaMOO Networking for more detail.


History: 28Jan2001, 21Jan2016; Contact: slator@cs.ndsu.edu