MUDs
Not Just a Game...
Introduction
20 years ago, the first MUD was written at Essex University.
Now, there are several thousand of them.
Hundreds of papers have been written on the subject..
But these are mainly from a Social Science perspective:
- Anthropology, Psychology, Sociology, Education, Gender Studies.
There's very little formal work in the core technologies
- because MUDs are "just a game".
Well no... MUDs are not "just a game".
MUDs:
- have useful applications
- are of great interest to people studying the human condition
- are a marvellous application domain for many AI techniques.
What is a MUD?
Several definitions:
- a massively-multiplayer online game
- a (usually) text-based virtual reality
- a timesharing system with command line interface
- a real-time database with natural language interface
- a complete waste of time and money...
Perhaps an operational definition might be of more help:
- you're told what's going on
- you say what you want to do, if anything
- you're told how whatever you wanted to do works out
- you repeat the above until you, the MUD or Reality calls it off.
So a MUD is basically a shared virtual world operating in real
time...
How do MUDs Work?
A number of architectures, but essentially client/server:
- user cranks up some client software, e.g.. telnet
- client software connects to server, establishes identity etc..
- client passes user input to server
- server parses input into some internal command format
- server applies command in current context
- sometimes, server generates its own
commands without user involvement
- server informs all relevant clients of the command's effects
- client displays any output it receives.
Server normally executes on a per command basis, but doesn't have to
- some servers effect timesharing at a lower level.
Gratuitous Screenshot
The MUD Family Tree
Originally, people wrote their own MUDs.
- A lot of work, but much kudos!
Most of the MUDs in use today are "stock MUDs".
- Free MUD server software is available on the net.
- MUDs using the same code base tend to be similar.
The cutting edge of MUD technology comes in five places:
- new milieux and applications for MUDs
- increasing object functionality within a MUD
- implementing tightly bound clients and servers
- extending code bases
- writing new servers from scratch.
Practically all MUDs are direct descendants of Essex's MUD (MUD1).
Useful Applications
OK, so games are a major application...
But MUDs also used for things like:
- Education
- Teaching children how to program.
- EFL.
- Training
- Business role-playing scenarios.
- Conferencing
- Therapy
- Social engineering.
- Rape counselling.
Topic of Study
MUDs are of great interest to social scientists because:
- they are microcosms of reality
- they can be used experimentally
- great swathes of empirical data can be collected automatically.
On an individual level, MUDs are interest because:
- they promote personal development
- two approaches, British and American
- they are (usually) meritocracies
- they grant the freedom of anonymity
- they are places you can visit.
On a technical level, MUDs tend to be studied only from a networking
or client/server perspective.
Application Domain
MUDs are excellent places to try out AI applications.
- Main work in this area has been on "bots".
MUDs force you to address some real issues:
- this is a shared world
- there are real human beings in it
- it's all done in real time
But MUDs do draw the line, at places convenient for AI:
- MUD worlds are discrete, not continuous
- all users (human and AI) use the same interface
- the structure of a command is explicitly available
MUDs are good places to integrate areas of AI.
Current State of the Art
Games still drive much MUD development..
Commercial systems concentrating on "graphical MUDs".
- Normal people expect "professional quality".
- Need pictures to get the games magazines to run features.
- Raises the ante beyond the reach of developers of free MUDs.
Some important MUD development work going on at research centres,
though.
- Mainly in the USA.
- MIT in particular.
MUDs are starting to appear in course modules.
- Mainly in the USA
- Almost always from without, not from within.
MUDs and AI (#1)
Great for planning!
- MUD commands as planning operators.
- MUD engine as plan execution module.
Good for speech acts.
- Communication is at the very core of MUDs.
- You really can't do some things without co-operation.
- But some people may be out to get you...
Goodish for plan recognition.
- Limited range of overall goals.
- Lots of ways of achieving those goals.
- Difficult to determine which actions go together.
- People often abandon goals.
MUDs and AI (#2)
Two places where parsing comes in:
- parsing input commands
- parsing what other users say to you.
Parsing input commands isn't a problem.
- Only imperative commands - syntax is limited.
- Just need to be flexible and report errors informatively.
- Users soon learn the right format...
Parsing what other users say is a major problem.
- Grammar and spelling are alien concepts.
- They talk about several things at once.
- They go off-topic.
- But you can get a long way using pattern-matching.
MUDs and AI (#3)
Generating responses:
- not too hard if you don't mind stock phrases and repetition
- not responding is a form of response.
The other major area of interest is learning.
- Extracting information about the virtual world.
- Updating information about the virtual world.
- Hypothesising about the current state of the virtual world.
- Profiles of the other users.
Integrating all this together is exciting.
- Common data structures for multiple uses.
- Belief versus knowledge.
- But complete operational model required, from input to output..
MUDs and Programming
MUDs are great places to learn practical OO programming.
- Most use a C++ kind of syntax and semantics.
- Objects can be created, tested and modified on the fly.
- Lots of functionality to play with.
Some disadvantages to this...
- Single inheritance rules.
- Artificial constraints to stop hangs and crashes.
- Aesthetically, most of what people produce is utter rubbish.
- Virtual world objects are programming objects.
MUDDLE! Like Prolog but:
- with variables typed in a multiple inheritance hierarchy
- implicitness of cut/search is reversed.
MUDDLE Example
/** Function to return the contents of an object as a linear list.
{ contents ?? }:
[]
{ contents container }:
inside(first) 'i' + contents(i)
{ contents list }:
contents(.< first) + contents(.> first)
{ contents [] }:
[]
Conclusion
"MUDs are about as academically interesting as word processors"
Well, not to everyone.
|