December 20, 2006
Most of the features of Second Life enumerated in my previous post appear to be implemented adequately, if not brilliantly. However SL has three fairly glaring deficiencies, which are probably related.
- Lack of external connections
This one is simple. SL currently has no way to embed live web content or other connections to internet resources.
The UI challenges could be finessed by starting with script-controlled web embedding. This alone would be enough to enable all kinds of neat uses. Full interactive web support may or may not be really necessary.
More generally, SL should provide a general way to embed bi-directional external data connections, again via scripting. This would make possible “widgets” that could do all kinds of useful things.
This change would bring SL much closer to a general platform for online activities.
- Lack of reflexive abilities
This requires bigger changes to the current SL model. Right now no one outside of Linden Labs can build higher level tools for creating and modifying prims. Thus a huge range of potential enhancements to the environment are impossible. For SL to become a true platform this is an essential change.
The existing script-level data structures aren’t a good fit for higher level manipulation. However clean ways of describing and manipulating 3D content are available in open source implementations with friendly licenses. Similarly the existing scripting language is limited but cleaner, more powerful languages are easily available.
My guess is that the big issue is that being able to create and modify prims opens the door to huge security and gray goo problems. Note that if this is a fundamental limitation, it implies that an SL type environment can never become a general online platform. In any case, these problems are the focus of my third bullet below.
- Lack of a robust model of behavioral constraints
Right now, SL has a variety of behavioral constraints, based on ownership, scripting limitations, administrator controls, etc. These make possible property (in some sense), a degree of privacy, tolerable freedom from griefing in most cases, rather porous defenses against gray goo, etc.
On the other hand, these behavioral constraints seem ad hoc, require continuing and often urgent interventions by Linden staff, and frequently fail in inconvenient or damaging ways.
If SL is going to become a general platform, this is one thing it needs that can’t be copied from some existing good example: a unified model of behavioral constraint that enables a socially viable world, and that doesn’t require continual tweaks and/or expensive staff support.
Because the need for a good model of behavioral constraints is so central, and so difficult, it deserves some further elaboration.
To enable a socially viable world, such a model has to support something close to the kind of ownership and control we currently expect of private property, and the level of personal security we normally have in our daily lives. Note that neither of these is perfect or seamless, nor are they free — we not only pay taxes for police and military security, we pay for locksmiths, title insurance, car registrations, etc. On the other hand, we don’t have to continually fiddle with security mechanisms or install security upgrades.
I can think of three further design requirements on any such model:
- Manageable by users and developers
Typical computer security models are very easy to screw up. Putting the wrong permissions on some file, forgetting to update some configuration information, etc. can open up a world of hurt. Most users and casual developers won’t accept this level of fragility. So any viable model has to be relatively easy to understand and to manage reliably, at least for the things ordinary users want to do.
- Enforceable by servers alone
Clients can and will be hacked. The behavior constrained by the security model has to be mediated by the server. This is in tension with the desire to off-load as much to the client as possible, to reduce latency and make the whole system more scalable.
- (Almost) fully automated
Human maintenance and enforcement will always be required, but the amount and level of administrative support must be very low relative to the level of user activity. This is essential if we want to create a platform that can move toward the ubiquity and low cost of the web.
Obviously, creating a new behavioral constraint model that meets all these requirements will be very difficult. I do not think it will be impossible, in fact I think we’ll have one within ten years, maybe less.
However I think it behooves us to recognize that the lack of such a model, and the difficulty of creating one, imposes very severe limitations on the potential of virtual worlds for the time being.