|GGZ Gaming Zone|
|Developer Area | GGZ Home Page|
GGZ Game Protocols
Some GGZ games communicate using binary opcode protocols, others prefer XML protocols or line-based ones. There is a format called GGZComm which can be used to describe the protocol in an abstract way, build the networking source code from it automatically, and auto-generate some XHTML documentation for it. The ggzcommgen executable and the sample files can be found in the ggz-utils package.
While XML protocols and line-based ones exist in all sorts of varieties, binary communication usually follows two basic protocol mechanisms: unquantized protocols and quantized protocols. The binary protocols page lists some information about them and implementations.
Protocol XML files
The following list of games does already have a formal protocol description by means of a ggzcommgen file.
Hello World (for tests)
Connect The Dots
GGZCards (for all GGZCards games)
Bogaprot (for several GGZBoard games)
The generated XHTML pages are available in the documentation section.
GGZ tries to use standard protocols whenever they are defined and in use somewhere. Please tell us if such a protocol should be used to make GGZ games work with other games! Right now, only GMP (the Go Modem Protocol) is implemented for the GGZBoard Go network module and the Go server as an analyser around GNU Go. Our Chess server and clients do not follow XBoard but that might be changed in the future. The chess server does however support logging in the PGN format (Portable Game Notation), and the chess savegame handler in GGZ Community supports loading PGN files. On the other hand, the standard file format for Go (SGF, or Smart Game Format) isn't used by our Go server yet. It even looks like a good candidate for archiving other played board games.
The GGZBoard games Hnefatafl, Checkers, Ludo and Arimaa all use the same network protocol named Bogaprot (generic board game protocol), which might be adapted by other games, too.
|International | SVN | Mail | Bugs | FTP | Live | Community | WS API | Metaserver | Metacle | Distribution: pkg-ggz, ggz-mobile|