Shared worlds and the Web
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.