prev | toc | next
 

2.2 Overview: Rooms and the Environment Tree.

Rooms are objects created with the @dig command and having the type flag R.

The syntax for the @dig command is

    @dig <room> [=<parent> [=<regname>]]

The position of rooms —and the resulting `geography' of the MUCK — is determined in two ways. In addition to named exits creating the illusion of spatial relationships (e.g. having a room called `The Village Green' that can be reached by travelling West from `The Cove'), rooms exist in a hierarchical tree structure known as the `environment tree'. One can lead a rich VR life without ever needing to know about the MUCK's environment tree, but builders and administrators will profit from an understanding of how it works.

As an analogy, one might think of the rooms on a MUCK as numerous nested boxes. Room #0, the `global parent', would in our analogy be a large box containing all the other boxes... all the other rooms. Rooms inside #0 can also contain rooms: the boxes can contain other boxes, in an unending series. The boxes (rooms) can contain items (players, things, etc) as well as other boxes. A room that contains another room is said to be a `parent room'; a room contained in another room is said to be a `daughter room'. A given room can be contained in another and at the same time contain other rooms: in this case, the room is both a parent and daughter room. Intermediate rooms of this type are often called `environment rooms'. (Or, another analogy: rooms are like directories in a computer file system: the root directory is analogous to Room #0; environment rooms and rooms are analogous to directories and subdirectories within the root directory; players and objects in rooms are analogous to files in these directories.) Environment rooms are used to define areas of a MUCK and to provide commands or features that should only be available in certain areas.

You can view the series of rooms containing the room you are located in by typing @trace here.

====================================
> @trace here
  Sinshe Village, by the Pier(#687RJ)
  Sinshe Parent Room(#635RA)
  Environment: Lowlands(#285RA)
  Rainforest Parent Room(#121RWA)
  Rainforest: Main Prarent(#118RA)
  Master Environment(#101RA)
  **Missing**
====================================

In this example, the administrators of the MUCK have carefully laid out a consistent, hierarchical environment tree. In addition to the `geographical position' of Sinshe Village, each room on the MUCK has a specific and meaningful place in the environment tree. The village pier is nested inside — or `parented to' — the Sinshe Parent Room (#635), which presumably contains all the rooms that make up the village of Sinshe. This room is in turn parented to Environment: Lowlands (#285), which would contain the parent rooms for all areas in the lowlands. The series continues up through rooms #121, #118, #101, and finally, room #0, which appears on this list as **Missing** (to mortals, rooms not set Abode and not controlled by them appear as **Missing** on a @trace; for security reasons, the global parent of a MUCK is usually not set Abode, and as a result the last item on the list will be **Missing**.)

In fact, not only rooms but all objects on a MUCK have a position in the environment tree. Exits are considered to be located in or on the object to which they are attached. Players and things are always located in a specific room or thing... but, unlike rooms and exits, they move around. The @trace command works on any object. If a player were holding an object called `paper sack', @trace paper sack would show the sack's current position in the environment tree.

====================================
> @trace paper sack
  paper sack(#5474)
  Jessy(#2WQJ)
  Sinshe Village, by the Pier(#687RJ)
  Sinshe Parent Room(#635RA)
  Environment: Lowlands(#285RA)
  Rainforest Parent Room(#121RWA)
  Rainforest: Main Prarent(#118RA)
  Master Environment(#101RA)
  **Missing**
====================================

A newly created room is parented to the first room above it that is set Abode, or the first room controlled by the player issuing the @dig command. If no rooms in the environment path meet one of these criteria, it is parented to Room #0. Keeping parent rooms set Abode will insure that new rooms are correctly parented: if Jessy stood on the pier and typed @dig Under the Pier, the new room would be correctly parented to Sinshe Parent Room(#635RA), the same parent as that of the pier proper.

prev | toc | top | next