Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Open Source

Second Life: A Programmer's Perspective

Source Code Accompanies This Article. Download It Now.

Dana is a division scientist with BBN Technologies and is an expert in the fields of peer-to-peer and collaborative computing, software agent frameworks, and assistive environments. Dana's identity in Second Life is ElectricSheep Expedition. Raymond is a software engineer with BBN Technologies where he has designed and developed a variety of web applications and other distributed systems. He can be contacted at [email protected] Dana and Raymond's most recent book is Professional Rich Internet Applications: AJAX and Beyond (Wrox, 2007).

Having come up to speed in Web 2.0 concepts such as AJAX, Ruby on Rails, and TurboGears, many developers have begun considering the world beyond Web 2.0, asking: "If there's a 'Web 3.0', what is it, and what does it look and feel like?" One possibility is a next-generation Web embodied as a Rich Immersive Environment (RIE) which, instead of appearing to users as a two-dimensional form in a browser, steeps them in a three-dimensional world filled with places to see, avenues to walk, people to interact with, objects and environments to play with, things to buy, and services to access. Applications grounded in such environments require a completely different style of manipulation by—and interaction with—users. In short, you need to reconsider what the concept of "interface" means, and how to engage users with your work.

In this article, we examine what's involved in developing for Second Life (www.secondlife.com), an emerging RIE developed by Linden Lab (www.lindenlab.com). Second Life has captured both mindshare and a considerable amount of actual commerce revenue for the participants and creators of virtual value.

What is so compelling about Second Life and other emergent virtual (nongame) worlds? In a 2006 interview, Linden Lab CEO Philip Rosedale explains that when entering Second Life, people's digital alter-egos (known as "avatars") can move around and do everything they do in the physical world, but without such bothers as the laws of physics. "When you are at Amazon.com [using current web technology], you are actually there with 10,000 concurrent other people, but you cannot see them or talk to them," Rosedale said. "At Second Life, everything you experience is inherently experienced with others."

Think of what this would mean to a social site. Instead of posting entries and responses on slashdot.org or digg.com and then reading them from a web page or an RSS feed, imagine conversing in real time with actual peers on emerging stories from real Reuters or CNet news feeds. Imagine opening a storefront site for your next brilliant idea and having it literally be a storefront, where you could, in real time, interact with your user base and potential customers. Imagine a world in which you could multitask by first tending to personal activities from "home," turn attention to "work," then break for "lunch" in an RPG adventure or go to a virtual beach in the middle of the day.

That's the promise that Second Life suggests. But there are several other reasons why it should be on your developer radar:

  • Commerce is built into Second Life. It has a real economy fueled by a real currency. Although most of the goods and services in Second Life are virtual, the money is real, and the intellectual property you create is yours. Thus, the programming you do in this world is convertible to real revenue. Residents spent over $200 million in this virtual world in 2006.
  • Every object in Second Life is there because a software developer created it. Currently, the SL incarnation of the metaverse is the open frontier, the wild west. No large players dominate the landscape; by mastering Linden Scripting Language, you are on even footing with any developer anywhere.
  • Potential customers are loyal to the environment and experience. It is estimated that second world "residents" currently spend 40 hours a month in-world, a little more than 10 percent of the amount of time the average American spends watching TV per month. Consider the positive impact for your company of that level of exposure to potential consumers.
  • Second Life is inherently a social experience rather than a game-playing environment. It has been estimated that slightly fewer than 50 percent of SL residents are female; this far exceeds female immersion in game-playing environments. Any web-based business that can attract genders equally holds tremendous promise.
  • Your creations are potentially infinitely scalable. You can create shade changing sunglasses or dirigibles, and after you sell the first copy, you'll still have an infinite number left.

Second Life: The Programmer's View

The primary attraction for software developers in using a platform like Second Life is the ability to create objects that have credible dynamism, even compared to AJAX and browser-based applications. Virtually every one of the objects you encounter in SL, from beach balls to shopping malls, has been created by a developer or team. A short (and incomplete) description of SL is that it is a huge simulator running a potentially enormous number of finite state machines (FSMs). The scripting environment controlling the execution of every one of the FSMs—yours and others—is a C-like language called "Linden Scripting Language" (LSL).

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.