CroftSoft /
Portfolio
Tag3D
1999-02-07
A prototype multi-user online virtual reality using Java 3D and RMI.
A Tag3D source code tutorial is now available:
"Java 3D with RMI".
IN NO EVENT WILL ORBS OR ITS
LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE
THEORY OF LIABILITY, RELATING TO THE USE, DOWNLOAD,
DISTRIBUTION OF OR INABILITY TO USE SOFTWARE, EVEN IF ORBS
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
The distribution file, tag3d.zip, includes
the compiled bytecode, images, and documentation.
The latest source code is available at the
ORBS Open Source page.
- Install
Java 1.2.
- Install
Java 3D 1.1.
- Unzip the tag3d.zip file into a new directory.
Example:
mkdir C:\tag3d
copy C:\windows\desktop\tag3d.zip C:\tag3d\tag3d.zip
C:
cd C:\tag3d
unzip tag3d.zip
- Move to the Tag3D directory. It should contain Tag3D.jar and the
images subdirectory.
Example:
C:
cd C:\tag3d
- Choose the mode of operation you wish to run the
program in and follow the steps below.
In local mode, you can fly solo through a virtual space without
an Internet connection.
- Enter the following at command-line prompt:
java -jar Tag3D.jar
In client and server mode, your program process acts as both
a client window in which you can interact and as a state server
for other remote and local clients.
- For use by the RMI Registry, append Tag3D.jar to your classpath.
Example:
set classpath=Tag3D.jar
- Start or restart the RMI Registry.
Example:
start rmiregistry
- Run the Tag3D class with two arguments, the name of your
client process object and the name of your server process
object.
Example:
java -jar Tag3D.jar tag3d_client_0 tag3d_server
- If you wish, you may fire up additional local client windows.
As you move around in one window, a block with a face on it
will float around in the others.
Note that the additional clients will need to be run from
separate DOS windows.
Example:
java -jar Tag3D.jar tag3d_client_1 tag3d_server
java -jar Tag3D.jar tag3d_client_2 tag3d_server
In this mode, your client window sends and receives state changes
from another local or remote process that was launched using
either "client and server" mode or "server" mode.
- For use by the RMI Registry, append Tag3D.jar to your classpath.
Example:
set classpath=Tag3D.jar
- Start or restart the RMI Registry.
Example:
start rmiregistry
- Run the Tag3D class with two arguments, the name of your
client process object and the name of the server process
object. If the server process is on a remote host,
precede the server name with the host name using this format:
"//hostname/server_object_name".
Example:
java -jar Tag3D.jar tag3d_client_1 //www.orbs.com/tag3d_server
In this mode, your process acts as a receiver and broadcaster of the
state changes without an interactive client window. This process
would typically run continuously in the background as a service to
local and remote clients.
- For use by the RMI Registry, append Tag3D.jar to your classpath.
Example:
set classpath=Tag3D.jar
- Start or restart the RMI Registry.
Example:
start rmiregistry
- Run the StateMulticasterProxy class with a single argument,
the name of your server process object.
Example:
java -cp Tag3D.jar com.orbs.open.a.util.state.StateMulticasterProxy tag3d_server
The arrow keys will translate and rotate your view in six degrees of freedom.
- The arrow keys alone will translate and rotate your view about its relative X axis.
- The arrow keys with the "Shift" key held down will translate and rotate your view about its relative Y axis.
- The arrow keys with the "Alt" key held down will translate and rotate your view about its relative Z axis.
The spacebar will translate your view to your relative right.
In this test release, you can "jiggle" head objects by dragging your
mouse on them.
To end the program, press Control-C at the DOS console.
A Tag3D source code tutorial is available:
"Java 3D with RMI".
- Close windows with mouse.
- Relaunch without shutting down and restarting RMI Registry.
- Show others in the virtual space immediately instead of
waiting until the first time that they move.
- Automatic I.D. assignment by the server to prevent name and
control conflicts.
- Virtual world object persistence (object database integration).
- Applet interface.
Send your questions and comments regarding this program to
David Wallace Croft.