GGZ logo    GGZ Gaming Zone
Developer Area | GGZ Home Page

About GGZ
First and foremost, a few words for those who don't know GGZ yet but are desperate to achieve progress in the world of internet games: GGZ aims to unify technical work needed to get decent and diverse online gaming features into today's games. GGZ powers your favourite desktop games on GNOME and KDE, and is also used by several other game projects. In addition to game-related work on protocols, networking libraries and such, the desktop and web integration aspects such as OpenID, web services and instant messaging clients are very important to the project's future. These goals are reflected in the tasks which you can find below.

GGZ @ Google Summer of Code 2008
GGZ will offer mentoring for several tasks during the Google Summer of Code 2008 program. Some ideas have been discussed and proposed for inclusion into the program by GGZ developers. Other ideas can be proposed, there are several mentors available from GGZ and related projects. You could join us on #ggz on freenode.net to find out about what's currently on the TODO list. Several game developers for example have asked us for help with multiplayer support, and we certainly cannot help all of them at once even if we wanted to. The mentors have in many cases been with the project for years, and would like to concentrate on the grunt work, while offering the most exciting feature additions to GSoC students.

GGZ web service interfaces
GGZ-Community is the website which allows players to log into a customised gaming portal, which contains access to the GGZ database, in particular to the list of players, games and statistics. Furthermore, it can be used to schedule tournaments, assign player karma and manage teams. An experimental web service API exists which allows the development of special-purpose clients for player management, statistics building and integration with dedicated communities. The API is implemented as a REST interface in PHP but is far from being complete, to improve this is the first task. The second task is to finish (or redesign) the integrated OpenID provider and consumer for seamless authentication transitions between GGZ Community and GGZ desktop clients.
Mentor: Josef Spillner (josef.spillner@googlemail.com), Roger Light (rogerlight@gmail.com)


Advanced multiplayer features in Freeciv
Freeciv is probably the most well-known game using GGZ for its multiplayer features. However, there are some limitations at the moment of how to handle joining and leaving players, and how to handle dynamically-sized games. Such small issues could be seen as a starting point to then add top-notch features to Freeciv's multiplayer mode. The programming language would be mostly C.
Mentor: Jason Dorje Short (jdorje@gmail.com)


GGZ on KDE 4.2: Online game selector
Metacle is a Python-based meta-meta-server which aggregates real time statistics from currently played games of various types. It does so by querying the appropriate meta servers and makes the aggregated lists available through a bandwidth-preserving method including delta transmission and push-style notifications. There needs to be a desktop client for Metacle which uses freedesktop.org's XDG standards to query locally installed game clients and offer users to launch new games or join running games independent of their type. Of course a majority of those will be GGZ-enabled, but some will not. An experimental client in was written in PyKDE to get started, but the task would be to write a client from scratch which can be shipped with KDE 4.2 if it turns out to be a great tool. Both Python and C++ would be the best choices for this task.
Mentor: Matt Williams (matthew.peter.williams@gmail.com), Josef Spillner (josef.spillner@googlemail.com)


New Game Client
As GGZ aims to provide the means for any open source game to add network support, any new game clients would be well received. This is an open ended task with the possibility of either extending an existing game to provide GGZ support (a good example would be GNU Backgammon), or else write a new client from scratch.
Although writing a new client is more involved than extending an existing one in many ways, it does offer the advantage of greater flexibility because it can be written in one of any of the languages we currently use (C, C++, Java, Python, Ruby) and for any one of the toolkits (KDE, Gnome, Gtk, SDL).
In both cases there are essentially three tasks:
  1. Define a protocol for the game.
  2. Create the server program.
  3. Create/extend the client program.
Depending on the game chosen, some of these tasks may be already completed. Looking at backgammon again, it would make sense to look at the FIBS protocol for example.
Mentor: Roger Light (rogerlight@gmail.com)


GGZ on GNOME 2.24:
A highscore submission system for single-player mode is needed for basically all games. This idea was suggested to make better use of the GGZ infrastructure even for games which do not run on the network at all. Local system-wide highscores have been popular on Unix-like systems for years, but single-user systems comprise nowadays the dominant group of players. Whoever implements this task will bring back the beat-your-friend or beat-your-colleague fun to single-player games.
Mentor: TBD, in cooperation with gnome-games team


Random ideas
The tasks descriptions above are very concrete and emerged out of the current development process. Didn't find the right task for you? No problem, you will also benefit from our dedicated and professional mentorship if you propose anything which helps to advance GGZ in a way which makes offering free online gaming easier for other game developers, and more joyful for players.
  1. Porting GGZ to mobile devices. This doesn't just include software porting, but also defining how free online gaming on mobiles will look like in the future.
  2. Pervasive privacy protection in GGZ. With the growth of the GGZ Community portal into something similar to social networking sites, privacy and informational self-determination should be key features.
  3. Refactoring GGZ-Java into individual libraries to make it possible to ship GGZ-enabled Java games outside of the project.
  4. Your idea here :)

Mentor: see other tasks, it really depends on the concrete ideas and programming languages.



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