MOO

Last updated

A MOO ("MUD, object-oriented" [1] [2] ) is a text-based online virtual reality system to which multiple users (players) are connected at the same time.

Contents

The term MOO is used in two distinct, but related, senses. One is to refer to those programs descended from the original MOO server, and the other is to refer to any MUD that uses object-oriented techniques to organize its database of objects, particularly if it does so in a similar fashion to the original MOO or its derivatives. Most of this article refers to the original MOO and its direct descendants, but see non-descendant MOOs for a list of MOO-like systems.

The original MOO server was authored by Stephen White, based on his experience from creating the programmable TinyMUCK system. [3] [2] There was additional later development and maintenance from LambdaMOO founder, 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, ultimately expanding and changing how it behaves to everyone. [4] Examples of such changes 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 language.[ citation needed ]

Background

MOOs are network accessible, multi-user, programmable, interactive systems well-suited to the construction of text-based adventure games, conferencing systems, and other collaborative software. Their most common use, however, is as multi-participant, low-bandwidth virtual realities. They have been used in academic environments for distance education, collaboration (such as Diversity University), group decision systems, [5] and teaching object-oriented concepts; [6] but others are primarily social in nature, or used for role-playing video games, or simply to take advantage of the programming possibilities. They have also been used in scientific studies of virtual presence. [7] [8] [9]

Most commonly, MOOs are connected to by users using a client which speaks the telnet protocol, which provides a stay-alive connection with the host, to relay output and send commands. Some however have developed web interfaces, or other such methods; however this commonly limits interaction that the user can have, usually to the point they have no interaction, but instead can browse objects and discover typical information. Developments in cross-MOO networking have also led to the creation of SunNET, a hubless network allowing cross-MOO communication and add extra possibilities to cross-MOO development, including networked channels. Another network called GNA-NET, designed by Gustavo Glusman of BioMOO connected seventeen mostly education sites. Most of these MOOs hosted online classes or other early versions of distance education. [10] [11]

Every MOO stores the content and state of all its objects within a persistent object database, which keeps objects from being lost by a reset of the MOO server software or the computer hosting it.

