DBS is a fake Quake server, which shows every connected client a DEM file. This server is absolute alpha code. It prints a hell of debug messages and doesn't know the full Quake network protocol. I think the name is crap and I will change it. Please send me ideas.
The source of DBS relies on some low-level Unix network routines. I may get it to work in Win32 some day with the Cygwin API but don't expect a plain Win32 version.
DBS is a command line oriented program. It uses the getopt_long
library for the command line parsing. DBS doesn't stop for itself. Use
Control+C
to stop it.
dbs [--help|-h]
If you start DBS without any command line parameters or the help parameters you receive the following syntax message:
Demo Broadcasting Server
DBS (c) U. Girlich, 1997-98, Release 3.3.0 1/23/2000 (public release)
dbs [option ...] demfile
-h, --help display this help and exit.
-v, --version output version information and exit.
-p, --port defines an UDP port for the server.
-m, --max-player defines the max. number of players.
dbs (--version|-v)
DBS prints a version message and quits.
dbs (--port|-p) PORT ...
DBS uses by default the UDP port 26000 for the communication. This value can be overwritten with this option.
dbs (--max-players|-m) MAX_PLAYERS ...
DBS allows by default 16 players to connect and view the DEM file.
This value can be overwritten with this option. The internal limit
for the number of players is 255 because the Quake Network protocol
reserves only an unsigned char
for the number of players.
Nowadays are so many fake clients out there but not a single fake server. A proxy is not a real server because it is a client for another server. So I decided to analyse the network protocol, learnt something about UDP programming and wrote my own server. I hope to include some parts of this server into DEMcut, a feature which lacks some GUI DEM file editors up to now.
DBS mimics the behaviour of a normal Quake server. This means you can check the server with your favourite spy tool. The next step is to log in. This works as usual (you get your private UDP port and so on) but DBS ignores all client movement packets and sends to the client only the converted DEM packets of a prepared DEM file.
A small problem are the camera
messages in the DEM packets.
They come into the DEM file at the client side and not from
the server over the network. Therefore I included in every packet an
additional setangle
message with the current camera angles.
This means, that you can't get the original DEM file by client (or proxy) recording.
I hope to stabilise the server much more and think of a selection menu at the beginning where a client may select the DEM file (``channel'') of interest. I call it DoD (Demo on Demand).