Multicast Shared Virtual Environments
This project was concerned with producing a tool that uses multicast technology to produce shared virtual environments on the Internet. The tool uses Java, VRML and the Mbone, the Internet's multicast backbone, to provide a cross platform system capable of supporting many simultaneous users in a virtual environment.
The project received funding under an initiative of British Telecom and the Joint Information Systems Committee of HEFCE. The research was carried out by John Carson and Graeme Sweeney under the supervision of Adrian Clark. After the project ended, John moved on to work on virtual environments at RSRE (which became Qinetiq). Graeme left Essex for pastures new after the project too but regrettably didn't tell us where he was going.
VRML is already an established standard for distributing 3D environments over the Internet. Browser plug-ins are freely available and the number of Web sites providing 3D content grows daily. The most recent VRML standard provides support for animation, interaction and sound as well as describing scene geometry so allowing rich and detailed environments to be created. At present however, VRML does not provide any support for creating shared virtual environments. In the project we are investigating extensions to the present VRML standard and the necessary wire protocols to allow shared virtual environments to be authored easily and run in VRML 2 capable browsers.
The Living Worlds standard proposed the use of central servers to distribute information to the participants; the same approach is used in most games, of course. The problem is that this server acts as bottleneck and so limits the scaleability of the world. By using the Mbone (Multicast Backbone), which allows a message sent from one machine to be received by many others simultaneously, we aimed dispense with the server and so increase the scaleability of the system.
The approach we took was to develop a multicast interface, written in Java, between the web browser (and it VRML plug-in) and the Mbone. The way it worked was for a participant to visit a website; this cranked up the Java interface and loaded the initial virtual world. All communication between partipants then took place using IP multicasting.
Although we were able to get everything working, we found that it was very fragile, with changes in versions of Netscape or its VRML plug-in causing the software to break. Of course, this was in the fairly early days of the web when browsers were much less solid than they are today.
If you liked this then do let me know. I might put up the photos from the virtual Christmas party — boy, that ought to make some people blush!