[Kde-games-devel] Re: GSoC Project: Multi-Player gaming in KDE games

Josef Spillner spillner at kde.org
Wed Mar 2 22:53:17 CET 2011


:: Viranch Mehta Mittwoch 02 März 2011
> OK, so after kggz is imported, all that is to be done in the project is to
> provide relevant UI in all the kdegames? Because as far as I know, ggz IS
> the online gaming library.

It depends on what we want to aim at: More games having simple multiplayer 
features or some selected games having outstanding multiplayer features. IMO 
the latter choice is what should motivate us. But this is the harder part, 
because it requires you to work on the networking, integration and social 
aspects instead of using the existing APIs.

Here are some keywords which help to understand the anticipated stack from the 
bottom to the application level:

- Low-level networking primitives [kggznet]: These are in principle provided 
by Qt. However, with early Qt 4.x versions there were some issues which have 
resulted in workarounds. A "junior job" would be to see if they still exist, 
and file bug reports against Qt, or remove the workarounds. Apart from that, I 
consider this part of the library stable.

- Declarative protocol specifications for the low-level networking: Even if 
the low-level primitives work correctly, often networking bugs are introduced 
by the programmer who tries to manually create a state machine with protocol 
interaction links and constraints. Instead, most of this code (including error 
handling) can be generated. This part is provided by a GGZ-provided component 
called "protocol generator", although it is not tied to GGZ in any way. In 
fact, we could make it a separate project, but it is probably only worth it 
when somebody would invest effort into this tool.

- The "middleware" parts [kggz(d)mod, kggzcore]: This is where GGZ really is 
at home. It is about managing users, sessions, game engines, game clients and 
servers, scoring systems and so on. There has been already some experimental 
work of outsourcing the users + sessions part to Jabber so that GGZ could be 
reduced more to concentrate on the tasks which are not yet covered by any 
other open source project. (Telepathy comes in at this layer as well to put 
things into perspective and is related to outsourcing to Jabber.) Makes sense, 
but again, requires some effort.

- The "frontend" parts [kggzlib, kggzgames]: Something along the line of 
desktop-integrated social gaming. This layer has many sublayers ranging from 
simple and composite KDE/Qt widgets to dialogs and desktop workflows. It also 
has a sister layer on the web, although integrated into the desktop is of 
course the better choice.

If you think that you're up for these challenges, I'll be glad to assist you 
as much as possible. Just tell which of the layers in the stack is the most 
interesting to you.

We will have a KDE game meeting soon in which Stephan will make sure that I 
will contribute some code instead of just broadcasting theories :-)

> Also, is Josef on this ML or do I need to contact him separately?

Yup, I'm reading this mailing list. Alternatively, you may find myself lurking 
on IRC in #kdegames (not often, mostly in the evenings) or you can reach me 
without the usual mail delay at xmpp:josef at kdetalk.net.

Josef


More information about the kde-games-devel mailing list