Difference between revisions of "Development/Architecture/KDE4/KGGZ"

Jump to: navigation, search
(Status updates for GGZ support in KDE 4)
Line 1: Line 1:
 
{{Template:I18n/Language Navigation Bar|Development/Architecture/KDE4/KGGZ}}
 
{{Template:I18n/Language Navigation Bar|Development/Architecture/KDE4/KGGZ}}
The ''GGZ Gaming Zone'' offers a complete free infrastructure for online games. It has always provided some sort of KDE integration, however starting from KDE 4.0, this integration will be available out of the box from the KDE Games Library (libkdegames).
 
  
For the time being, have a look at the API docs of [http://www.ggzgamingzone.org/docs/api/kggzmod/ kggzmod],
+
The ''GGZ Gaming Zone'' offers a complete free infrastructure for online games. It has always provided some sort of KDE integration, however starting from KDE 4.0, this integration has been available out of the box from the KDE Games Library (libkdegames).
[http://www.ggzgamingzone.org/docs/api/kggznet/ kggznet] and
+
GGZ support is widely available on a variety of distros and gains popularity with a number of game projects.
[http://www.ggzgamingzone.org/docs/api/kggzgames/ kggzgames].
+
 
+
A number of tutorials were sent to the [http://lists.kde.org/?l=kde-games-devel&m=117247904901225&w=2 kde-games-devel] list.
+
  
 
==Status==
 
==Status==
Line 16: Line 12:
 
[http://api.kde.org/4.0-api/kdegames-apidocs/libkdegames/html/ API docs].
 
[http://api.kde.org/4.0-api/kdegames-apidocs/libkdegames/html/ API docs].
  
KDE 4.0 will ship with KReversi and KBattleship which both provide a GGZ
+
KDE 4.0 ships with KReversi and KBattleship which both provide a GGZ
 
networking mode which gets activated when launching the games from a
 
networking mode which gets activated when launching the games from a
 
GGZ core client. KReversi running on GGZ leads to GGZ's own
 
GGZ core client. KReversi running on GGZ leads to GGZ's own
Line 28: Line 24:
  
 
KDE 4.1 shall add KSquares, which is compatible with GGZ's Connect the Dots
 
KDE 4.1 shall add KSquares, which is compatible with GGZ's Connect the Dots
server (patch already exists). KFourInLine support is also planned. It would
+
server (patch has been applied recently). KFourInLine support is also planned. It would
 
therefore supersede the KDE3-based KConnectX
 
therefore supersede the KDE3-based KConnectX
 
client released with GGZ 0.0.14. Also, additional games might be ported.
 
client released with GGZ 0.0.14. Also, additional games might be ported.
Line 35: Line 31:
 
on their own), a port of KGGZ to KDE 4, and GGZ integration with Jabber
 
on their own), a port of KGGZ to KDE 4, and GGZ integration with Jabber
 
including some Kopete widgets related to online gaming.
 
including some Kopete widgets related to online gaming.
 +
 +
[http://games.kde.org/kreversi/ http://games.kde.org/games/kreversi/icon.png]
 +
[http://games.kde.org/kbattleship/ http://games.kde.org/games/kbattleship/icon.png]
 +
[http://games.kde.org/ksquares/ http://games.kde.org/games/ksquares/icon.png]
  
 
==Setup==
 
==Setup==
  
While KDE 3-based development of GGZ games requires the ggzmod library,
+
While KDE 3-based development of GGZ games requires the ''ggzmod'' library, i.e. programming in C, KDE 4 has ''kggzmod''/''kggznet''/''kggzgames'' (collectively referred to as libkggz*) and thus the libraries and all games using it will compile without any further dependencies.
KDE 4 has kggzmod and thus the libraries and all games using it will compile without any further dependencies.
+
In order to be able to play the games from an online gaming client (the so-called GGZ core clients such as KGGZ), the game client still needs to be registered with the central GGZ game modules registry. The tool ''ggz-config'', which is part of the ''ggz-client-libs'' package, is needed for this task. Most distributions ship it as part of a ''ggzcore-bin'' package or similar.
In order to be able to play the games from an online gaming client (the so-called GGZ core clients such as KGGZ), the game client still needs to be registered with the GGZ game modules registry. The tool ''ggz-config'', which is part of the ''ggz-client-libs'' package, is needed for this task. Most distributions ship it as part of a ''ggzcore-bin'' package or similar.
+
 
The file ''module.dsc'' contains meta information about the game, such as its
 
The file ''module.dsc'' contains meta information about the game, such as its
 
author, UI library/environment it runs in and where its executable is located. The two important values are which protocol it uses and which version of the protocol.
 
author, UI library/environment it runs in and where its executable is located. The two important values are which protocol it uses and which version of the protocol.
Line 50: Line 49:
  
 
If and only if those two match the values of the game server, this game client
 
If and only if those two match the values of the game server, this game client
will be offered to players! More information about this file can be found in the ggz-config [http://svn.ggzgamingzone.org/cgi-bin/trac.cgi/browser/trunk/ggz-client-libs/ggz-config/readme.ggzconfig readme file] and in the [http://www.ggzgamingzone.org/docs/guides/gamedev/ggz-game-development-guide.pdf GGZ game development guide] (which contains a lot more information and should really be printed out). Please consider re-using existing protocols for equal or similar games. The three places to look at are: KDE Games, GNOME Games, and the games shipped by the GGZ project in their various packages. On http://www.ggzgamingzone.org/engines/ there is a list of all known GGZ games.
+
will be offered to players! More information about this file can be found in the ggz-config [http://svn.ggzgamingzone.org/cgi-bin/trac.cgi/browser/trunk/ggz-client-libs/ggz-config/readme.ggzconfig readme file] and in the [http://www.ggzgamingzone.org/docs/guides/gamedev/ggz-game-development-guide.pdf GGZ game development guide] (which contains a lot more information and should really be printed out if you want to develop for GGZ).
  
 
==Development==
 
==Development==
  
See the tutorials linked above. There is not that much new information right now. Join #kdegames on irc.kde.org and ask if you want to help. If you're
+
Adding GGZ support to KDE games is not hard at all. There are three libraries for different tasks: ''kggzmod'' which handles all GGZ-specific events and requests, ''kggznet'' that you can use for networking (but don't have to), and ''kggzgames'' for GUI integration with GGZ components.
 +
 
 +
In addition, ''kggzdmod'' for Qt4-based GGZ game server development is available as an experimental library.
 +
 
 +
Please consider re-using existing protocols for equal or similar games. The three places to look at are: KDE Games, GNOME Games, and the games shipped by the GGZ project in their various packages. On http://www.ggzgamingzone.org/engines/ there is a list of all known GGZ games.
 +
 
 +
For the time being, have a look at the API docs of [http://api.kde.org/4.x-api/kdegames-apidocs/libkdegames/kggzmod/html/ kggzmod],
 +
[http://api.kde.org/4.x-api/kdegames-apidocs/libkdegames/kggznet/html/ kggznet] and
 +
[http://api.kde.org/4.x-api/kdegames-apidocs/libkdegames/kggzgames/html/ kggzgames], which are all part of libkdegames.
 +
 
 +
A number of tutorials were sent to the [http://lists.kde.org/?l=kde-games-devel&m=117247904901225&w=2 kde-games-devel] list, providing additional information on top of the API docs.
 +
 
 +
If this information is not enough:
 +
Join #kdegames on irc.kde.org and ask if you want to help. If you're
 
seriously interested in helping out, please bring up the ideas on the
 
seriously interested in helping out, please bring up the ideas on the
 
kde-games-devel mailing list.
 
kde-games-devel mailing list.
  
 
[[Category:KDE4]]
 
[[Category:KDE4]]

Revision as of 13:00, 12 January 2008


Contents

Development/Architecture/KDE4/KGGZ


The GGZ Gaming Zone offers a complete free infrastructure for online games. It has always provided some sort of KDE integration, however starting from KDE 4.0, this integration has been available out of the box from the KDE Games Library (libkdegames). GGZ support is widely available on a variety of distros and gains popularity with a number of game projects.

Status

In the time up to the KDE 4.0 release, most of the groundwork was laid which makes GGZ development based on KDE libraries possible. Three libraries (kggzmod, kggzgames, kggznet) have been written and some CMake macros were also created. See API docs.

KDE 4.0 ships with KReversi and KBattleship which both provide a GGZ networking mode which gets activated when launching the games from a GGZ core client. KReversi running on GGZ leads to GGZ's own KReversi being renamed to KGGZReversi, something that was planned for a long time. Both will use the GGZ Reversi server. For KBattleship, a dedicated server named Submarine was written in Python and is available in GGZ SVN.

KDE 4.1 shall add KSquares, which is compatible with GGZ's Connect the Dots server (patch has been applied recently). KFourInLine support is also planned. It would therefore supersede the KDE3-based KConnectX client released with GGZ 0.0.14. Also, additional games might be ported. In KDE 4.1, better core client integration is also planned. This might include embedded core clients (i.e. games can connect to GGZ servers on their own), a port of KGGZ to KDE 4, and GGZ integration with Jabber including some Kopete widgets related to online gaming.

icon.png icon.png icon.png

Setup

While KDE 3-based development of GGZ games requires the ggzmod library, i.e. programming in C, KDE 4 has kggzmod/kggznet/kggzgames (collectively referred to as libkggz*) and thus the libraries and all games using it will compile without any further dependencies. In order to be able to play the games from an online gaming client (the so-called GGZ core clients such as KGGZ), the game client still needs to be registered with the central GGZ game modules registry. The tool ggz-config, which is part of the ggz-client-libs package, is needed for this task. Most distributions ship it as part of a ggzcore-bin package or similar. The file module.dsc contains meta information about the game, such as its author, UI library/environment it runs in and where its executable is located. The two important values are which protocol it uses and which version of the protocol.

ProtocolEngine=TicTacToe ProtocolVersion=2

If and only if those two match the values of the game server, this game client will be offered to players! More information about this file can be found in the ggz-config readme file and in the GGZ game development guide (which contains a lot more information and should really be printed out if you want to develop for GGZ).

Development

Adding GGZ support to KDE games is not hard at all. There are three libraries for different tasks: kggzmod which handles all GGZ-specific events and requests, kggznet that you can use for networking (but don't have to), and kggzgames for GUI integration with GGZ components.

In addition, kggzdmod for Qt4-based GGZ game server development is available as an experimental library.

Please consider re-using existing protocols for equal or similar games. The three places to look at are: KDE Games, GNOME Games, and the games shipped by the GGZ project in their various packages. On http://www.ggzgamingzone.org/engines/ there is a list of all known GGZ games.

For the time being, have a look at the API docs of kggzmod, kggznet and kggzgames, which are all part of libkdegames.

A number of tutorials were sent to the kde-games-devel list, providing additional information on top of the API docs.

If this information is not enough: Join #kdegames on irc.kde.org and ask if you want to help. If you're seriously interested in helping out, please bring up the ideas on the kde-games-devel mailing list.


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal