Moving from Moos to Multi-User Applications Steven M
Total Page:16
File Type:pdf, Size:1020Kb
Moving from MOOs to Multi-User Applications Steven M. Drucker Virtual Worlds Group Microsoft Research Microsoft Corporation Abstract limitations when the user interface is extended to include multi-media. This paper provides a brief description of the work we have done on the V-Worlds project, a system that In this paper I will address the limitations of prior work, facilitates the creation of multi-user applications and highlight the unique features of our current work and environments. We have taken concepts originally found discuss applications of this system. in object oriented Multi-User Dungeons (MOOs) and 2. Background and related work extended them to deal with more general multi-user and in particular multi-media applications. We present An object-oriented MUD, such as White and Curtis’ reasons behind the architectural decisions of the MOO [1,2], is a network database server that stores platform and show that it has been used successfully for objects having properties and methods. The topology of a wide range of examples. the space is defined by “room” objects, representing discrete locations, interconnected by portal objects. Keywords Objects in a MOO can also represent things located in a MOOs, Virtual Environments, Rapid Prototyping, room, and objects called “players” or “avatars” Shared environments, Multiuser Applications, DIS, represent the user’s character in the world and are CSCW, Distance Learning, DHTML, ActiveX. intimately associated with a user’s connection into the 1. Introduction world. Users in the same room are able to talk by typing text and reading the text that others type. Each MUD Computers are increasingly being used as room is superficially similar to an Internet chat room or communication devices as opposed to only information IRC channel, but there is no persistence of objects or processing and retrieval devices. In addition to text or their behaviors within IRC. The room metaphor voice over the Internet, entirely new modes of use are generalizes quite well to a variety of applications. A developing that allow for communication in conjunction room could be a classroom for a distance learning with shared data manipulation. application, or a team-room for cooperative work. Software systems are being constructed that enable Other related work includes some systems exclusively synchronized modification of data at many different focused on graphical multi-user environments including locations at once with the changes presented to multiple the Spline system from MERL [3], which uses a similar users in real time. These types of systems span a wide update region to confine the amount of information that range of applications: simple chat systems, buddy lists, needs to be distributed. Zyda et al [4] also discuss textual MUDs, graphical MUDs, distance learning building multi-user graphical environments. Yet another applications, cooperative work systems, and more. related work is discussed in Singh et al [5]. This work However, the development of such applications is often does not look at rapid development or end user hindered by the difficulty in implementing precisely the extensibility and is focused primarily on graphical features that make them attractive - synchronous environments. updating across multiple clients, and persistence of information across sessions. There are now massive multiplayer gaming worlds such as Ultima Online [6] and Everquest [7] that are based The Virtual Worlds Platform grew out of concepts used on MUDs, but don’t allow for end user modification or in object-oriented multi-user dungeons (MUDs & programming. Curtis et al [8] have since developed MOOs) but have been applied to a wide variety of LambdaMOO themselves towards more multimedia applications. MOOs are early examples of textual multi- architectures making many similar design tradeoffs that user environments with persistence and the addition of we do. Greenberg et al. provide a good summary of convenient end-user extensibility. Many of the original toolkits for synchronous collaboration for cooperative decisions in the design of MOOs provide a strong basis work [9]. for rapid prototyping of multi-user applications, albeit with text-only interfaces. This model faces serious 3. Development on the V-Worlds platform document object model. DHTML can be used so that objects can be manipulated from or cause changes to the Our most fundamental departure from MUDs is the shared world. These changes can then be automatically support for generalized interfaces at end-user clients. reflected on the clients of other users as explained This support necessitates distribution of information below. updates to the extent that there is sufficient data to render graphics, sound and other UI at the local clients. Additional ActiveX objects, either already existing Our architecture is based on extending the Microsoft objects or specifically designed ones, can easily be Component Object Model (COM) and OLE added to the web page and hence be controlled through Automation, which allows us to easily extend the the shared world. system in any COM compatible language including C++ We have also used other containers for the V-Worlds and Java, or any ActiveScripting language (VBScript, System Object such as Visual Basic and MFC, which JScript, PerlScript, etc). allowed us to exploit these rapid UI development An earlier architecture document is discussed in Vellon platforms in conjunction with the v-worlds for et al [10]. The exemplar inheritance mechanism widely development of multi-user applications. used in MOOs and also in our system is similar to that used in the SELF system [11]. 3.2 Delegation-based Dynamic Object Model Programming behavior in V-Worlds can be To facilitate the development of new types of objects, accomplished in three ways by: (1) defining methods V-Worlds implements object inheritance in a attached to objects within a shared environment; (2) delegation-based fashion. A V-Worlds object has a adding generalized DHTML to handle user interface property that references its exemplar. The object’s changes on a particular client, or (3) the addition of exemplar is similar (but not identical) to the class of a ActiveX controls (either preexisting or special purpose) C++ or Smalltalk object, and quite a bit like the SELF on clients that can communicate within a shared system [11]. When V-Worlds accesses a property or a environment. method of an object, it first looks in the object itself for that property or method. If it does not find it there, it The V-Worlds Platform supports rapid prototyping in then looks in the object’s exemplar. The search the following fundamental ways: continues up the exemplar hierarchy until the property • UI development via DHTML/scripting or method is found or the top of the hierarchy is reached • Delegation-based dynamic object model (in which case an error results). This mechanism differs changeable at run-time from C++’s in several ways: • Automatic distribution of appropriate • The search is done by name, at run-time (i.e., late- information and procedure calls. bound) • Automatic persistence of information • An object instance can have methods and properties These are explored in further detail in the sections that attached to it (beyond those introduced by its follow. exemplar) • An object’s exemplar is, itself, another object 3.1 DHTML/Scripting UI instance The V-Worlds System Object (described in the next • An object’s exemplar can be changed at run-time section) is embedded in a web page, which allows • V-Worlds does not support multiple inheritance authors to rapidly develop different UIs using existing Inheritance facilitates development because it allows DHTML development techniques. content authors to create new objects by specializing Dynamic HTML (DHTML) is composed of the Internet existing ones. Having created a new object, an author standards Hypertext Markup Language (HTML) 4.0, can allow others to further specialize by declaring his Cascading Style Sheets (CSS) 1.0, and the associated object an exemplar and allowing others to instantiate it document object model. Taken together, these provide a or create additional exemplars that inherit from it. powerful system for quickly building and modifying an V-Worlds does not support multiple inheritance, application user interface. primarily, to keep the programming model simple. By adding the V-Worlds System Object to the web Supporting multiple inheritance requires that users be page, it can interact with the rest of the web page and prepared to handle unintentional name collisions and thereby any object accessible from within the page’s classes encountered multiple times through different function that allows strings of text to be transmitted to base classes (the C++ “virtual base class” problem). the user’s client, and an IsConnected property, allowing scripts to determine if the avatar is actively attached to a Exemplar: Name: logged-in user. There is a one-to-one correspondence properties Description: Geometry: Property Map Container: between a connected avatar and a client application. Contents: Thing Owner: Method Map Rooms define the topology of the world in much the methods MoveTo: Tell: same way as rooms in MUDs do. This topology is Exemplar especially important to help manage the amount of Exemplar: Thing information that needs to be updated for any specific properties Name: Room Property Map Exits: Entrances: change in the world. Only the avatars (and hence the Room clients connected with those avatars) within a certain