The original MOO (MUD Object Oriented) codebase was written by Stephen White, based on his experience from creating the programmable TinyMUCK system. There was additional later development and maintenance from LambdaMOO administrator, and former Xerox PARC employee, Pavel Curtis.
One of the most distinguishing features of a MOO is that its users can perform object oriented programming within the server. Examples programs include authoring new rooms and objects, creating new generic objects for others to use, and changing the way the MOO interface operates. The programming language used for extension is the MOO programming language, and many MOOs feature convenient libraries of verbs that can be used by programmers in their coding known as Utilities. The MOO programming language is a domain-specific programming language.
Stephen White, also known by the handles "Ghondahrl" and "ghond", wrote the first version of the MOO server, which was released on May 2, 1990, and used for the operation of a server called AlphaMOO. Pavel Curtis, an employee of Xerox PARC and also known by his handles "Lambda", and "Haakon", took the basic design, language, and code, fixed bugs and added features to release LambdaMOO on October 30, 1990.
According to Jill Serpentelli in her paper Conversational Structure and Personality Correlates of Electronic Communication:
- Curtis went on to explain how the transition occurred from AlphaMOO to LambdaMOO. After fixing bugs in the system, rewriting some of the code, adding more programming capability, and writing documentation, he had created what he termed "a truly separate entity" from the original AlphaMOO. He dubbed this new system LambdaMOO, after one of his names on the system and, according to Curtis, "because it's a key word in some of the other non-mud research that I do." The new system was announced as open for public access on UseNet (a world-wide bulletin board system) in February of 1991 (Curtis, personal communication).
There are currently two distributions of the MOO server code. The more popular of the two, the LambdaMOO server, is named such as indication of the close historical and continuing association of the MOO server code with the first public MOO, LambdaMOO, which is still popular today.
It is this LambdaMOO version of MOO that gained popularity in the early 90s, and it remains the most widely-used distribution of MOO. Pavel Curtis continued to maintain the server for several years. Other early contributors to the LambdaMOO server included users Tim Allen ("Gemba"), "Gary_Severn", Roger Crew ("Rog"), Judy Anderson ("yduJ"), and Eric Ostrom (known as "Joe Feedback"). Later, Eric Ostrom maintained the server, and the server is now maintained by Ben Jackson and Jay Carlson and has a LambdaMOO SourceForge.net project.
Sometime around early 2005, the GammaMOO server forked from LambdaMOO with the goal of being a testing ground for new features not yet qualified for inclusion in the main MOO distribution (which has very strict standards for any changes). It can be seen as a the equivalent of a "development branch" that most other projects have.
Several servers were inspired by MOOs object oriented characteristics. Stephen White went on to write a new and similar system called CoolMUD, although it never obtained the same wide userbase as MOO. Another attempt at a programmable object-oriented MUD server was ColdMUD, written by Greg Hudson and later maintained by Brandon Gillespie under the name "Genesis".
One unusual MOO with no real relationship to the original MOO is Mooix. Mooix is unique among MUDs in that it uses the underlying UNIX operating system to handle all of the multitasking and networking issues. Several unique side effects result from this, one of which is that the MOO can be programmed in any language. Mooix was written after a failed attempt by Joey Hess to write a MOO entirely in Perl, called [http://www.kitenet.net/~joey/code/perlmoo.html Perlmoo.
Essays and documentation
- Official MOO FAQ, updated October 2004
- Yib's Guide to MOOing, updated November 2003
- SunNET manual
- The Lost Library of MOO, updated May 2005
- The Purpose of MOOs by Rachel Rein, May 1996
- Educational MOO: Text-Based Virtual Reality for Learning in Community by Lonnie Turbee, March 1997
- Secrets Of The Mud Wizards (chapter 14: Programming MOOs) 1995
- Sue Thomas (2004) Hello World: travels in virtuality York: Raw Nerve BooksISBN 0-9536585-6-2. See also the web view
- Pedagogies in Virtual Spaces: Writing Classes in the MOO, ed. Michael Day. Kairos: A Journal for Teachers of Writing in Webbed Environments. Volume 1, No. 2 (Summer 1996).
- MUDs, MOOs, WOOs and IRC, in Online Teaching: Tools & Projects, by Stuart D. Lee, Susan Armitage, Paul Groves, and Chris Stephens, May 1999.
- MOO Resources - Links to several valuable MOO resources.
- Open Directory - Games: Online: MUDs: Development: Codebases: MOO
- Echo Duet MOO List - Active MOO directory
Cores and programming guides
- LambdaMOO server source
- Encore - Popular educational MOO core
- JHCore - Programming MOO core
- MOO programmers manual, May 1996
- yduJ's MOO programming tutorial
- mooix - a programming language independent MOO
- MOOP - a MOO written entirely in Python. (Previously called POO)
- playsh - a MOO-like text environment that runs on your local computer