[Kde-games-devel] Review Request: Add KScore2 framework to libkdegames (implementation incomplete)
Stefan Majewsky
majewsky at gmx.net
Sun Aug 8 15:08:48 CEST 2010
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/4919/
-----------------------------------------------------------
(Updated 2010-08-08 13:08:47.407144)
Review request for KDE Games.
Changes
-------
New diff: Readonly score dialog is done, KGameDifficulty is integrated.
Summary (updated)
-------
KScore2 is a new framework which ought to replace the commonly used KHighscore/KScoreDialog and perhaps also KExtHighscore. The most central class (and the point where you should start reading the APIDOX) is KScore2::Model.
KScore2 makes use of the Model/View concept to create a simple, extensible, yet future-proof API. Contrary to KScoreManager (the other new highscore library which is in playground/games ATM), KScore2 is designed such that no assumptions about the internal data structures are included in the public interfaces. Its API makes simple tasks easy and complex tasks achievable.
Many KDE games have, over the years, grown their own highscore systems. KScore2 allows to accomodate these special needs: The score model can be made to retrieve its data from arbitrary locations by writing a custom KScore2::Engine subclass. Similarly, a KScore2::CategoryModel can be implemented to support custom highscore grouping (e.g. by difficulty, by level, or by levelpack and level). As an example, the KGameDifficulty::categoryModel() contains the difficulty levels for this application. The internal selection is automatically updated to match the selected difficulty level, so showing the highscore table for the current difficulty level becomes a one-liner.
What I'm presenting here is my current working state. Several things are missing:
* the implementation for KScore2::Model::addScore() plus the relevant logic in the KScore2::Dialog class
* unit tests
* API for gathering game statistics (like KPat and KReversi do; I want input on this one!)
The code is also available from my Git-SVN repository at git://git.bethselamin.de/kdegames-work.git (branch "kscore2").
Diffs (updated)
-----
/trunk/KDE/kdegames/kdiamond/src/mainwindow.cpp 1160372
/trunk/KDE/kdegames/libkdegames/CMakeLists.txt 1160372
/trunk/KDE/kdegames/libkdegames/kgamedifficulty.h 1160372
/trunk/KDE/kdegames/libkdegames/kgamedifficulty.cpp 1160372
/trunk/KDE/kdegames/libkdegames/kscore2/categorymodel.h PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/categorymodel.cpp PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/dialog.cpp PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/dialog_p.h PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/engine.h PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/engine.cpp PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/flags.h PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/flags.cpp PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/model.h PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/model.cpp PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/model_p.h PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/record.h PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/record.cpp PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/recordformat.h PRE-CREATION
/trunk/KDE/kdegames/libkdegames/kscore2/recordformat.cpp PRE-CREATION
Diff: http://reviewboard.kde.org/r/4919/diff
Testing (updated)
-------
The score display of KDiamond has been ported. It is able to read the scores which are at the moment still written by KHighscore.
Screenshots
-----------
Relation of the different data sources in KScore2
http://reviewboard.kde.org/r/4919/s/473/
First KScore2 integration in KDiamond
http://reviewboard.kde.org/r/4919/s/474/
Thanks,
Stefan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-games-devel/attachments/20100808/405da07d/attachment.htm
More information about the kde-games-devel
mailing list