New MOOs have to choose a starting database from which to set their MOO up, or they can use a minimal one which contains only the necessary objects to start a MOO. There are a handful of such MOO "core" databases which serve as foundations of code and utilities from which to start your MOO, including LambdaCore (from LambdaMOO), MinimalDB (considered the minimum necessary code and utilities to work usefully in a MOO), JHCore (from Jay's House Moo), and enCore (from LinguaMOO).

Every object in the MOO is assigned a number, and may be referred to by this number, prefixed with a #, as well as its name when the user is in the object's presence. Administrators, also known as wizards , who can manage the MOO, and assign certain global names to these objects, which are prefixed with $, a process known as corifying. They also feature parenting systems, and every object will have a parent, commonly eventually leading to Root Class, otherwise known as #1. #0 is also reserved as a special system object which is responsible for managing the list of global names, incoming network connections, and other information related to the operation of the system.

History

MOO, along with all of its nephews, started out with text based adventure games. With the advent of the internet, MUD was formed as a networked version of one of those games. Eventually it developed into a tree of different types of MUD, with MOO becoming one of them.

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 the second version, called "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 1991 (Curtis, personal communication). [12]

MOO was originally developed as a MUD server in the same general style (sharing much of the command syntax and community conventions) as TinyMUD.

There are currently[ when? ] 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.

The LambdaMOO version of MOO that gained popularity in the early 1990s, and it remains[ as of? ] the most widely used MOO distribution. 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 Erik Ostrom (known as "Joe Feedback"). Later, Erik Ostrom maintained the server, and the server is now maintained by Ben Jackson and Jay Carlson and has a LambdaMOO SourceForge.net project.

Social behavior on MOOs

Behavior on social MOOs and role-playing MOOs has been shown to differ. For example, an early study looked at whether users engaged in gender-switching (that is, adopting a different gender online). The majority of participants (60 percent) in social MOOs had never engaged in gender-switching, while the majority (56.7 percent) in role-playing MOOs had done so. However, most of those engaged in gender-switching did so on average only 10 percent of the time. The study also found that the primary barrier to gender-switching was the belief that it is dishonest and manipulative. [13]

Current projects based on MOO

Non-descendant MOOs

Some servers use "MOO" style object-oriented characteristics without being descended from the original MOO server, in the sense that they use little or none of that server's source code and use internal languages that are more or less incompatible with the MOO programming language. None of them have attained the popularity of LambdaMOO or its relatives.[ citation needed ]

Stephen White went on to write a new and similar system called CoolMUD, although it never obtained the same wide userbase as MOO. Another, later, attempt at a programmable object-oriented MUD server was ColdMUD, written by Greg Hudson and later maintained by Brandon Gillespie under the name "Genesis". [14]

One unusual MOO with no real relationship to the original MOO is called 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 perlmoo. [15]

Access

Participants (usually referred to as users) connect to a MOO using telnet or some other, more specialized, client program. Upon connection, they are usually presented with a welcome message explaining how to either create a new character or connect to an existing one.

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

Administration

All MOOs provide a flag called Wizard ; when set on a player, the player gains the ability to view and modify nearly everything in the MOOs database. Such players usually form the basis for MOO administration. Designated owners of a MOO are sometimes referred to as Archwizards.

These wizards can restrict access to the MOO, as well as make news postings and monitor logs. Wizard permissions are needed for modification and even execution of verbs and properties for which the user does not own, or is not publicly readable/writable. All verbs and properties within objects have the appropriate flags, with the user can change to determine its current state.

Notable examples

Social MOOs

Research MOOs

Educational MOOs

MOO games

See also

Related Research Articles

LambdaMOO is an online community of the variety called a MOO. It is the oldest MOO today.

A multi-user dungeon, also known as a multi-user dimension or multi-user domain, is a multiplayer real-time virtual world, usually text-based or storyboarded. MUDs combine elements of role-playing games, hack and slash, player versus player, interactive fiction, and online chat. Players can read or view descriptions of rooms, objects, other players, and non-player characters, and perform actions in the virtual world that are typically also described. Players typically interact with each other and the world by typing commands that resemble a natural language, as well as using a character typically called an avatar.

In multiplayer online games, a MUSH is a text-based online social medium to which multiple users are connected at the same time. MUSHes are often used for online social intercourse and role-playing games, although the first forms of MUSH do not appear to be coded specifically to implement gaming activity. MUSH software was originally derived from MUDs; today's two major MUSH variants are descended from TinyMUD, which was fundamentally a social game. MUSH has forked over the years and there are now different varieties with different features, although most have strong similarities and one who is fluent in coding one variety can switch to coding for the other with only a little effort. The source code for most widely used MUSH servers is open source and available from its current maintainers.

In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space, which is written as if it were a normal (local) procedure call, without the programmer explicitly writing the details for the remote interaction. That is, the programmer writes essentially the same code whether the subroutine is local to the executing program, or remote. This is a form of client–server interaction, typically implemented via a request–response message-passing system. In the object-oriented programming paradigm, RPCs are represented by remote method invocation (RMI). The RPC model implies a level of location transparency, namely that calling procedures are largely the same whether they are local or remote, but usually, they are not identical, so local calls can be distinguished from remote calls. Remote calls are usually orders of magnitude slower and less reliable than local calls, so distinguishing them is important.

In computing, a virtual machine (VM) is the virtualization or emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two. Virtual machines differ and are organized by their function, shown here:

<span class="mw-page-title-main">Genera (operating system)</span> Symbolics operating system based on Lisp

Genera is a commercial operating system and integrated development environment for Lisp machines created by Symbolics. It is essentially a fork of an earlier operating system originating on the Massachusetts Institute of Technology (MIT) AI Lab's Lisp machines which Symbolics had used in common with Lisp Machines, Inc. (LMI), and Texas Instruments (TI). Genera was also sold by Symbolics as Open Genera, which runs Genera on computers based on a Digital Equipment Corporation (DEC) Alpha processor using Tru64 UNIX. In 2021 a new version was released as Portable Genera which runs on DEC Alpha, Tru64 UNIX, x86-64 and Arm64 Linux, x86-64 and Apple Silicon M Series macOS. It is released and licensed as proprietary software.

FurryMUCK is one of the oldest and largest non-combat MUD-style games in existence. It was founded in 1990 as an online gathering place for furry fans to meet and socialize in a virtual role-playing environment. Over time, FurryMUCK has become one of the central focal points for furry fandom, with a user base consisting of several thousand, with over 150 users regularly signed on simultaneously.

<span class="mw-page-title-main">Online chat</span> Real-time texting over the internet

Online chat may refer to any kind of communication over the Internet that offers a real-time transmission of text messages from sender to receiver. Chat messages are generally short in order to enable other participants to respond quickly. Thereby, a feeling similar to a spoken conversation is created, which distinguishes chatting from other text-based online communication forms such as Internet forums and email. Online chat may address point-to-point communications as well as multicast communications from one sender to many receivers and voice and video chat, or may be a feature of a web conferencing service.

DataFlex is an object-oriented high-level programming language and a fourth generation visual tool for developing Windows, web and mobile software applications on one framework-based platform. It was introduced and developed by Data Access Corporation beginning in 1982.

LPMud, abbreviated LP, is a family of multi-user dungeon (MUD) server software. Its first instance, the original LPMud game driver, was developed in 1989 by Lars Pensjö. LPMud was innovative in its separation of the MUD infrastructure into a virtual machine and a development framework written in the programming language LPC.

<i>Habitat</i> (video game) 1986 video game by LucasArts

Habitat is a massively multiplayer online role-playing game (MMORPG) developed by LucasArts. It is the first attempt at a large-scale commercial virtual community that was graphic based. Initially created in 1985 by Randy Farmer, Chip Morningstar, Aric Wilmunder and Janet Hunter the game was made available as a beta test in 1986 by Quantum Link, an online service for the Commodore 64 computer and the corporate progenitor to AOL. Both Farmer and Morningstar were given a First Penguin Award at the 2001 Game Developers Choice Awards for their innovative work on Habitat. As a graphical MUD it is considered a forerunner of modern MMORPGs unlike other online communities of the time. Habitat had a GUI and large user base of consumer-oriented users, and those elements in particular have made Habitat a much-cited project and acknowledged benchmark for the design of today's online communities that incorporate accelerated 3D computer graphics and immersive elements into their environments.

"A Rape in Cyberspace, or How an Evil Clown, a Haitian Trickster Spirit, Two Wizards, and a Cast of Dozens Turned a Database into a Society" is an article written by freelance journalist Julian Dibbell and first published in The Village Voice in 1993. The article was later included in Dibbell's book My Tiny Life on his LambdaMOO experiences.

MU* is an abbreviation which refers collectively to a family of text-based multi-user virtual world servers comprising:

<span class="mw-page-title-main">Pavel Curtis</span> American software architect at Microsoft

Pavel Curtis is an American software architect at Microsoft who is best known for having founded and managed LambdaMOO, an online community.

<span class="mw-page-title-main">JADE (programming language)</span>

JADE is a proprietary object-oriented software development and deployment platform product from the New Zealand-based Jade Software Corporation, first released in 1996. It consists of the JADE programming language, Integrated development environment and debugger, integrated application server and object database management system.

TinyMUCK or, more broadly, a MUCK, is a type of user-extendable online text-based role-playing game, designed for role playing and social interaction. Backronyms like "Multi-User Chat/Created/Computer/Character/Carnal Kingdom" and "Multi-User Construction Kit" are sometimes cited, but are not the actual origin of the term; "muck" is simply a play on the term MUD.

<span class="mw-page-title-main">Amy S. Bruckman</span> American professor (born 1965)

Amy Susan Bruckman is a professor at the Georgia Institute of Technology affiliated with the School of Interactive Computing and the GVU Center. She is best known for her pioneering research in the fields of online communities and the learning sciences. In 1999, she was selected as one of MIT Technology Review's TR100 awardees, honoring 100 remarkable innovators under the age of 35.

Diversity University was the first MOO dedicated specifically for education. Like other MUDs, it was an online realm that allowed people to interact in real time by connecting to a central server, assuming a virtual identity within that realm, "teleporting" or "walking" to virtual rooms, and holding text-based conversations with others who had entered the same virtual room. The MOO server kept track of which characters were in each virtual "room," so that the comments of each character would be sent back to the computers of every other person whose character was "in" the same virtual "room." What distinguished Diversity University from other MOOs was its central structuring metaphor as a virtual university campus, as well as its pioneering use for actual online classes.

<span class="mw-page-title-main">Open Cobalt</span> Software for creating virtual worlds

Open Cobalt is a free and open-source software platform for constructing, accessing, and sharing virtual worlds both on local area networks or across the Internet, with no need for centralized servers.

DGD, Dworkin's Game Driver, is an LPMud server written by Felix A. "Dworkin" Croes. DGD pioneered important technical innovations in MUDs, particularly disk-based object storage, full world persistence, separation of concerns between driver and mudlib, runtime morphism, automatic garbage collection, lightweight objects and LPC-to-C compilation.

References

  1. Shah, Rawn; Romine, James (1995). Playing MUDs on the Internet. John Wiley & Sons, Inc. p. 238. ISBN   0-471-11633-5. For example, the MOO (Muds Object-Oriented) is a direct result of work in this area.
  2. 1 2 Taylor, T.L. (2006-02-24). Play Between Worlds: Exploring Online Game Culture. The MIT Press. pp.  23. ISBN   0262201631.
  3. Bartle, Richard (2003). Designing Virtual Worlds . New Riders. p. 11. ISBN   0-13-101816-7. One player, Stephen White, decided in 1990 to extend the functionality of TinyMUD and write TinyMUCK (muck being a kind of mud). Using this as his template, he then produced MOO (MUD, Object Oriented).
  4. Bartle, Richard (2003). Designing Virtual Worlds . New Riders. p. 11. ISBN   0-13-101816-7. MOO introduced a fully functional scripting language (as such in-world programming languages are called) and thus brought the LPC-like capabilities to social-oriented virtual worlds.
  5. Evard, R. (1993, November) Collaborative networked communication: MUDS as systems tools. Proceedings of the Seventh Systems Administration Conference (LISA VII), pp. 1-8, Monterey, CA.
  6. Towell, JF (2000) MOO: An active-learning environment for teaching object-oriented concepts in business information systems curricula, Journal of Information Systems Education, 11(304) 147-150.
  7. Towell, JF, & Towell, ER (1997). Presence in text-based networked virtual environments or "MUDS," Presence: Teleoperators and Virtual Environments 6(5) 590-595.
  8. Shiano, DJ (1999). Lessons from LambdaMOO: A social, text-based virtual environment, Presence: Teleoperators and Virtual Environments 8(2), 127-139 article Archived 2015-05-14 at the Wayback Machine .
  9. Towell, JF & Towell, ER (2001) 34th Meetings of the Hawaii International Conference on Systems Science (HICSS-34), Maui, Hawaii.
  10. "The GNA Network". 2011-07-24. Archived from the original on 2011-07-24. Retrieved 2020-07-19.
  11. "Projet staf14: Distance education on WWW". 2010-05-30. Archived from the original on 2010-05-30. Retrieved 2020-07-19.
  12. "Conversational Structure and Personality Correlates of Electronic Communication". Electronic Frontier Foundation. 2007-09-26. Archived from the original on 2007-09-26. Retrieved 2020-07-19.
  13. Roberts, Lynne D.; Parks, Malcolm R. (1999). "The social geography of gender-switching in virtual environments on the Internet". Information, Communication & Society. 2 (4): 521. doi:10.1080/136911899359538.
  14. Bartle, Richard (2003). Designing Virtual Worlds . New Riders. p. 11. ISBN   0-13-101816-7. MOO had two important offspring: Pavel Curtis' LambdaMOO (which was to become a favorite of journalists, academics, and social misfits) and, via CoolMUD, ColdMUD (an attempt to create a software-engineering quality virtual world authoring system).
  15. "perlmoo". 2007-02-18. Archived from the original on 2007-02-18. Retrieved 2020-07-19.
  16. "LambdaMOO (with LambdaMOO Map) An Introduction -". 2005-12-18. Archived from the original on 2005-12-18. Retrieved 2020-07-19.
  17. Riddle, Prentiss (1993-04-13). "GopherCon '93: Internet Gopher Workshop and Internet Gopher Conference". PrentissRiddle.com. Retrieved 2008-05-20.
  18. "What's New! June 1993". Netscape Corporation. 1993-06-24. Retrieved 2008-05-20.
  19. Hand, Chris (1994). "meet me in cyberspace".
  20. "FactoryNET Prospectus". 1998-12-05. Archived from the original on 1998-12-05. Retrieved 2020-07-19.[ unreliable source? ]
  21. "EFF & Aerosmith Rock the Net - Update - Where/When/How". 2011-09-27. Archived from the original on 2011-09-27. Retrieved 2020-07-19.
  22. LaFarge, Antoinette. "Towards an Id Theater". Plaintext Players.
  23. "SchoolNetMOO Lesson Plan" 14 August 1998
  24. Carton, Sean (1995). Internet Virtual Worlds Quick Tour. Ventana Press. p. 165. ISBN   1-56604-222-4. What began as an experiment in text-based virtual reality has become the hangout for a virtual who's who of media researchers. The MediaMOO is an online recreation of MIT's Media Lab, and it's populated exclusively by people interested in the future of interactive communication, alternative media and virtual reality.
  25. PMC2 Archives
  26. De Cicco, Eta; Farmer, Mike; Hargrave, Claire (1999). Activities for Using the Internet in Primary School. Routledge. ISBN   0-7494-2989-5.
  27. Bruckman, Amy. MOOSE Crossing: Construction, Community, and Learning in a Networked Virtual World for Kids (Ph.D thesis). MIT Media Lab.
  28. "1999 Young Innovator: Amy Bruckman". Technology Review . MIT. November 1999. Retrieved 2007-10-10.
  29. "MOOSECrossing". 2007-05-07. Archived from the original on October 12, 2009. Retrieved 2010-04-22.
  30. Flusfeder, Helena (1996-11-08). "Life mutates in MOO dimension" . Retrieved 2008-12-16.
  31. Anderson, Christopher "Cyberspace Offers Chance To Do 'Virtually' Real Science" 264, 900-901, Science, 1994.
  32. Towell, John Foster, Hansen, Paul, Mercer, Eric, Leach, Martin, Rubin, Irit, Prilusky, Jaime & Glusman, Gustavo (1995, November). Networked virtual environments and electronic conferencing. In S.M. Bachrach, D.B. Boyd, S.K. Gray, W. Hase, and H. Rzepa (Ed.), Proceedings of the First Electronic Computational Chemistry Conference [CD-ROM]. ARInternet: Landower, MD.
  33. Hardy BH, Robinson A, Doughty S, Findsen LA, Towell ER, Towell JF, and Wilson IBH (1996, January) A new direction in conferencing: the First Electronic Glycoscience Conference, Trends in Biochemical Sciences, 21(1), 31-33.
  34. "BioMOO announce VR web interface". 1995-04-30. Retrieved 2008-12-16.
  35. Fuellen, Georg. "GNA's Virtual School of Natural Sciences". Archived from the original on 2008-06-12.
  36. "FUP server builtin functions". 1997-04-17. Retrieved 2008-12-16.
  37. "Login (LinguaMOO)". 2005-12-15. Archived from the original on 2005-12-15. Retrieved 2005-12-01.
  38. Haynes, CA & Holmevik JR (1999) MOOniversity: A Student's Guide to Online Learning Environments, Longman, ISBN   0-205-27114-6
  39. Haynes, CA & Holmevik JR (2001) High Wired: On the Design, Use, and Theory of Educational MOOs, University of Michigan Press, ISBN   0-472-08838-6
  40. Sant, Toni and Flintoff, Kim. , 24 July 2007. Retrieved on 29 October 2012.
  41. "ATHEMOO Basic Information" 28 October 2012
  42. Schrum, Stephen. "Theatre in Cyberspace", Pg 112 Peter Lang Publishing, New York, 1999.