GGZ logo    GGZ Gaming Zone
Developer Area | GGZ Home Page

GGZ Libraries: | libggz | ggzcore | ggzmod | ggzdmod
GGZ Library ggzcore
GGZ core clients and advanced games can use ggzcore to communicate with the GGZ server.

Interfaces to ggzcore
ggzcoreLanguage: CLocation: ggz-client-libs/ggzcore/ggzcore.horiginal implementation
ggzcore++Language: C++Location: kde-client/ggz-kde/ggzcore++based on ggzcore; obsolete
pyggzcoresimpleLanguage: PythonLocation: python/pyggzcorebased on ggzcore
ggzcore-javaLanguage: JavaLocation: java/src/ggz/client/corereimplementation of ggzcore
kggzcoreLanguage: C++ (Qt)Location: playground/ggz-kde4/kggzcorebased on ggzcore

Library configuration and dependencies
Expatrequiredto handle the XML network protocol

Description
The ggzcore library handles the connection of a client application to the GGZ server. It starts with offering a global configuration object for storing connection profiles, and then goes on to callback registration for the connection, negotiation and authentication methods, which might include guest logins and player registration on the GGZ server. Furthermore, after a login it handles the global server object, the current room object and, when playing a game, the active game object. Additional objects include the table the game is associated with, players, game types and game modules which represent client-side game executables. Alternatively, a game can integrate ggzcore directly instead of being launched by a ggzcore-using GGZ core client, which is known as embedded ggzcore. Other tasks handles by the library are querying the local game registry with all properties per game, retrieving the server message of the day (MOTD) or player statistics, handling public, private and per-table chat as well as administrative messages, and managing the game launch and join events for players and spectators. The ggzcore library depends on libggz from the GGZ project and on expat for XML handling. The ggzcore-java library is not a wrapper but a reimplementation and as such does not have these dependencies directly, any Java XML parser is fine.

More information
You might want to start with the API documentation. Examples of usage include ggz-gtk, ggz-txt and ggz-gnome for the C library, kggz for the C++ wrapper and vĂ­bora for the Python wrapper. As special core clients, also grubby and the Pidgin and Kopete IM plugins as well as ggzap use ggzcore. Finally, games such as Widelands use the embedded feature of ggzcore. The communication protocol between ggzcore and the GGZ server ggzd is standardized in the main protocol specification. Recommended documentation includes the Core Clients document, and to some extent the Game Modules document.

International en | SVN | Mail | Bugs | FTP | Live | Community | WS API | Metaserver | Metacle | Distribution: pkg-ggz, ggz-mobile