[Kde-games-devel] GSoC 2012 - Porting Games to QML

Ian Wadham iandw.au at gmail.com
Sat Mar 3 22:28:34 UTC 2012


Hello Mehmet,

On 04/03/2012, at 3:56 AM, Mehmet Emre wrote:
> I wish to participate to Google Summer of Code 2012. I saw 2 ideas in the
> Ideas Page of KDE for GSoC:
> - Project: Port games to more modern graphics frameworks
> - Project: Write a KDE game using QML ("Qt Quick")
> 
> As a project I may port some of the games which are written in KGameCanvas
> to QGraphicsView. Moreover I may port those games to QML (Qt Quick). In this way
> we can kill two birds with one stone. We can get rid of deprecated KGameCanvas and
> see what improvements do we need in libkdegames in order to create QML-based
> games.
> 
> Before making a project proposal, I considered that inquiring here would be more
> proper and here I might get help for shaping the project proposal.

Here is a copy of some tips about GSoC and KDE Games I gave to another guy:

    ">> The codebase is at  http://websvn.kde.org/trunk/KDE/kdegames/ and
    >> the easiest game to study might be kdiamond, but it is already using
    >> KGameRenderer.  techbase.kde.org has a lot of information about
    >> how to download and build KDE source code, such as by using
    >> kdesrc-build, as well as tutorials on how things are done in KDE.
    >> 
    >> User handbooks for the games are in the kdegames/doc directory,
    >> in XML Docbook format.  Program documentation in KDE Games is
    >> scarce, but you might find some embedded in the code as comments
    >> in Doxygen format --- or even just plain ordinary comments … :-)

    Oh, and you can use anonsvn to check out large numbers of files with SVN.

    Re the list of games to be ported and GSoC on KDE, here are some links:

    http://community.kde.org/GSoC/2012/Ideas#Project:_Port_games_to_more_modern_graphics_frameworks
    http://techbase.kde.org/Projects/Games/Porting
    http://teom.wordpress.com/2012/03/01/how-to-write-a-kick-ass-proposal-for-google-summer-of-code/
    http://community.kde.org/GSoC
    http://google-melange.appspot.com/gsoc/homepage/google/gsoc2012

    Note that the aim is just to port the rendering and cacheing of graphics to
    KGameRenderer, not to change the underlying graphics stack."

You can find this and other discussions from the last week or two on our
email archive at http://lists.kde.org/?l=kde-games-devel&r=1&w=2

Your next step would be to show us what you can do, e.g. by submitting
a patch to fix a bug in a game or add a small feature.

Please note that there are engineering concerns with converting some of the
games from KGameCanvas to QGraphicsView and from QGraphicsView to QML.

They concern the speed and consistency of animation in QGraphicsView and
possibly in QML.  Some games require continuous quick animation, such as
KGoldrunner.  In past versions, QGV was fast enough most of the time, but
had annoying cases in which the animation would hiccup (freeze up) at
random for several tenths of a second, making the game unplayable.  That
is why we switched to KGameCanvas.  Maybe QGV is nowadays fast enough
and consistent enough, but …

... there is a risk that switching from one graphics stack to another could
introduce subtle, hard to diagnose, bugs into a currently working game.

There is less risk of that if you only change the code that renders SVG and
caches pixmaps, which is largely in the startup/initialisation of games.  See
the warnings in http://techbase.kde.org/Projects/Games/Porting ...

I appreciate your "kill two birds with one stone" idea, Mehmet, but please
beware of biting off more than you can chew.

All the best, Ian Wadham






More information about the kde-games-devel mailing list