DIVE Record Replay


Overview | Basic Record | Basic Replay | Misc.

Overview

DIVE currently supports a crude version of record and replay. Essentially the record and replay tool acts as a 3rd party in a DIVE session. In record mode it saves all events to a file. In play mode it creates a world and pushes events in to it, without regard to existing participants. You can not interact with replays, and the replay tool must be allowed to create the world; that is the replay tool must be started before any viewing tools.

Getting the Demo

If you are at UCL a record and replay demo is currently copyable from our CVS repository. On cygwin the CVSROOT is //smbhelp/vr-dive/cvsroot and the package is record-replay. That is
export CVSROOT=//smbhelp/vr-dive/cvsroot
cvs checkout record-replay
If you aren't able to see the repository then you download a zipped version here:
record-replay-demo.tgz.

You also need to use a recent bug-fixed version of DIVE (3.3x6 or later). If you are at UCL, find this in the UNIX directory

/cs/research/vr/dive/starship/dive
or, if you are on WinXX
\\smbhelp\vr-dive\dive

Notes

The record and replay tool is actually ONE executable recorder(.exe). On Unix, you will find there is a symbollic link in the appl directory from player to recorder. On Unix, the executable determines its own name to determine its behaviour (record or replay). This doesn't work on Win32, so there are also commandline switches (-record, -play) to force the behaviour to one or other mode.

Limitations

At the moment, replay is once through only. That is, you start the player, then start the viewers. The timing of events seems to be "buggy" in that although the code is there to time events as per the original event file, actually it replays faster or slower depending on the frame rate of the rendering. This limitation should go away soon.

Recording is quite flexible; you can start a recorder at any time. The first thing that recorder does is save the state of the whole world in a .bvr file, and then generates an event log with all subsequent event. The limitation is that output file naming is hard-coded (bvr file) or configure in the config file (event log). This means log maintenance is fiddly. This limitation will go away soon.

Note that it is very important that the diveserver uses exactly the same multicast groups for record and replay. See the notes about run_server below. This limitation will go away soon.

Read the README.txt file in the demo directory - it tells you how to avoid pain and embarrassment from overwriting your precious files. This is the top thing to fix.


Basic Record

  1. Start a diveserver
  2. Start your world
  3. Start the recorder

Notes

The .bvr file and event log files are dependent on a major DIVE version such as DIVE3.3x. They should work with any minor variation on this branch (3.3x5, 3.3x6, etc.)

Basic Replay

  1. Start a diveserver
  2. Start the player
  3. Start a world viewer

Misc.

To Do


Anthony Steed, A.Steed@cs.ucl.ac.uk