Next Previous Contents

5. DBS, The Demo Broadcasting Server

5.1 Introduction

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.

5.2 Command line parameters

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.

Syntax description

Syntax:

dbs [--help|-h]

Description:

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.

Version

Syntax:

dbs (--version|-v)

Description:

DBS prints a version message and quits.

Port

Syntax:

dbs (--port|-p) PORT ...

Description:

DBS uses by default the UDP port 26000 for the communication. This value can be overwritten with this option.

Maximum number of players

Syntax:

dbs (--max-players|-m) MAX_PLAYERS ...

Description:

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.

5.3 What DBS does

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).


Next Previous Contents