[Kde-games-devel] Reporting Progress

Mauricio Piacentini mauricio at tabuleiro.com
Thu Nov 2 16:48:38 CET 2006


Danny Allen wrote:
 > Right - looking over the text of the meeting summary, it seems to 
have a lot
 > of what I need ;)
 >
 > Of course, there are no cool screenshots there, so I may still be 
talking to
 > people ;D


Danny, I will wrap up the final summary in a couple of hours, already 
incorporated the corrections from Dmitry and Kleag. As for screenshots, 
you asked for them :)

http://www.tabuleiro.com/mauricio/kmahjongg_screens.tar.gz

This has 5 screenshots for the SVN version of KMahjongg. It shows angle 
switching using the stax layout. Angle switching is the ability to 
quickly cycle between 4 points of view of the board (NE,NW,SE,SW), 
mapped by default to the j and g keys. This is something missed on 
several Mahjongg solitaire implementation, but imo it is really 
necessary on some layouts so you can quickly check tiles that are 
obscured by other piles. This is specially required on deeper board 
layouts. And we will have some of them, as KMahjongg now accepts dynamic 
board sizes, where previously we were limited to 5 levels.

In order to implement angle switching I had to change drawing code yet 
again, separating the tile backs from the faces, and adding a sprite 
class that knows how to do the composition and layering quickly. 
Switching a view is very fast, as it requires no re-rendering of SVG 
content or pixmaps caches. You can checkout SVN and give it a try.

The version of KMahjongg currently in SVN is still a bit slow in the 
initial resizing, but this has to do with the large background being 
rendered from SVG without any caching or optimization yet. I plan to 
address this when customizing the background options.

As for next steps, there are still improvements needed to the board 
editor controls to accomodate the new dynamic board options, and a 
reorganization of menus and customization settings. Now that tileset 
format is defined I will also make KShisen use it, and write the 
guidelines for other tile authors. It currently uses an external XML 
file for sanity checking and versioning, and the names of the tile 
elements are specified in the SVG as element ids to optimize rendering 
(DRAGON_1, FLOWER_1, TILE_1_SEL, for example). My initial timing of 
rendering seems to confirm what Zach told me during aKademy, rendering a 
face using this approach from parsed SVG content takes more or less the 
same time as scaling a QPixmap. Final optimization will of course take 
place after features are frozen, and we hope to have a common approach 
(kpat, kreversi, kmahjongg, others) for initial rendering and caching of 
SVG data, something that is already being considered by myself, coolo 
and dmitry.

I believe this has more info then what you need, I will probably blog 
about this next week as well, after the commit-digest is published.

Regards,
Mauricio






More information about the kde-games-devel mailing list