We combined our demo proxy technology with our QuakeBot technology and
recorded a pair of
StoogeBot demos showing a client view and a server view of a
bot-assisted massacre. To make the demos,
we used two simultaneous invocations of our demo proxy: one to record
the client-StoogeBot data stream, and the other to record the
StoogeBot-server data stream.
Download The Demo Proxy
The demo proxy is distributed as an SGI IRIX 6.2 binary, as a Linux
binary, and as a Windows .EXE. Select your demo proxy from the
How It Works
For those interested in the technical details, a typical demo proxy
recording session begins by pointing the proxy at a server and telling
the proxy to wait for a client connection. A Quake client is then
started, and a command is given to connect the client to the proxy. At
this point, the proxy negotiates a connection between the client and a
server. Once the connection has been established, a demo file is
created by writing a simple, three character header to a file. The
proxy then enters a state in which it passes packets back and forth
between the client and the server.
Whenever the proxy receives a packet from the client, the packet is
parsed to extract the current client orientation, which needs to be
stored in the demo file. Packets received from the server are stripped
of their headers and are written to the demo file with new headers
derived from the most recently received client orientation. The
resulting file is a valid demo file.
Quake 1.06 can't handle level changes within demo files. For this
reason, the demo proxy detects level changes and starts a new demo file
for every level played. In addition, the demo proxy detects when a
connection has been terminated and exits gracefully when such a
condition has been detected.