Until recently, the business news media fawned over the Second Life online virtual world. Stories fixated on Second Life "residents" who got rich brokering virtual real estate, or on the numerous corporations and consumer brands rushing to claim their presence within it (by building virtual kiosk centers or "islands"). Virtual world hype trumps open source hype, so little virtual ink has gone into discussing the open source initiative that Linden Lab, the company behind the virtual world, established to further its development.
One of these projects is the Linux version of the Second Life client, the viewer application that runs on the resident's computer and lets the resident interact with the graphical environments of the virtual world. Ever since its release, the Linux client has remained in constant development by an informal team, usually three people. Their work could directly benefit the open source and Linux community beyond Second Life, in the aftermath of the hype.
Linden Lab declined a request for current figures on the number of people using the Linux client. Nonetheless, Jason Giglio, a developer and Second Life resident who actively works on the client, says he heard through the proverbial grapevine that about 5 percent of registered Second Life residents, or about 10,000 people, visit Second Life with the Linux client. Giglio does client code on a volunteer basis, but it is work related: He says he earns a living managing virtual land and doing contract programming gigs in Second Life.
Although the Linux population in Second Life is small, the official maintainer and lead developer of the client, who goes by the handle "Tofu Linden," likes to describe them as "amazingly involved and passionate." Tofu is an employee at Linden Lab and works on the Linux client as part of his job. The group has helped him and his volunteer developers, like Giglio, deal with vexing technical issues. Some of their work has helped not only the Linux Second Life client but also the other platform versions.
That is because the same codebase, which Linden Lab makes available under the GNU General Public License, is used for all three platforms, for example, the Microsoft Windows client. The company's FAQ page says it did so to "allow deeper industry and community collaboration, advise the development of market-driven standards, and may one day spur the development of the viewer to accelerate beyond the resources and direction of Linden Lab."
"Linden Lab always had a pretty enlightened view regarding cross-platform development," Giglio says. "It is all OpenGL, with a few compiler conditionals for the small parts of the code that must be platform-specific. I'd estimate 99 percent of the code is not platform-specific, however," he adds.
The Linux version of the client has been labeled as being in alpha for a long while now. Its development remains quite young compared to its Microsoft Windows and Apple Mac OS X counterparts. Tofu wants to test it more thoroughly on a wide range of distributions and configurations before officially moving it to beta or final release status.
"[Linden Lab] had problems with stability and bugs since the beginning. They are transitioning to more of a focus on stability and code quality now. Open source is one way that they can improve code quality," Giglio says.
Presently the Linux client enjoys good stability and, like the other operating system versions, includes in-world streaming video and audio, and embedded Web pages. Voice-chat support is working very roughly as of this writing, but has not been deployed, partly because of licensing issues (it depends on a proprietary library).
"I've never really worked on a C++ codebase as large and complex as Second Life before, so I don't have a lot of basis for comparison. But the codebase overall seems to reinvent a lot of wheels: It doesn't take advantage of existing libraries as much as it could, and the various subsystems are not very well abstracted from each other," says Callum Lerwick, an aspiring video game developer, who works with the Fedora project and has been developing the Second Life client for that distribution.
Wrangling graphics drivers has been the greatest technical challenge for Lerwick and his colleagues, especially on the ATI side. Because drivers from ATI and nVidia are not open source, the Linux community generally cannot do much in the way of trying to fix them or make them more compatible with applications.