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:
- Unix networking services (daemons): FTPd, telnet, etc.,
listening for FTP or telnet requests on standard ports (usually 19 and 23)
- A web server (daemon): httpd, listening for http requests,
usually on port 80
- A MUD/MOO, listening for telnet requests, usually on port
7777 or 8888
- 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.
|
- 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
- The player provides a username and password (creating a
character if visiting for the first time), which launches a
telnet session in the applet.
- Telnet sends a login request to the server on a non-standard
port (such as 7777 or 8888) where the MUD is listening
- The MUD accepts the login request and associates the
connection with a player character
- The MUD returns a #login directive to the client browser
- In the case of a web browser employing applets,
- The browser launches the applet's user interface code
- The graphical client creates a Java window for the interface, and
requests the necessary graphics files from the web server,
listening on port 80
- The web server returns the requested graphics to the
client, which displays them.
- Thereafter, clicks and button presses on the client are
interpreted and translated into
actions (which sometimes means sending a verb/command to the MUD)
- 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:
- The browser sends an HTTP 'get' request to the MUD which
processes the argument and resolves it to an object
- The object's description is evaluated by the MUD and passed
to the MUD's HTTPD object
- The necessary HTTP syntax is prepended to the description
text and returned to the browser.
- 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
|