The GGZ Gaming Zone Core Clients

This documentation serves as reference for all people interesting in hacking on the existing CC's, and those who are even keen on writing new ones. In addition, please look at the ggzcore/ggzcore++ API documentation.

This is how the whole thing is structured. The image shows a typical GGZ server with some people chatting and some playing games. In addition, there could be players outside of a room, for example joining and leaving players. Every room is associated with a game type, and every table with a game. Every player has to select a game frontend, which may be done by the CC if only one frontend exists.



Normally, a player connects to a server, logs in and selects a room for chatting. This procedure is difficult enough and if a CC has implemented it it's already a large amount of work. However, I'll now concentrate on the second task a CC has: launching games (or joining existing ones if possible). For that purpose, a number of states has to be passed, all of them linked with user interaction and ggzcore function calls. Here's the "big picture" how things work (I've taken KGGZ as the example):



Not so advanced applications like GGZap just skip the user interaction, because there are always reasonable defaults. This process is then much easier.

A Core Client is also responsible for managing the connections (user-selectable server list), displaying the users logged in and the running games, as well as handle errors like game client crash or network lags, which is not so difficult with the ggzcore functions.

OK, that's the magic for now. More details will follow as soon as there is time for it.



Josef Spillner, dr_maux@users.sourceforge.net
The GGZ Gaming Zone, http://ggz.sourceforge.net
2001-06-03