GCP - Game Control Program

It is a highly modular tool to administrate games servers, especially Quake servers. It was created because a friend of mine, who administrated a TF server a while ago, needed a replacement for QControl and a good, realistic statistic tool. The last need disappeared with time, but the first one stayed. So on one fine day I sat down and started developing a tool of my own. After 3 years, some big breaks and 2 rewrites (with a new architecture every time) later, the program seems to be usable :)

Like said before, the program is highly modular. The real program is only a fast bus system for distributing events (which can contain also a chunk of data): DataBus. Everything else is only a component which listens on this bus for certain events or produces such events. Some components need other components, because they want to listen for theit events. But they don't need to know how they are created. So a component which creates a game statistic or allows remote administration doesn't need to know anything about the running server and its specifica.
GCP comes with a number of components:
- starting a game server and getting hold of all log messages
- creating log files (complete or rotated per map)
- parsing log messages (game independent and configurable)
- sophisticated remote administration (user groups, extensible command set)
- sending commands to a running server (Q,QW,Q2,Q3)
- automatic kicking system according to specific rules (eg. too high rate set by the client)
- check if a server is hanging and kill the process to force a restart
- sending commands to the server at specified times - allows timed startup / shutdown of servers

The components which are part of such a bus system are configured in a XML file (see CONFIG). It is possible to have more than one bus in a running virtual machine, so one can handle multiple servers without much overhead.

This program is distributed under the GPL (see License).

The 2 packages de.hendriklipka.databus and de.hendriklipka.util are not specific for this project, but they are included (because I have no separate web page for them).


The current stable version is 1.0.2:

The current development version is 1.1.0: