Previous Next Table of Contents

3. Some remarks on the used demo format

3.1 Advertising

As the clever reader may know I'm the author of LMPC, the LMP/DMO/DEM Control Center. I recently included a DEM format support in it. This means:

With such a tool it is very easy to analyze a DEM file but you can change it as well and so create a DEM file of a Quake game you never played.

3.2 Difference to DOOM

The recording of a DOOM game consists only of the player input. All the rest is random-number dependent but totally deterministic and will be recalculated during the playback.

If you change a single action in a LMP file all the rest is garbage because all monsters now behave totally different and sooner or later (sooner) you run into a wall. This can't happen in a DEM file. The full movement (of all objects) is stored in it.

This confronts us with new opportunities but also new problems.

3.3 Opportunities of the DEM format

With the centerprint message it is possible to include some sub-titles in a recording file to inform the watchers what will happen next.

The player coordinates and the camera positions may be different. This makes it possible to simulate the DUKE NUKEM 3D feature of stationary cameras. The client doesn't draw the entity with the ``viewpoint''. This is in general the player entity itself but this entity can be changed to anything else with the setview message. Another problem is the entity selection of the server, which sends to the client only the entities in sight (of the client). Therefore it is impossible to enlarge the distance between the camera and the recording player too much. They both have to be on the same side of a wall.

For people with too much spare-time Quake can replace a full 3D modelling system for cartoons or the like.

The demo file can contain console commands, which the client runs during replay. With this feature it should be possible to write a screenshot after every time stamp in the demo file. This makes it very easy to create a MPEG movie out of a DEM file.

3.4 Problems of the DEM format

It is trivial to remove the ``godmode ON'' and other cheat messages from a recording. All the action doesn't change at all. These messages are only text print commands and the client behaviour doesn't depend on them.

Fortunately I found a redundancy in the DEM format, which allows to detect a ``godmode'' cheater: Every damage message contains the health and armor decrease value. The next status line description (it contains the health and armor values to be displayed) can so be checked.

Previous Next Table of Contents