An open source "Second Life" for Linden Lab

Linden Lab, the creator of online virtual community Second Life, released its viewer earlier this year with a GPL 2.0 license, adding a clause called the "FLOSS exception," which releases developers using certain open source licenses from the requirement that any derivative works be licensed under the GPL. Linden added the exception to make it possible for many more developers to create new applications from Second Life viewer code. "We had the sense that Second Life has the potential to be much bigger than Linden Lab alone," says Rob Lanphier, Linden's director of open source development. "We needed to figured out a way to let the world build this into a much bigger thing."

Lanphier came onboard in September 2006, after the open source initiative had begun. CEO Philip Rosedale, former CTO at Real Networks, quickly realized he needed a true open source expert to lead a project as complicated as open-sourcing the Second Life viewer. Rosedale turned to Lanphier, the person who was in charge of open-sourcing the Helix client for Real.

"[Linden] had drastically underestimated how hard it would be to get the source code out and to keep the service up and running at the same time. It was a bit of a confidence issue," Lanphier says. "I'd worked at Real Networks for nine years and was responsible for managing technical aspects of the Helix community initiative, so this [open-sourcing] was a process that I'd already been through. It's one of those unique skill sets -- there just weren't that many people out there you could hire to do this."

Lanphier has a solid grasp on the benefits of releasing the viewer code to the community. "If you look historically at companies that have had similar opportunities with respect to Internet technologies, you can see AOL, Prodigy, and Compuserve, all duking it out for consumer network access. All of those companies had the potential to be at the foundation of what became what we call the Internet today. What prevented that from happening was that, at a time when they should have been figuring out how to open up, instead they spent their time focusing on monetizing it. What's ironic about that is that they missed out on that opportunity to become Cisco, Google, and all of those other Internet giants of today. They were too focused on trying to keep their arms around the whole enchilada."

Lanphier wants Linden to bypass that mentality by making Second Life as open as possible, from the inside out and not just as a reaction to the current trends. "We could try to create lock-in effects at every level, but we're better off creating a really broad ecosystem that others can build on top of. One of the things that struck me as being very interesting and unique about Linden as opposed to other companies that are doing this is that Linden is taking its core product, at the time that it is in a market-leading position, and open-sourcing it. Most companies tend to do that when they're the scrappy underdog, or trying to recapture the magic. But here there's a general sense that five to 10 years from now there will a significant open source piece to all of this, therefore why not make ours the open source piece and save everybody else the hassle."

Lanphier says the open-sourcing project, which was announced in January, presented a few challenges. "There was a little bit of hygiene," he says. "Any time you take a proprietary piece of software and open-source it, there's always a cleanup. We had to figure out how to clearly separate out our jpeg 2000 renderer because it contained third-party licensing." Lanphier was able to make the code for the renderer modular so that others could replace it with an open source alternative. "All of the code Linden Lab has written is open source, but we still have three or four third-party proprietary libraries left in the viewer code. We're still working the kinks out."

Lanphier says that the Second Life viewer was created with open source in mind from the beginning. "There wasn't any trust in the viewer," he says. That means that most, if not all, transactions are handled on the server side where security can be more closely monitored. "A lot of 3-D games run on the client, and there's all sorts of ways that the client [has to be] a trusted entity. It's very difficult for those companies to open-source. But Second Life isn't a game, and Linden dollars are handled on the server side. Still, one of the challenges we had was that there were some places where the engineers had deviated from the original design and the client was trusted a little bit too much. We had to go back in and patch those up before open-sourcing it."

Other practical considerations included making sure there was sufficient infrastructure in place to handle the anticipated server load when developers descended on the site to download the viewer code. "Being able to have a place for people to download the source tarballs, report bugs, and having the wiki up -- all of those little details," Lanphier says.

There was also a human side to the challenges. "We had to make sure there really was a concrete business strategy behind this," Lanphier says. "Articulating the reasons why this was a good idea and getting everybody on board and headed down the right road was an important thing to do." Lanphier says he focused on making the transition as easy as possible for the development team. "I worked really hard to avoid making this a big upheaval. There was a lot of hard work involved, but we decided not to have all hands on deck. [We did] this like any other project, at the same time a lot of other things were happening."

Lanphier says it is important for IT directors to understand the cultural issues surrounding an open source project like Linden's Second Life viewer. "It's not just the mechanics of getting the source code out there. Some of the best contribution early on is going to be on the quality assurance front. Don't go overboard on the infrastructure side, building out a whole huge mess of version controls or a massive set of tools. Make it more of a gradual process." And don't be afraid to open up your bug database, either. "Companies tend to be more proprietary with that. If they're used to proprietary software development, it doesn't follow to them that putting out source code also means putting out the bugs and discussing everything on a public mailing list. Yet, that stuff is arguably more important than the source code in some respects."

A company that is considering going open source also needs to start treating its community the right way, right away. "The culture shifts need to be part of the plan. I was floored at how quickly everything hit the ground running [with Linden]. One of the reasons for that was how we treated some of the developers prior to open-sourcing. There was a project with Second Life that was technically a violation of our terms of service. We could have come down hard on them and crushed that initiative. But one of the things the team realized was that, look, it's a game of whack-a-mole, and we should be open-sourcing the viewer anyway. It was the TOS that had a bug. By actually treating the folks well, it created a ready-made open source community for us when we did put out the code."