ggzd — GGZ Gaming Zone Main Server
The main GGZ Gaming Zone server ggzd implements a centralized facility for multiplayer gaming. It is a multi-threaded multi-process daemon which handles rooms, games, players and tables, and is connected to a database to handle player permissions and game statistics. The server forks a child server for every launched game. It listens on port 5688 by default for incoming connections from GGZ core clients (or other clients like the chatbot grubby).
Most of its options are configured in ggzd.conf, although some command line options are available as well. Configuration details are outlined below. It is recommended that the GGZ Server Hosting Guide be read before running the server, especially for production systems. An overview on the server is given in GGZ Server Architecture. Both documents are available in the ggz-docs package.
- -F, --foreground
- Stay in the foreground instead of daemonizing away from the terminal
- -f, --file=FILE
- Use the specified configuration file instead of the default one, which is ggzd.conf.
- -l, --log=LEVEL
- Start with the given log levels for messages to the console. Levels are described in ggzd.conf. A value of all will output all log messages.
- -p, --port=PORT
- Use this port number to listen for incoming connections. The default PORT is 5688.
- -s, --specs
- Display the compile-time configuration of ggzd. For some values, the activation depends on configuration settings, so their values are shown in brackets for each of those values.
- -v, --version
- Display ggzd version information.
- -h, --help
- Display the command line options overview.
The file ggzd.conf contains several sections for general server configuration, database connectivity, security, logging, broadcasting of events and more.
In case reconfiguration support has been compiled in and ReconfigureRooms is enabled, room files added to and removed from /etc/ggzd/rooms/ will automatically be read in by ggzd.
The server might contact a zeroconf daemon, a metaserver and a database server depending on the configuration. Therefore, its first run should be performed with the -F option, so that errors can be caught. All of the daemons mentioned above must be running before ggzd is launched, even though intermediate downtimes of the database server are handled by some of the backends in ggzd.
/etc/ggzd/ggzd.conf - main server configuration
/etc/ggzd/ggzd.motd - message of the day
/etc/ggzd/games/* - description files for the game servers
/etc/ggzd/rooms/* - room description files
/var/lib/ggzd/* - dynamic game data files and savegames (if any)