Interaction Diagrams

Let's start with the basic principle of the platform. VastPark is based on IMML, which is an XML markup language.

Take a read on what IMML does if you're not familiar with it at the specification section of this wiki: IMML

Basic functioning of a real-time virtual world

VastPark uses IMML to describe the virtual world. Real time interaction is done through sending bits of IMML
around between the user and the server.

The diagram below illustrates this:

Explanation:
Firstly, users enter the VastPark world using the VastPark Player. Each change that a user makes to a "network enabled object" sends a piece of IMML describing this change back to the server. This message is called a network message. (I'll explain "network enabled object" later)
The process:
[1] User makes in-world change in VastPark Player
[2] VastPark Player sends an update of this change to WorldServer Developer Edition
[3] WorldServer Developer Edition consolidates changes from all users and sends consolidated changes to each user
[4] All instances of VastPark Player show these changes to the user

Entering a world in VastPark

Entering a world in VastPark has two stages. [by this i mean the process of loading the world in VastPark Player]

Part 1: Accessing the server, receiving the IMML
The VastPark Player reaches the player by entering the right URI (eg. Vp://myVastParkServer.com/myworld)
The WorldServer Developer Edition returns the IMML of the world.

Part 2: Downloading the elements in the world (Metaforik web service and asset server)

VastPark assets (3-D models, textures...etc) are separated from their spatial positions. The assets are downloaded using an indirect linking process.

Part 1: Accessing the WorldServer Developer Edition, Receiving the IMML

1] User requests to enter a world using VastPark Player. Done through a URI.
[2] The URI leads to a WorldServer and requests for the IMML of the world.
[3] The WorldServer sends the IMML back to the VastPark Player.
Note:
- Pre-condition is that user must be logged in or using a guest ID
- Often a request to the Metaforik web service to check if the user is allowed to access the world occurs between [2] and [3]

The next step of actually loading/downloading the assets of the world happens immediately after, automatically.

Part 2: Loading a world

[1] VastPark Player reads an IMML file and finds assets which are not cached.
[2] VastPark Player queries the Metaforik web service for an asset.
[3] Metaforik returns an xml file if user has permissions.
[4] Based on the xml file, VastPark Player locates the asset
[5] Asset is downloaded from asset server and cached
[6] Assets are shown to the user if called for by the IMML

The IMML file will define what is to be shown to the user, and this will be loaded up.

Click for an explanation of the Metaforik System and specification.

multiuser_interaction_diagram.jpg (11.4 kB) Joshua Nair, 04/21/2010 10:47 pm

Loading_world.jpg (11.7 kB) Joshua Nair, 04/21/2010 11:15 pm

accessing_a_world.jpg (9.5 kB) Joshua Nair, 04/21/2010 11:15 pm