An Intro to HyperGrid, OpenSim's Hyperlink Architecture for the Metaverse
By Wagner James Au
It's been several months since I introduced OStatic readers to OpenSimulator, sometimes described as the "the Apache of virtual worlds." The open source project originated as a reverse-engineered spinoff of Second Life's GPL-licensed viewer code, and continues growing and evolving far beyond it. Especially with the recent addition of an important feature: the "Hypergrid", a new core OpenSim network architecture which may well establish the HTTP protocol of the metaverse. It's the brainchild of Cristina Videira Lopes (seen below), a Xerox PARC alum now an ICS professor at UC Irvine who also happens to be an OpenSim developer and co-founder of a metaverse development company.
"The hypergrid idea came out of the general idea of implementing a truly decentralized metaverse," she told me by email, "where different organizations have control over their virtual worlds, but are able to interact with VWs of other organizations." She submitted it as an OpenSim patch which the development community subsequently reviewed and implemented late last November. "So the Hypergrid now is part of the core code of OpenSim."
Leading OpenSim developer Justin Clark-Casey estimates 12,000 users are already connected from their various OpenSim worlds to the Hypergrid, based on self-reported registration numbers. This growth comes despite the fact that many crucial issues the Hypergrid raises have not been decided on. Chief among them is establishing rules and rights around user-created content that's moved between various nodes of the Hypergrid. What happens for example, when copies of an expensive, custom-made vehicle are moved from Second Life into an OpenSim, and how does the creator get paid?
"I have every sympathy with content creators and I do want to see a situation where people can create content and earn a good amount of money from it," Clark-Casey told me by e-mail. "That said, he asks them to consider the music industry, which initially fought MP3 downloads with DRM, but is gradually coming around to selling DRM-free music files. "Of course, there are many differences between the record industry and the virtual environment content industry. But I think that it does point the way towards a possible eventual accommodation between the need to allow consumers to use the content they've bought, and the need for content creators to be compensated for their work."
Curiously, neither IBM or Linden Lab developers are directly involved in Hypergrid development, even though both companies have been spearheading a virtual world interoperability project. "They are focused on developing the machinery that allows Linden Lab servers to interact with OpenSim servers, at a basic level," said Lopes. "From then on, they may or may not want to support the Hypergrid protocol. But technically, it is already possible to teleport from Linden Lab's grid to an OpenSim grid, and then do a Hypergrid teleport to another OpenSim grid. So we're getting there..."
Clark-Casey suggests a clash in development cultures is another factor. "[T]his is very much a code-led, bottom-up effort which fits fairly intimately with the way in which OpenSim is architected," as he put it. OpenSim's development group prefer to create rough working code immediately, then use it to work out specifications afterward. "[I]f we tried to determine specification up front with parties such as Linden Lab and IBM without any kind of prior implementation," he added, "then we would probably still be arguing over the document right now." With OpenSim moving so fast, it may be the companies that have to adopt to them, and not the other way around.
Clark-Casey has a more extended introduction to Hypergrid on his blog, and of course, the OpenSim site has even more background and instructions on installing Hypergrid. If you're looking to join your own OpenSim world to the Hypergrid, here's some technical considerations below. Of course, doing so requires setting up your own OpenSim; here's a great step-by-step instructional for doing that in Windows XP with MySQL with additional resources here.
SOME HYPERGRID TECHNICAL CONSIDERATIONS
For someone running a small/standalone grid from their home, Clark-Casey told me, "the biggest hurdle is probably exposing the right ports on your local systems so that any foreign grid can contact your local asset and inventory services. This requires port-forwarding to be set up so that ports on the router are forward to your local standalone/grid service ports. The details are somewhat different for each individual router.
"Apart from port forwarding, there is the potential problem of 'NAT Bounce', where some routers cannot properly translate external internet addresses for local machines for traffic traveling within a LAN. This isn't a problem for a local standalone on hypergrid, but it could be an issue for a local grid. A region on a local grid needs to be expose service addresses that can be used by foreign grids to get back at the local asset and inventory services for object rez and similar purposes (the same reasons that require port forwarding). But if you use these addresses then with certain routers the local regions themselves won't be able to find their local services!"
The only real solution, he concluded, is a better router, and points to the list here. "Of course, all this only applies if you're trying to run things from home. If you're using external hosting then these issues shouldn't occur."
"In addition to these difficulties, there are the usual technical hurdles of setting up OpenSim (as for local and grid modes). This involves quite a lot of fiddling with the large OpenSim.ini file and region XML files, both for the usual settings and for the special hypergrid ones (though there's only a few of these.) These aren't too bad for someone fairly patient and technically minded, but they really do tend to rule out Joe Public at this stage."