Archive

Posts Tagged ‘xml’

MXP: a universal Metaverse eXchange Protocol

January 30th, 2009

Tommi S. E. Laukkanen and I have merged the next versions of our protocols into something called Metaverse eXchange Protocol (MXP). This is a combination of the principles of CICP (see Ben’s earlier article about CICP), my protocol for allowing external entities to place interactive content into virtual worlds; and SETP, Tommi’s UDP-based protocol for efficient client->server and server->server interaction.

MXP begins with first principles, which are described below. Following the discussion of first principles is a list of terms which we consider “foundational definitions” for MXP; following that list is a description of the messages comprising MXP.

bubbles1

First Principles

We begin with the principle that a virtual world need only contain things which are perceivable. This is the key to interoperability. Logic, process, and internal object attributes exist outside the world. Just as knowledge and thought exist within the minds of humans and are only evidenced when they cause something perceivable to happen, such as a gesture or movement, or a sound; so the humans and programs participating in a virtual world are using the world only as a medium of expression and perception. Concepts such as internal object state, scripting, and logic belong to the participants, not the world.

Our next principle is one of layering. The communication necessary for a virtual world to provide a shared experience among participants takes place using a transport layer and a content definition layer. The transport layer provides a mechanism by which participants may make each other aware of the presence of objects, and then allow participants to transmit messages among their objects. The content definition layer provides the means for participants to publish any specific details and/or assets which define the appearance of their objects, the capabilities of their objects, the available options for interacting with their objects, and the state of any external attributes of their objects.

The layering principle allows us to limit the scope of MXP. MXP provides the transport layer and only enough of the content definition layer to enable the expression of the states of mutable, public attributes of objects. The content definition layer will specify the format and meaning of messages transmitted from object to object using MXP, and will provide a means for participants to publish and fetch content assets associated with objects. It is expected that the content definition layer will utilize XML for encoding of messages and definitions, and that assets and definitions will be fetched using HTTP. To extend the analogy to HTTP and the World Wide Web: the transport layer (MXP) is equivalent to HTTP, and the content definition layer is equivalent to MIME types, html, and other content.

To continue reading, please download the pdf version of the article.

Uncategorized , , , ,