Linden Labs, the folks behind Second Life, have announced that they’re releasing the source code for their client “viewer” application under a GPL license. This announcement has already inspired a good deal of conversation and debate, including a number of emails and blogposts asking me whether I’ve withdrawn my argument with Charlie Nesson in the light of Linden “going open source”.
Nope. Linden’s taken a great step towards opening up their code, but it’s still a huge leap before I would consider Second Life to be an open platform. The Viewer is the application Linden makes available for free so that users can interact with the worlds hosted on Linden’s servers. By making this source code available, Linden is allowing independent developers to create Viewers that run on different platforms – porting it to different Unixes, for instance, or trying to create a viewer that could allow Second Life interaction via mobile phone. It also opens the possibility that people could build lighter-weight clients – messaging applications that alert you via GAIM or IRC that you’ve got someone trying to reach you in SL, for instance.
This makes a ton of business sense for Linden. The current client is free (as in “free beer”) and is designed to upsell “users” into becoming landowners, purchasing space on Linden’s servers. If the FLOSS community is willing to improvements in Viewer’s performance or user interface, Linden benefits because more users are introduced to the world, and more (one assumes) decide to pay for the benefits of becoming a landowner. If an open-source Viewer emerges as a viable contender to Linden’s viewer, there’s the intriguing possibility that Linden could support that project and dump their internal Viewer team, saving on development costs and allowing developers to focus more on the server side of the project.
What Linden is not doing is releasing source code to their servers. If Linden made this code available, it would be possible for individuals or groups to run their own Second Life islands. (You could imagine these new spaces either connected or disconnected from the Second Life that runs on Linden’s servers.) Releasing this code would be a major threat towards Linden’s business model – it opens the possibility that I could run servers that were more stable or less expensive than Linden’s servers and compete head to head with the existing company. You could also imagine situations where groups that wanted to permit or ban certain behavior might run their own Second Life spaces following their own rules, ajudicated by their own administrators.
The core objection I raised with Charlie a few weeks back is the fact that Second Life, at present, is a monopoly. If you decide that, for whatever reason, you no longer want to do business with Linden Labs, you’re anchored in place by the content you’ve created within their servers. While Linden gives you IP ownership of this content – vastly more than what World of Warcraft gives you, as folks like Joi Ito have pointed out – the objects and code you’ve created within Second Life can’t be easily moved to another server not controlled by Linden. Furthermore, those servers are managed by Linden’s team, and, as Charlie pointed out, Second Life users have accepted a usage agreement that gives Linden a great deal of discretion over what constitutes “acceptable behavior”. And if you’re on the wrong side of Linden law, there’s nowhere else to run – your avatars and objects can’t currently be moved to another world with another set of guidelines or governors.
For Second Life to become a platform I’d be willing to encourage educators like Charlie to use, it would need to offer its server code under a FLOSS license, making it possible for anyone competent enought to run a server to do so. This would allow users to pick and choose between services on the basis of reliability, cost, community and content – I could run a dirt-cheap Second Life server, but it’s possible that no one would come because there’s no content or users in my universe yet. It would also allow communities to implement different strategies to define and enforce appropriate behavior, allowing exploration of the governance issues Charlie is so interested in.
Will this happen? Linden has been talking about making their code available under an open source license for three years – releasing the Viewer is certainly a reasonable first step. But it strikes me that Linden would have at least two major obstacles to overcome before they release the server code. One is ensuring they still have a viable business model in a world where anyone can run a server. The second – which may turn out to be harder to navigate – is the issue of brand identification. If users were able to build Second Life servers and enforce their own Terms of Service for those worlds, you can imagine Second Life-accessible or -affiliated worlds where very controversial behavior, like “age play” is permitted and, in fact, the norm. This, in turn, could be a very complicated branding issue for Linden – would the press view these new worlds as independent of Linden, or as part of the larger Second Life phenomenon? (Very few people blame CERN and Tim Berners-Lee for the seedier corners of the Web…)
I’m very interested to see what comes from making the Viewer code accessible. (By the way, Linden’s done a good job, from what I can see, of not only releasing the code, but including detailed build and dependency instructions, as well as making it possible for developers to share documentation, tips, etc.) Some of the reactions on the Second Life blogpost announcing the decision offer some ideas of what custom clients could mean for SL residents:
Offline building? Saving oneâ€™s work/rpims offline? Possibly even voice chat with vocoder plugins (Iâ€™m a dragon in SL and that what Iâ€™d like my voice to sound like rather than human). MIDI implementation? The possibilities are endless…
(Quote from Alazarin Mondrian)
One very real possibility is clients customized for the specific needs of the individuals who use them. Early adopters might use a very streamlined client, designed to let them navigate easily and learn the world, while experienced object authors might use the sort of offline-editor-enabled clients Mondrian is proposing. Looking at the sort of “dashboard” Joi Ito has built to lead his guild on World of Warcraft gives some insight onto what a customized client might look like.
Other commenters aren’t nearly as sanguine. Because a client has to download objects, scripts and textures from a server, there’s the possibility that a rogue client could make unauthorized copies of this content, ignoring the ownership permissions set on the server. An earlier attempt to reverse engineer a FLOSS client for Second Life – libsecondlife – led to the creation of a tool called CopyBot, which can clone objects and textures it encounters in Second Life. Content creators – who make money by designing and selling virtual clothing, avatar customizations, furniture, buildings, etc. – reacted to CopyBot with panic, inspiring Linden to rule that use of CopyBot was forbidden under the Linden terms of service. (Wagner James Au has done a great job of following the CopyBot story, and offered a very helpful followup to his first piece, which included hard questions about whether CopyBot actually was a problem for most SL users, or whether it simply inspired intellectual property panic without much evidence that anyone was actually having their virtual stuff stolen.)
Commenter Ryozu Kojima invokes CopyBot in discussing concerns about the new client:
I fear for the future of content creators however. Although Iâ€™m not a fan of security through obscurity, itâ€™s going to be a very rough few months as people work out the best ways to duplicate content by analizing what the client does with that content.
I expect to see LSL script decompilers/rippers, object duplicators ala CopyBot and much more in the coming months
The silliest decision ever. We knew it was coming, but there is absolutely no security right now in the SL protocols. Once again LL is making the right decisions at the wrong time.
You thought copybot was bad ? Wait until someone comes up with a free L$ generator, a sim/grid nuker or a permission modifier. Iâ€™m pretty sure the server side of SL is creaking with the security holes that allowed that kind of hack in the past…
I predict that in the next couple of weeks we shall see at least one â€œuniversal object replicatorâ€ and one â€œgrid nukerâ€. I sure hope Iâ€™ll be proved wrong.
Where I’d love to be proved wrong is on the question of when Linden will open their server code. I predict it won’t happen within 2007, and might not happen until significantly later. In the meantime, I’m hoping that the opening of the Second Life viewer (along with continuing development on libsecondlife) will lead to good strategies for exporting Second Life objects and scripts into another universe, like OpenCroquet. I suspect that having the ability to move objects out of Second Life and have them function would be a) a great way of seeding a future Croquet universe and b) a way to dilute some of the monopoly power Linden current exerts due to server control.
Cory’s got an interesting piece on the announcement on Boingboing. He and I are interested in the same issues – whether Second Life will make it possible for you to move objects off their servers and onto your own server. Cory reads the announcement as announcing this move is coming soon – I don’t. Dave Winer offered a very interesting comment to start the thread on this post – a sense that if the client code is readable enough, it should make it feasible to engineer a server that replicates the grid servers. That’s a really intriguing idea – I’d love a read from someone who’s started reading the client code on whether they think that would be an easy or hard hack.