[Kde-games-devel] What are the deliverables for KDE Games GSoC?

Trever Fischer tdfischer at fedoraproject.org
Fri Apr 27 15:37:38 UTC 2012


On Sun, 2012-04-22 at 13:14 +1000, Ian Wadham wrote:
> Hi guys, especially Stefan,
> 
> On Monday at 19:00 UTC the results of student applications for Google
> Summer of Code (GSoC) will be announced on the GSoC 2012 website.
> Then there begins a four-week "Community Bonding Period" in which
> "students get to know mentors, read documentation, get up to speed to
> begin working on their projects".
> 
> KDE Games students will need to become completely clear, in the next
> week or two, on what work they are to deliver --- and where and how.
> 
> Also we ourselves are in the process of moving to GIT and re-writing
> the libraries the students will be expected to use.
> 
> And there are various deadlines coming up in the KDE 4.9 release
> cycle during the GSoC period --- 24 April to 24 August.
> 
> Beta 1 tagging is on 24 May, before the students officially start
> development work (according to Google's schedule).  And there are
> soft and hard API freezes on 17 May and 25 June.
> 
> Personally, I think it would be unfair to expose students to all the
> hurly burly of changing libraries, moving to GIT and observing KDE
> release deadlines, though a little of it might be valuable work experience ;-)
> 
> There are two classes of GSoC project proposed for KDE Games:
> porting games to newer graphics libraries and implementing games
> in QML/Qt Quick.  For brevity I shall call these "porting" and "QML"
> projects.
> 
> Porting projects.  There are to be at least six games ported.  My ideas
> on delivery methods and deliverables are:
> 
>   - Work off SVN repository for now and for as long as possible (e.g.
>     even after the move to GIT unless the student prefers to work in GIT)
>   - Deliver changes by review board
>   - Review by KDE Games team ideally, or at least Stefan and me (as mentor)
>   - Commit by mentor OR only when the mentor says (depends on stage
>     of KDE release cycle: it would be nice if some ports could get into 4.9)
>   - Porting must be fully to KGameRenderer (KgRenderer?) and KgTheme
>     as appropriate, not just to QGraphicsView
>   - Set KGameRenderer strategy UseDiskCache=true, unless the graphics
>     files are very small
>   - Set KGameRenderer strategy UseRenderingThreads=false (I am worried
>     about students getting bogged down if anything goes wrong in threads)
> 
> QML projects.  There will be one game per project.  My ideas on delivery
> methods and deliverables are:
> 
>   - Work in playground/games repository (should this be in SVN or GIT?)
Probably Git. It'd be easier than worrying about converting it from SVN.

>   - Student has own KDE account for commits, subject to the usual approval
>   - Announce via review board when there is something committed for review
>   - Review by KDE Games team ideally, or at least Stefan and QML mentor
>     (the proposed QML mentors are from outside KDE Games)
>   - Re-implement an existing KDE Game using QML/Qt Quick: we are
>     not looking for a completely new game nor a complete re-write of an
>     existing KDE Game
>   - The re-implementation should use as much as possible of existing C++
>     code in KDE Games and existing KDE Games libraries
> 
> These last two points need a lot of clarification.  Stefan, please help.
> 
> We need a mix of QML and C++, but which parts of the code should
> typically be implemented in QML and which in C++?  Ideas tossed
> around in the proposal evaluation stage seemed to range:
> 
>   - from a complete re-write in QML, with classes we can add to our library;
>   - through a complete re-write except for the "game engine", with classes
>     we can add to our library;
>   - to what I have suggested above, maybe with mods to our KDE Games
>     library classes to make them easier to use from QML.

When I added QML support to libzeitgeist, I basically just wrapped
everything in a QObject, unless it was already a QObject, QGraphicsItem
or a QAbstractItemModel.

> 
> The above is my best guess at what is required for QML projects, but I do
> not know QML.  Ideas and precise requirements statements are welcome.

My approach to writing a QML app is to start with some raw QML and then
add C++ stuff as needed. This keeps the QML and C++ apis as close to
each other as possible with minimal overhead.

> 
> All the best, Ian W.
> KDE Games GSoC mentor for "porting" projects.
> 
> 
> 
> 
> 




More information about the kde-games-devel mailing list