[Kde-games-devel] Review Request: Add KScore2 framework to libkdegames (implementation incomplete)

Parker Coates parker.coates at kdemail.net
Sat Aug 7 13:10:18 CEST 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/4919/#review6846
-----------------------------------------------------------


Hello Stefan. So far it looks quite good, although to be honest, I'm not sure I can really give a thorough review until we get to see some UI to understand how it all comes together. ;) I see the motivation of posting the model for review before moving on, however, and thus far nothing sticks out as obviously wrong/restrictive/inflexible. :)


/trunk/KDE/kdegames/libkdegames/kscore2/dataset.h
<http://reviewboard.kde.org/r/4919/#comment6736>

    I'm not sure if DataSet is the best name for this class. The word "set" implies plurality, which makes me think that it would represent a group multiple scores.
    
    In the previous (failed :D) KScore rewrite, the equivalent class was called an Entry, which I think is a bit more descriptive. I also notice that you use the term entry in the Engine API. Other potential names are Submission, Record, or Attempt.



/trunk/KDE/kdegames/libkdegames/kscore2/flags.h
<http://reviewboard.kde.org/r/4919/#comment6735>

    What about support for remembering the last used player name? Currently, KScoreDialog only falls back to KUser if no last-used-name has been saved. That is certainly behaviour that I think we'd like to preserve.



/trunk/KDE/kdegames/libkdegames/kscore2/model.h
<http://reviewboard.kde.org/r/4919/#comment6737>

    s/tabl/table/



/trunk/KDE/kdegames/libkdegames/kscore2/model.h
<http://reviewboard.kde.org/r/4919/#comment6738>

    s/senseful/sensible/



/trunk/KDE/kdegames/libkdegames/kscore2/model.h
<http://reviewboard.kde.org/r/4919/#comment6739>

    Just so I'm understanding, you're providing a singleton interface for convenience, but allowing a public constructor in case some future game has special needs and wants to have multiple Model instances?



/trunk/KDE/kdegames/libkdegames/kscore2/model.h
<http://reviewboard.kde.org/r/4919/#comment6740>

    None of these setters have getters. I can see why providing them for the sorting setters would be a pain, but I think adding a behavior() getter is probably wise for completeness, if only because it should be easy to do.


- Parker


On 2010-08-06 21:30:15, Stefan Majewsky wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/4919/
> -----------------------------------------------------------
> 
> (Updated 2010-08-06 21:30:15)
> 
> 
> Review request for KDE Games.
> 
> 
> Summary
> -------
> 
> 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).
> 
> What I'm presenting here is my current working state. Several things are missing:
> * the implementation for the KScore2::Model class, and the complete KScore2::Dialog class (which will only be available internally; its whole public interface is KScore2::Model::showDialog)
> * unit tests
> * integration into the rest of libkdegames (at the very least, this means a KGameDifficulty::CategoryModel which provides grouping of scores by difficulty as we have it already in most KDE games)
> * API for gathering game statistics (like KPat and KReversi do; I want input on this one!)
> * testing in the form of ported games (KDiamond will likely be my guinea pig again)
> 
> The code is also available from my Git-SVN repository at git://git.bethselamin.de/kdegames-work.git (branch "kscore2").
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdegames/libkdegames/CMakeLists.txt 1159806 
>   /trunk/KDE/kdegames/libkdegames/kscore2/categorymodel.h PRE-CREATION 
>   /trunk/KDE/kdegames/libkdegames/kscore2/categorymodel.cpp PRE-CREATION 
>   /trunk/KDE/kdegames/libkdegames/kscore2/dataset.h PRE-CREATION 
>   /trunk/KDE/kdegames/libkdegames/kscore2/dataset.cpp PRE-CREATION 
>   /trunk/KDE/kdegames/libkdegames/kscore2/datasetdefinition.h PRE-CREATION 
>   /trunk/KDE/kdegames/libkdegames/kscore2/datasetdefinition.cpp 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 
> 
> Diff: http://reviewboard.kde.org/r/4919/diff
> 
> 
> Testing
> -------
> 
> At least it compiles. ;-)
> 
> 
> Screenshots
> -----------
> 
> Relation of the different data sources in KScore2
>   http://reviewboard.kde.org/r/4919/s/473/
> 
> 
> Thanks,
> 
> Stefan
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-games-devel/attachments/20100807/ccf0878c/attachment-0001.htm 


More information about the kde-games-devel mailing list