New Lessons from the Virtual
Outback
Randy Farmer, Yahoo! Strategic Analyst
Chip Morningstar, Architect, Avistar Communications
MDC, March 27, 2004
Fifteen years ago , we were two pioneers who went to the edge of the (virtual) world and returned to regale civilized folk with stories of the wonders and terrors on the frontier.
Five years later , we took our trusty maps and struck out again into even darker places and vanished from sight for seven years. When we returned, the world had changed, and we couldn’t talk about the things we’d learned.
Enough time has passed that we can share some stories and pictures of the dark lands we visited.
Today , the frontier has many settlements. Gentrification has started. Where there were few voices, now there are many. The time of the grizzled prospectors has passed.
We are now a community of community builders. You have stumbled into the same dangers and found similar treasures. We will tap some of you for short stories tonight.
Original Lessons of Lucasfilm’s Habitat
What were the those Lessons again?
How well have they stood the test of time?
How have you proven or disproved their assertions?
Fifteen years of Avatars and more
Fujitsu strikes back: WorldsAway
Electric Communities: EC Habitats/Microcosm
Electric Communities: The Palace
State Software: bidniz anyone?
New Lessons
What about your Lessons?
Why did we even bother? & Why rehash it now?
The Original Lessons -
The idea of a many-user environment is central to cyberspace.
Communications bandwidth is a scarce resource.
An object-oriented data representation is essential.
The implementation platform is relatively unimportant.
Data communications standards are vital.
Detailed central planning is impossible; don't even try.
You can't trust anyone.
Work within the system.
Get real.
The word “Cyberspace” has aged poorly.
Then
Connection: 1200 baud modem
Platform: 1Mhz, 64K RAM, 160K floppy disk
Networks: CompuServe, Genie, QuantumLink, UseNet
Users: 1m?
Now – Moore’s Law in action…
Connection: At least 56K & 90m Broadband
Platform: 1Ghz, 1Gb RAM, 200Gb disks, live software dist.
Networks: The Internet, AOL
Users: 550m
It’s about the people, duh.
C&R: 1 Reality: 0
Economist’s Scarcity = “not unlimited”
Layman’s Scarcity = “in short supply”
Latency!
“The pipes keep getting wider but they don’t get shorter.”
– Eric Dean Tribble
Client horsepower is bandwidth too.
Sharing: Cory Ondrejka/Linden Labs
Counterpoint: JC Lawrence or Chris Allen
C&R: 2 Reality: 0
This sure seems trite now, as OOP is the defacto coding methodology.
But we weren’t only looking forward to languages like C++ and Java. We meant: think of the things in virtual worlds as first class
“world objects.”
Many MUD folks knew this already. MOO!
This pattern is now the rule, we think, with
Second Life being a strong example.
C&R: 3 Reality: 0
This statement doesn’t look so good given the emergence of the Web Browser as the dominant
PC networking client.
The market is large enough for people to say there is only one platform: the Windows PC.
Might as well write an optimized client for it.
But: Second Life bucks this trend by building on top of platform independent OpenGL libraries.
Will it be worth the pain?
C&R: 3 Reality: 1
This point wasn’t about TCP vs. UDP vs. X.25
It was about confusing software layers
(ISO/OSI) with client/server behavioral protocols and object transfer.
We were right that this was needed, but
Reality instead gave us CORBA
And SOAP (RPC instead of behavior)
And WSDL, replacing meaning with metadata.
C&R: 3 Reality: 2
This was not a call for anarchy. It’s more about social scaling limits.
Emergent behavior on the net is widely acknowledged and studied phenomenon.
But: we missed that some limits (e.g., trusted intermediaries) have significant value. We’ll examine this point in detail during the new lessons.
C&R: 4 Reality: 2
This one has been wholeheartedly adopted and refined by this community. It’s a part of your immune system now.
But: perceived economic pressures keep causing some to ignore their own internal alarms.
Sharing: Damion Schubert
C&R: 5 Reality: 2
We said: Do as much administrative work as possible within your world so customers don’t feel violated from a distance.
What we should have said: Set your users’ expectations about administration clearly and don’t violate those expectations.
This includes resetting expectations early and often, especially when the rumor-mill is rampant.
Sharing: Raph Koster
C&R: 5 Reality: 3
The development cost for many multi-user games has skyrocketed, so this is a true as ever.
The world has arrived on the net. It is real, now.
The dotcom bust was a big Get Real, rammed home with a vengeance. We were in the middle of that tumult, and had this lesson reinforced more than once.
C&R: 6 Reality: 3
C&R: 6,
Though we were right more often than we were wrong, we didn’t always live up to our own ideals during our (ad)ventures over the following 15 years.
We found that some lessons needed to be expanded upon.
Some were correct, but not in the manner we’d hoped.
Some proved harder to heed than we expected.
And there were things that were significantly different than we’d ever imagined...
(1990-2004)
AMiX – The American Information Exchange
“We could’a been eBay!”
Fujitsu Habitat I
Electric Communites/Communities.com
WorldsAway/Fujitsu Habitat/VZones
EC Habitats/Microcosm
The Palace
Passport & Rendezvous
(c. 1990-1994)
Oracle Layza’s Tales
Laid the groundwork for later revival
aka Fujitsu Habitat II aka VZones
(c. 1994-)
The beginning of the age of the undying platform
First platform built by consciously applying The
Lessons.
(c. 1995-2001 proprietary
, 2001pirate
)
The Palace, Inc. merged with Communities.com in 1998
Some lessons come back to bite you.
100% user generated content is NOT good business practice.
Web Client
The Palace Viewer
(c. 1998-1999 beta)
Problems
Too Big
Too Slow
Too Soon
No Market
Second System Syndrome
None are immune
Mistake: Too many dials
New Lessons!
(c. 2000-2002)
The Browser is the client.
Feels like programming the C64 all over again.
Bringing multiuser sessions to Business
More Lessons!
We were able to explore many nooks & crannies that were said by some to be too naive, idealistic, risky, expensive, theoretical, or downright impractical both in the technical and business domains.
Our expedition was financed by the dotcom boom.
Though we barely escaped with our lives (reputations) intact…
Based on some posts to F***edCompany.com, that might be optimistic.
You might disagree with our conclusions, but at least we’ve been there and now we’re going to tell the tales.
Lots of things must be experienced to be understood
People are terrible at imagining what something might be like
Lack of context, visualization skills
Later, they always ask “Why didn’t you tell me that?”
You won’t get this, because I’m telling it to you
A platform is not a service
It’s not even a good business
The tension:
Flexibility vs. Completeness
Sharing: Any MMOG platform vendor/customers out there?
Everybody says this but this time we really mean it
User generated content isn’t free!
Context == Revenue
No one wants to buy ads without assurances about context
(Just ask Janet Jackson and HBO)
Getting the value proposition right is tricky
Sometimes you have more than one kind of customer.
And their interests might not be aligned, e.g. advertiser & consumer
Extraordinary Popular Delusions & the Madness of Crowds
The Eyes Have It
A million free users does not a business make
Free users will abandon you in droves when the money gets turned on. You have to add value.
Boundless Potential
“Things which cannot go on forever eventually tend to stop” – Herbert Stein
First Mover Advantage
Die, McKinsey, die.
The Vision: The Cyberspace Protocols
A plan to save the internet from bad identity, clumsy commerce, and poor displays.
“Never confuse a clear view for a short distance” –
Paul Saffo
Obviously doomed from the start.
Incrementalism wins.
Smart people can rationalize
Why do less when you can do more?
You can’t sell them the solution before they’ve bought the problem.
Example: Distributed Garbage Collection
“Anything you can do, I can do meta!”
– Mark S. Miller
Generalitas gratia generalitatis
Example: Orthogonal Persistence
Like we said, You Can’t Trust Anyone
Not a feature
Not a layer
Not something you add later
Not something you have because you use SSL
Not something you buy from Verisign or RSA
...especially in distributed systems
Confused Deputy problem
If you have to ask, “Who are you?”, your security model is probably already hosed.
See also
http://erights.org
http://www.eros-os.org
http://www.cis.upenn.edu/~KeyKOS
Buys you Security, Reliability, Quality,
Performance improvements
The marching hordes of QA
Sharing: Larry Mellon (TSO)
Hard to get right, but it makes the objects themselves easy
Distributed object semantics are different
Time matters
Asynchronous behavioral object messages, not RPC
Hard: Synchronous – Lag inducing, Blocking, and deceptive.
CORBA, SOAP/WSDL, J2EE
Better: Fire-and-forget behavior messages (aka event-loop) simplifies object implementation.
Do protocol design first.
Scarcity in a distributed world
The magic power of immutability
Client/server distinction is relative to function
The siren song of Peer-to-Peer
EC Habitats was completely P2P… at first.
Object Connectivity != Machine Connectivity
The need for a proxy host – Stars don’t scale.
Natural model: The Room as proxy host.
Human beings are constitutionally incapable of reasoning correctly about threads and locks
Programmers who say “oh, it’s not so hard”
Confused,
Inexperienced, or
Lying, or
Way better than we are
There is an alternative
Events
Asynchronous messages
Capabilities
The “how many identities per server” debate is an artifact of a development expediency.
We don’t need no stink’n shards.
Distribute objects and connections, not geography.
The web guys get this right
Do this during beta, else you’ll be forever fighting fires in release.
WorldsAway client-side object behavior code was TCL source in the clear on the user’s disk.
This caused server bugs to be found!
Publish your protocols. It keeps you honest and lets the good guys help. Proprietary protocols are a fantasy anyway.
Complying with the rules/TOS/etc. may put some users at a disadvantage compared with exploiters and hackers.
Users can honestly misinterpret what the rules actually are.
Sharing: Andrew Boyd
You can’t tell people anything
Beware the Platform
It’s a business
Resilience is better than planning
Smart people can rationalize anything
Security is a design discipline
Capabilities trump User Identity
Compartmentalize
Use the best distributed object model you can afford
Don’t think Client/Server, think Division of Labor
Threads are EVIL
You can do it without Shards
Incent users to crash your world, early & often
Don’t punish people for following the rules.
The original Lesson’s of Habitat called for
Decentralization
Extensibility
We followed those paths, and learned that those are interesting and valuable things, but
They’re hard (Not low-hanging fruit.)
They’re just more tools for making interesting worlds, not ends in themselves.
So, where do we go from here?
Do we retire and write a book? Head back into the wilderness for more study?
No! The age of gentrification is here.
It’s time to build!
The great age of MUDs is still ahead.
Time permitting, we can demonstrate some of our peer-ish secure distributed object model…
It’s been great sharing stories from our 15 years of multiuser entertainment and business explorations. We hope these lessons help you build great things.
Thanks for indulging the old coots and to those who shared their own trials and tribulations.
The final version of this presentation will be available at http://www.fudco.com/habitat