Worldspace

From Virtual World Web Wiki
Jump to: navigation, search

Worldspace objects represent the navigable space of a virtual world on the VWW. Worldspace objects form a hierarchy that help to form VWW URLs

VWW URLs

(Main Article: VWW URLs)

Worldspace objects form a hierarchy that also forms a URL path. The location of a Scene is specified using a URL in the following form:

vww://<ServiceProvider>/<World>/<World><Scene>#<StartPoint>?<Query>

Worldspace and Permissions

Worldspace objects are one of two types of securable objects; the other being Entities. Entities can be granted Permissions on these securable objects (Worldspace or other Entities). The securable object hierarchy looks like this:

Securable (permissions are applied "on" a securable)
Entity (permissions are applied "for" an entity)
Account
Persona
EntityGroup
DynamicGroup
Area (Worldspace)
ServiceProvider
World
Scene
SceneInstance
Layer
AreaGroup

Permissions are applied on some securable, for some entity. For example "DrDoom has Enter permission on the Evil Lair scene". In this case DrDoom is a Persona entity and they have Enter permission on the Evil Lair scene (which is a securable)

Types of Worldspace

Service Provider

The root of the worldspace hierachry this singleton object represents the world operators entire system. It can be thought of as host part of a VWW URL (vww://myworld.com).

Permissions applied on this object for various entities have a special meaning. They can be thought of as configuration switches, turning on an off certain system-wide functionality for groups of users based on their group memberships. For example, on a private system, you might only grant the Log On to the System permission to the Registered Entity Group (see Controlling Access)

World

Worlds are containers for Scenes and other worlds. They can be thought of as folders in a filesystem, and they make up the parts of VWW URLs between the slashes.

There is one special world called the Root World. It is the only world with no parent. There are special APIs to find the root world's info (See IWorldspaceSystem.RootWorld). This world is represented by the first "/" character after the host name in a VWW URL.

Permissions can be applied on worlds and they propagate to child worlds and scenes. This is helpful for controlling access to areas of your system. (see Controlling Access)

Scene

Scenes are places in a virtual world that a user can actually navigate to. The name of a scene forms the last part of a VWW URL and can be thought of like a file in a folder (world).

When a user navigates to a scene, an Instance Host starts an Instance of that scene in which connected users can interact.

Permissions can be applied on scenes. The aggregate of permissions from the scene, parent worlds, and the service provider are applied to a user's Connection Identity in instances of the scene.

Scene Instance

An Instance is the run-time manifestation of a scene, and is hosted by an Instance Host.

A shared View of a Document Object Model (DOM) is maintained by the instance host, and a JavaScript scripting environment is created to run Scripts referenced by the DOM.

Permissions from the aggregate of the scene, parent worlds, and the service provider are applied to a user's Connection Identity while they participate in an instance. Although it is technically possible to assign permissions to a scene instance, in most cases it would not be reasonable to do so, since instances are short-lived.

Layer

A layer helps to define the contents of scenes and who can edit them by linking an Object Type (which stores a snippet of 3D Document Object Model) to one or many units of worldspace.

A layer is owned by a single scene, but can be linked to many. By default, a layer is linked to the scene that owns it. The permissions a given entity has on a layer are the aggregate of the layer's permissions, and any inherited from the scene (as described in [[#Scene|Scene]).

When a scene instance is loaded, all layers linked to any worldspace in the scene's hierarchy are loaded. Loading a layer means adding a reference to the layer's Object Type into the scene instance's shared view document.

This powerful capability allows you to create a layer in a scene, edit it, and then link it to many other scenes that use the same map so that they share a similar layout. You can then create additional layers in each of those scenes to further customize them. This combination of shared and scene-local layers can drastically reduce world creation time.

Layers can also assign physical editing boundaries. These are called bounded layers and allow you to assign editing responsibility for a small part of a larger scene to someone else. For example, if you were create a convention hall, you might create a bounded layer for each booth and assign permissions to the exhibitor so they can edit their space.

Permissions can be assigned to layers, although generally you'll assign permissions to the owning scene instead, since those permissions are inherited by all its layers. These permissions might affect your ability to edit or manage a layer.

Area Group

Area groups help you assign [[Permissions], attach layers, assign UI scripts, and more, to a group of worldspace objects at once. You can add any worldspace object to an area group, including other area groups, allowing you to create complex groupings of worldspace and then easily managing them.