moved Kajongg from playground to kdereview

Wolfgang Rohdewald wolfgang at
Sat Feb 13 22:31:24 GMT 2010


I just moved Kajongg to kdereview, aiming to get it into
KDE core kdegames 4.5

Kajongg implements the traditional game of Mah Jong played by four players.
It has two modes: You can play against the computer or against other players
over the net, or you play as usual and only use Kajongg for computing scores.
Computing scores is a rather tricky aspect of Mah Jong so I definitively
expect users who mostly use this part (like myself).

A special problem of Mah Jong is that there are many different rule sets
worldwide, and it is absolutely normal to negotiate rules before starting
to play. I have good support for customized ruleset definitions. A
player starting a new table on the game server defines the ruleset to 
be played on that table. Still missing: The other players need a diff
function to see which of their own rulesets matches the table ruleset
most closely and what differences there are between any two rulesets.

I wrote an extensive english user manual (docbook), and I translated it
into German. Others translated around 100% to Ukrainian, Swedish, Spanish
and Portuguese.

The user manual however does not explain the gaming rules. Please look
them up at Wikipedia. Or try --automode, start a new game 
(CTRL-P), login to localhost, select a ruleset, press Start in the table
list. Now 4 computer players are playing against each other. This is not
quite a demo mode since the dialogs that should normally be answered by
the players only flicker. I added this only for testing. But you can see
some action. The winner has 4 groups of 3 or four tiles each (identical or
sequence) plus a pair of identical tiles.

There are definitively more features I want to add like voices, more rulesets,
more intelligent computer players, suspend/resume of games but I think there
should be enough value for KDE core.



Kajongg is a pure Python application, so many of the guidelines at are simply not applicable.
I just tried to be a good citizen but I have no idea how good...

The game server part is able to run without KDE, it only needs
Qt4 (as my debian stable server does not offer KDE4 for installation...).
I actually could make it run without Qt4 - but see no need to do so yet.

The client part is a normal KDE4 application, using backgrounds and tiles
from libkmahjongg.

Game server and game client can of course run on the same computer, even
sharing the same data base (SQLite). When simply playing against 3 computer
players the server is started automatically.

I decided against using ggz for network gaming and used the python-twisted
networking library instead. I hope this makes it easier to install as
python-twisted has a broad user base and a very active community.

I also mostly decided against using qt-designer, I prefer to manually code
the GUI. There are currently only 2 ui files for the config menu
(background and tileset selector), similar to what KMahjongg does
(I started Kajongg by reimplementing parts of libkmahjongg in Python).

You can compare Kajongg against xmj by Julian Bradfield (OSS, GTK, only
implements the computer playing part but has quite intelligent computer
players) or (Windows shareware,
only implements the scoring part). And of course there is (Windows/shareware, implements both modes) -
this one implements both modes, and it is top of the art in that it
implements many different rulesets.


More information about the kde-core-devel mailing list