Friday, November 04, 2005

Shared worlds and the Web

To build a 3D shared world, you need to build a 3D interface and you need to build a shared world. Shared world can exist without a 3D interface—for example, a shared whiteboard is a 2D world. 3D interface can exist without a shared world: for example, VRML is a 3D experience that is not truly shared. The Web can be adapted for the use of 3D interface, but it is architecturally ill-suited for shared worlds.

Consider an example: there are two people in the world, Alice and Bob. Bob throws a ball up in the air—there is gravity, so it goes up and then down. Alice looks at the ball. For this example, it is irrelevant whether the view is 2D or 3D.

On the Web, Bob must notify server Sam that the ball was thrown, and Sam must notify Alice. But how? The Web is technically pull-only, so there is no way Sam can push information to Alice. Alice has to resort to hacks, such as constantly polling Sam or keeping an open connection. (This blog's feed is another hack. Why can't I notify you right away that I've published a new post?)

Once the ball is thrown, Alice has to get a stream of information about the position of the ball. Bob knows the position and can broadcast it, but the network will cause updates to be delayed and Alice sees the ball's motion as jerky.

Alice could know about the behavior of all the objects in the universe, and then all she needs to display the ball is the initial direction and the speed with which the ball was thrown. Knowing about all the universe means that Alice has to know a whole lot, and that the universe can't be updated—what if Bob just invented the ball? Bob knows its behavior, but he can't communicate it to Alice in an easy and secure manner: he can't transparently ship code across because of the Boundary paradox.

For building shared worlds, you need flexible two-way communications and workable mobile code—the Web offers neither. The next platform will fix that.

1 Comments:

Anonymous Anonymous said...

"Why can't I notify you right away that I've published a new post?"

You can. Get readers who are interested on a mailing list and add that list to your Blogger account in Settings -> Email.

If you don't want to use email, immedi.at offers a bookmarklet that you can just as easily add as a link to your page. Readers who then use immedi.at are notified via IM when your feed is updated.

(I'm not affiliated with Blogger or immedi.at in any way.)

1:26 PM  

Post a Comment

<< Home