Not everything is bright and shiny, though. The major difference these days is the comparatively low stability of OpenSim. It’s far too easy to crash sims. Dealing with a lot of avatars in the same place is also not so easy as in SL: performance degrades very quickly. Overall, it looks and feels like SL in 2003, even though OpenSim replicates pretty much everything that SL supports today (active work is being done on supporting HTML-on-a-prim as well), except perhaps for the more complex land and group operations, and adds a lot of extra features.
Then there is the whole issue of configuration. Although you can install the Diva Distro or the OSGrid distro (which will preconfigure your sim to immediately join OSGrid, one of the uncountable independent grids out there, and one of the oldest and most popular) on Linux, Windows and Mac users have no equivalent solution. It means a lot of time to learn how to properly do it, and documentation is sparse and mostly incomplete: OpenSim’s eternal “alpha” stage of development means that getting help for it is hard, and usually done via IRC or the official mailing lists, and on some independent forums. Some grid operators also offer a degree of technical support. But it’s still hard, compared to using any other Internet application server.
And that’s just for a standalone server. Creating your own grid, specially if it’s for more than just a quick test, is overwhelmingly complicated: you not only require good system administration skills, but also a thorough understanding of the actual codebase, and the way all components interact. These days, 13-old kids can easily turn their home PCs into a full-fledged Web server (or games server!) by just installing a few packages according to a “recipe” — and the defaults will be good enough to get reasonable performance. It’s just when you need to deal with dozens of thousands of daily hits on your webserver that you need to worry about tweaking the system.
With OpenSim, except for quick tests on standalone servers, it means dealing with the architecture from the very first day — unless you couldn’t care less about installing OpenSim but just about using it.
But even becoming merely a “user” is not as easy as in Second Life. There are literally thousands of grid operators. Although all could theoretically be integrated with each other, in practice not all have Hypergrid 1.5 enabled. A few grids still support Hypergrid 1.0, which has far less features and has little IP protection (it was a great way to test the concept, though!). Ironically, the larger the grid, and the more popular it is, the less likely their operators will turn on Hypergrid, or even have the sims updated to the latest versions. While I might just be mean, I think they do it on purpose — very likely for the same reason that LL has abandoned interoperability: they want to capture their own share of users, not let them roam freely across grids, since their revenues come, like LL, from tier costs and eventually from their internal economy server, and the more registered avatars they have on their grid, the better.
This means that some events happening on one popular OpenSim grid might be available only to the users registered on that grid, and be closed to the others. Of course most grids are open and allow easy creation of avatars — but then it means starting all over again.
Imagine a Web where in theory everybody was using HTTP for the protocol and HTML for rendering the web pages… but in some cases you could only reach the page if you were a specially registered user on that website. That’s pretty much what all those OpenSim grids have: all are potentially reachable via Hypergrid, but only some actually allow it. It feels strange… until you remember that Facebook, LinkedIn, Plaxo, etc. work similarly: only registered users that are friends of each other get full access to each other’s pages. Visitors, finding one of those pages througha a Google or Bing search, will just get limited access (or no access at all).
Once you’ve logged in, and even teleported across a few grids, there comes another obvious problem: search. OpenSim allows all sorts of hooks to enable content to be exposed to external search engines (similar to what LL does on the SL Grid, where you can, indeed, search for residents’ profiles on Google, if they’re checked to allow publishing on the Web). But this doesn’t work that well — yet. There is no “universal” intergrid search: at best, you can search for groups (works well with an external module) and residents on the grid you have registered with. Map search works very well inside the grid you’re currently on. However, you can’t search for, say, a specific sim which you remember to have visited once but have no clue on which grid it was.
Content search doesn’t work at all, at least definitely not on the standard OpenSim installation — many grid operators offer either an in-world search or, just like XStreetSL/SL Marketplace, they simply have their own web-based marketplaces. I haven’t tested if they can actually deliver content across grids; my guess is that you have to be logged in on the grid where the content is hosted, or the delivery will fail (but your money will be gone!). No, there isn’t yet an “intergrid marketplace”, although I can imagine that soon someone will attempt to do that. It shouldn’t be too hard: once you’ve designed your marketplace for a grid, and thoroughly tested it to see if it works well, it should be able to deliver content on any grid where you can place one of those merchant boxes. Each grid is usually identified with different tags from the perspective of the programming, and it’s easy to figure out which sim on which grid hosts the merchant box.
Some things which we take for granted actually work differently, and in unexpected ways. For instance, if you IM someone from your grid who is offworld, and your grid operator has enabled IM-to-email, you might get the IM on your email (sometimes it doesn’t work… don’t ask me why). But if you are online on your grid, and your friend is on a different one, this won’t trigger IM-to-email. Giving items is also a bit tricky. You cannot give someone else an item unless you are both logged in on the same grid, no matter what your original grid is. And I don’t think that befriending people works across grids, although, granted, I haven’t tried that often enough. So there is not yet an intergrid presence system. Since, however, most of the underlying communication layers have been moved to Web-based calls, I imagine that cross-grid presence might get theoretically implemented in a future release of Hypergrid.
As a side-note, one of the projects that Philip announced as part of their priorities is fixing their whole presence mechanism. Although this might sound absurd to many, there is really just one communication protocol: IM, which is asynchronous and uses UDP messaging. Sending L$ is a specially-formatted IM (that’s why you never know if the money reaches the destination, it’s not an atomic transaction!); so are content transfers, and, of course, group chat. When someone comes online, an IM is sent to every friend who has you on the list saying “X is online” (that’s why it’s always a good idea to turn that setting off — it will dramatically improve your SL experience!). Everything are IMs! Until recently, even IMs sent across sims would be implemented, well… you guessed: with IMs between servers. 🙁 (Note: I understand that this might have changed recently)
OpenSim is a bit more clever. While the client requires IMs, group chat, money, and content transfers to be received as IMs (and sends them as IMs to the grid), the server is up to the OpenSim developers. What they do is to have the sim funnel all those messages to a “Messaging Service”, and distribute it from there. At the sim level, you can configure some special hooks to allow messages to go elsewhere; one of the first popular modules for OpenSim was to hook it up with an IRC server, where sims and groups become channels and personal IMs just become private IRC messages. The beauty of that is that IRC, although old, is a very familiar protocol which has long passed the test of time and is known to be able to handle nicely millions of users in a distributed way.
Nothing requires using a SL-compatible “Messaging Server”, though. You can totally replace it by something else — say a Jabber/XMPP server, and redistribute presence, messages, money, and content via a XMPP federation. Hook it up with GTalk, and with a plugin, you could in theory send content and L$ from GTalk to an OpenSim grid and vice-versa 🙂 This separation of layers exists in OpenSim since, oh, 2007, I guess; LL is just starting to do the same thing for their own grid…
So I can imagine that it should be easy to replace the current Messaging Server by something that works across grids. After all, they already did that for profiles, too.
Nevertheless, the same caveat applies: while in the future some grid operators might allow their own Messaging Servers to talk to others, some may not. You can see a pattern here… although OpenSim allows a lot of nice extra features, and all recent versions implement them neatly (or at least provide hooks to allow them), that doesn’t mean that the grid operators actually enable them. As more and more people register for an OpenSim grid, possibly lured by the ease of jumping across grids, and start adding friends here and there, and buying content on some grids and bring them to others, they might soon find out that each grid works slightly differently than others. My typical example is the Animation Overrider: only in OpenSim 0.7.X I got one version consistently working fine (I understand some people have simpler variants which have been working for a long time). In theory, I should be able to use my AO on any grid I can teleport to using Hypergrid 1.5, because only OpenSim 0.7 supports that; however, many grids haven’t yet upgraded to 0.7, or have their specially-tailored version of OpenSim, and the AO might not work on those. In Second Life, a scripted device bought anywhere will work on any sim. On OpenSim, you never know if things will work or not on other grids…
In a sense, what we will need in the future is some sort of “OpenSim Consortium” — an organisation of grid operators — that establish some guidelines on the minimum set of features to be offered to all OpenSim users, so that people don’t get any nasty surprises about what they should expect to work. To be honest, that won’t happen soon. Many have hoped that this “consortium” would actually be led by Linden Lab, IBM, Intel, and the remaining charter members of VWRAP — which is, for all purposes, based on LL’s own ideas on how intergrid teleporting should work, with a lot of encryption code to establish authentication and authorisation tokens contributed by IBM. The problem is, as said, that LL dropped that effort. VWRAP is also insanely complex to implement compared to Hypergrid, although, to be honest, all OpenSim installations are actually able to use the very first implementation of the protocol, then named “Open Grid Protocol”, which did allow teleports from LL’s Preview Grid to any OpenSim grid (without any content transfer — not even your avatar would show up! — and you couldn’t add items to your inventory). OGP was really just a proof of concept; LL doesn’t even support it any longer, even for testing purposes, although Snowglobe still has all the code for it.
Also, it’s important to understand that each grid operator has their own terms of services, and in most cases, they bear little resemblance to LL’s own. Content acquired on one grid that has a strong commitment to protecting intellectual property can be theoretically bought and brought to grids that have no such commitment, and if something fails (like the permission system breaking), there is no guarantee that the grid operator will do anything about it — or even care. There is no universal Abuse Report system, and not all grid operators implement their own systems. Being rude to someone on one grid and getting banned does not mean that the same avatar cannot jump to other grids — or create an account elsewhere and use Hypergrid teleporting to come back to the original grid where they had been originally banned. Even more importantly, not all grids have the same paranoid US fear of contaminating young people’s minds with the power of virtual worlds; ReactionGrid, for instance, allows K-12 kids to freely mingle with adults on the same grid, without any restrictions (except the ones imposed by the sim owners themselves). Puritans will be quite frustrated to know that non-US grids can allow legitimate casino operators to establish in-world gambling legally, and there is nobody that can prevent that (of course, illegitimate casino operators will be punishable by local laws, but it’s highly unlikely that the grid operators won’t be affected by that — they will just need to take down the illegitimate casino operators to comply with a court order, and go on with their business as usual). Put it simply, for the better or the worse, Linden Lab’s Terms of Service do not apply to any other grid except LL’s own. For some this might be a paradise; for others, a nightmare come true…