MDC 2004 - Habitat Chronicles

advertisement

Habitat Redux

New Lessons from the Virtual

Outback

Randy Farmer, Yahoo! Strategic Analyst

Chip Morningstar, Architect, Avistar Communications

MDC, March 27, 2004

A Fireside Chat

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.

Agenda – Lessons, Old and New

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?

The Lessons of Lucasfilm’s Habitat

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 idea of a many-user environment is central to cyberspace

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

Communications bandwidth is a scarce resource

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

An object-oriented data representation is essential

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

The implementation platform is relatively unimportant

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

Data communications standards are vital

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

Detailed central planning is impossible; don't even try

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

You can’t trust anyone

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

Work within the system

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

Get real

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

Lessons, Mk 1: Final Score

C&R: 6,

Reality: 3

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...

Wandering in the Wilderness

After Lucasfilm’s Habitat

(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

Fujitsu Habitat I

(c. 1990-1994)

Oracle Layza’s Tales

Laid the groundwork for later revival

WorldsAway

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.

The Palace

(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

EC Habitats/Microcosm

(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!

EC’s Passport &

State Software’s Rendezvous

(c. 2000-2002)

The Browser is the client.

Feels like programming the C64 all over again.

Bringing multiuser sessions to Business

More Lessons!

New 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.

You can’t tell people

anything

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

Beware the Platform

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?

It’s a business, stupid

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

It’s a business, stupid (continued)

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.

Resilience is better than planning

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

anything

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

Security is a design discipline

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

Capabilities trump User Identity

...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

Compartmentalize

Buys you Security, Reliability, Quality,

Performance improvements

The marching hordes of QA

Sharing: Larry Mellon (TSO)

Use the best distributed object model you can afford

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

Don’t think Client/Server, think

Division of Labor

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.

Threads are EVIL

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

You can do it without Shards

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

Incent users to crash your world,

Early & Often

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.

Don’t punish people for following the rules

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

Summary: The New Lessons

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.

Where are the new frontiers?

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.

EC Habitats Demo

Time permitting, we can demonstrate some of our peer-ish secure distributed object model…

Thank You!

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

Download