Hypergrid

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m (Teleporting via the Hypergrid: Fix link syntax. We don't use http)
 
(25 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{Quicklinks}}
 
{{Quicklinks}}
 
<br />
 
<br />
1
+
 
 
= What is the hypergrid? =
 
= What is the hypergrid? =
 
<!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] -->
 
<!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] -->
Line 9: Line 9:
 
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.
 
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.
  
The hypergrid started as a GForge project, but it is now included in the standard distribution of OpenSimulator. '''To run your OpenSimulator instance in hypergrid mode, please see [[Installing and Running Hypergrid]].'''
+
The hypergrid started as a external project, but it is now included in the standard distribution of OpenSimulator. '''To run your OpenSimulator instance in hypergrid mode, please see [[Installing and Running Hypergrid]].'''
  
  
Line 18: Line 18:
  
  
= Using the Hypergrid =
+
= Teleporting via the Hypergrid =
'''TODO: Need to list all the ways in which a hypergrid teleport can be performed in different viewers.'''
+
The structure of a hypergrid link is similar to a web page link : [hop://]<hg-host>:<hg-port>[/<region-name>][/x/y]. Examples:
  
The structure of a hypergrid link is <hg-address>:<hg-port>:[<region-name>]Examples:
+
"hop://cc.opensimulator.org:8002/keynote 1"
 +
  "hop://grid.mydomain.com:9000"
  
"cc.opensimulator.org:8002:keynote 1"
+
The first example is the Hypergrid address of a region named "keynote 1" on the grid at cc.opensimulator.org that has port 8002.
"grid.mydomain.com:9000"
+
  
The first example is the Hypergrid address of a region named "keynote 1" on the grid at "cc.opensimulator.org" whose login port is 8002The grid address and login port are often the same that one would use to login to a local account on a grid (e.g. the equivalent loginuri for this example would be http://cc.opensimulator.org:8002).
+
The second example gives only the hg-host and port.  In this case, the destination region is the default region setup for that grid, as specified in the [GridService] section of bin/Robust.HG.ini (for grid) or bin/config-include/StandaloneCommon.ini (for standalones).
  
The second example gives only the hg-address and port.  In this case, the destination region is the default region setup for that grid, as specified in the [GridService] section of bin/Robust.HG.ini (for grid) or bin/config-include/StandaloneCommon.ini (for standalones).
+
= Installing and Running =
  
One common way to teleport to an HG address is to paste the address into the map find box of the virtual environment viewer.  If the source grid is Hypergrid-enabled, it will find the remote hg address and bring it up as a map tile which one can then teleport to.
+
Please see [[Installing and Running Hypergrid]].
  
 
= Hypergrid Concepts =
 
= Hypergrid Concepts =
  
See [[Hypergrid Concepts]].
+
* [[Hypergrid Concepts]].
 +
* [[Hypergrid Glossary]].
  
= Hypergrid Implementation =
+
= Hypergrid Development =
 +
See [[Hypergrid Protocol]] for protocol level details.
  
== Hyperlinks and Agent Transfers ==
+
See [[Hypergrid Implementation]] for implementation details.
  
When you establish a link between your opensim and another, a message is sent out to that other opensim requesting information about it; the required information includes the network information of that opensim host, and the coordinates of its first region on its local grid in the form of a region handle. For example, suppose you are linking node X.com:9000, placing it in your local map at 900, 900. That opensim runs one or more regions that likely are not in 900, 900 on their own map; suppose the first region of that opensim is at 1100, 1100. From your point of view, it doesn't matter what those other coordinates are, and you don't need to know -- that's the key to being able to decentralize the "world" as given by a 2D map; you want to place it in your map at 900, 900. The "true" position of that simulator only matters for the LL viewer, when there are teleports between your world and that other opensim. This mapping between coordinate systems is the essence of hyperlinks for opensim; it's one simple but critical thing that the hypergrid implementation does. The mapping happens on the TeleportFinish event; instead of sending the local coordinates to the viewer, the hypergrid teleport wrapper sends the remote coordinates.
+
= Hypergrid Parameters =
 
+
When an agent teleports through that hyperlink the following happens. First, before InformRegionOfChildAgent, the local opensim notifies the remote opensim of this foreign user via the "expect_hg_user" method. That message sends along the addresses of all the servers that this user uses, i.e. user, inventory and asset servers. The remote opensim places an entry for that user in its local user profile cache but not in its user database; the foreign user information is non-persistent. After that, the teleport process is exactly the same as the normal teleport process; the only difference is that the region handles are switched between the remote region's hyperlink position on the local grid and its actual position on its grid.
+
 
+
In summary, the two new concepts introduced by the hypergrid are the concept of an hyperlink and the concept of a "local user" vs. "[[Banning Foreign Users in Hypergrid|foreign user]]".
+
 
+
== Inventory Access ==
+
 
+
Inventory access from abroad is done by wrapping the existing scene-inventory interactions with additional code that gets or posts inventory assets from/to the user's asset server. When inventory is accessed, the hypergrid wrapper checks if the user is foreign and, if she is, the wrapper simply brings the necessary assets from the user's asset server to the local asset cache and server; from then on, the wrapper passes the control to the existing inventory access functions. When something is added to inventory, the hypergrid wrapper is notified via an event, and posts the assets to the user's asset server. A cache of the exchanged item identifiers is maintained so that they aren't brought back over and over again.
+
 
+
The result is that hypergrided opensim instances end up interacting with several asset servers, instead of just one. That interaction is implemented in a straightforward manner by instantiating several GridAssetClient objects, instead of just one.
+
 
+
= Installing and Running =
+
  
Please see [[Installing and Running Hypergrid]]
+
For information about each Hypergrid configuration parameter and what it does, please see [[Hypergrid Parameters]] (eventually).
  
= Hypergrid and Security =
+
= Hypergrid Security =
  
Please see [[Hypergrid Security]]
+
Please see [[Hypergrid Security]].
  
= Banning Foreign Users =
+
= Hypergrid Friends =
  
Please see [[Banning Foreign Users in Hypergrid]]
+
* [[Hypergrid Friends]] (updated 2015)
 +
* [[Hypergrid_Friends_and_IM]] (updated 2011)
  
 
= Public Hypergrid Nodes =
 
= Public Hypergrid Nodes =
Line 72: Line 63:
  
 
= Further References =
 
= Further References =
* http://www.ics.uci.edu/~lopes/opensim/HypergridReferenceGuide.html
+
* [http://www.ics.uci.edu/~lopes/opensim/HypergridReferenceGuide.html The Hypergrid Reference Guide]
 +
* [https://web.archive.org/web/20150426153421/https://dl.dropboxusercontent.com/u/18483217/hypergrid-draft.pdf Hypergrid: Architecture and Protocol for Virtual World Interoperability] - Cristina Videira Lopes paper defining Hypergrid protocol (PDF format)
  
 
= Development Meetings =
 
= Development Meetings =

Latest revision as of 11:53, 24 December 2021


Contents

[edit] What is the hypergrid?

The hypergrid is an extension to opensim that allows you to link your opensim to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds.

The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.

The hypergrid started as a external project, but it is now included in the standard distribution of OpenSimulator. To run your OpenSimulator instance in hypergrid mode, please see Installing and Running Hypergrid.


[edit] Hypergrid Versions

  • Hypergrid 2.0 - current Hypergrid with greater security controls for region operators
  • Hypergrid 1.5 - past Hypergrid version with greater asset security and expanded services
  • Hypergrid 1.0 - the original Hypergrid described below


[edit] Teleporting via the Hypergrid

The structure of a hypergrid link is similar to a web page link : [hop://]<hg-host>:<hg-port>[/<region-name>][/x/y]. Examples:

"hop://cc.opensimulator.org:8002/keynote 1"
"hop://grid.mydomain.com:9000"

The first example is the Hypergrid address of a region named "keynote 1" on the grid at cc.opensimulator.org that has port 8002.

The second example gives only the hg-host and port. In this case, the destination region is the default region setup for that grid, as specified in the [GridService] section of bin/Robust.HG.ini (for grid) or bin/config-include/StandaloneCommon.ini (for standalones).

[edit] Installing and Running

Please see Installing and Running Hypergrid.

[edit] Hypergrid Concepts

[edit] Hypergrid Development

See Hypergrid Protocol for protocol level details.

See Hypergrid Implementation for implementation details.

[edit] Hypergrid Parameters

For information about each Hypergrid configuration parameter and what it does, please see Hypergrid Parameters (eventually).

[edit] Hypergrid Security

Please see Hypergrid Security.

[edit] Hypergrid Friends

[edit] Public Hypergrid Nodes

Please see Public Hypergrid Nodes.

[edit] Hypergrid Lists

Please see Hypergrid Lists.

[edit] Further References

[edit] Development Meetings

Hypergrid Meetings

[edit] See Also

Also see Grider; Virtual World Model; HyperGrid Team

Personal tools
General
About This Wiki