moved Kajongg from playground to kdereview

Wolfgang Rohdewald wolfgang at rohdewald.de
Sat Feb 13 22:38:04 GMT 2010


Hi,

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 kajongg.py --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.

Homepage: http://www.kde-
apps.org/content/show.php/kajongg?content=103206

Technical:

Kajongg is a pure Python application, so many of the guidelines at 
http://techbase.kde.org/Policies/SVN_Guidelines 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 http://www.mahjongcalculation.com/index.htm (Windows 
shareware,
only implements the scoring part). And of course there is
http://www.4windsmj.com/ (Windows/shareware, implements both modes) -
this one implements both modes, and it is top of the art in that it
implements many different rulesets.

-- 
Wolfgang




More information about the kde-core-devel mailing list