Aurélien Gâteau

Inktober 2018

written on Saturday, November 10, 2018

If you have been wondering about the lack of progress on Pixel Wheels, it's partly because last month I participated again to Inktober, the yearly event where you have to produce one drawing a day every day during October.

The Inktober site provides word lists for each day, you don't have to use them, but I find having a word everyday helps getting started.

Like last year, I also picked a recurring theme. This year it was robots.

Pixel Wheels 0.10.0!

written on Wednesday, September 12, 2018

Now that I am back from holidays (and from Akademy, which was awesome!), it's time to release a new version of Pixel Wheels!

Here are the major changes coming with this release.

I am going to Akademy!

written on Tuesday, August 7, 2018

So after a (too long) break, I am going back to Akademy this year! Having been away from KDE work for a while now, this will be the first time I attend the conference as a user. It's going to be interesting to see how this feels. In any case, I am looking forward to the sessions and to catching up with old friends.

PixelWheels 0.9.0, the one with gamepad support

written on Wednesday, July 4, 2018

This took way too long, but I finally found the time to release PixelWheels 0.9.0. I spent most of my time on improving input handling code to add gamepad support, especially the UI part. Gamepad support while racing pretty much worked out of the box after that.

Working around ListModel limitations

written on Friday, June 15, 2018

When you write code in QML, ListModel is a handy class to quickly populate a list with data. It has a serious limitation though: the values of its elements cannot be the result of a function. This means you cannot write this:

import QtQuick 2.9
import QtQuick.Window 2.2

Window {
    visible: true

    ListModel {
        id: speedModel
        ListElement {
            name: "Turtle"
            speed: slowSpeed()
        ListElement {
            name: "Rabbit"
            speed: highSpeed()

    Column {
        Repeater {
            model: speedModel
            Text {
                text: + " " + model.speed

    function slowSpeed() {
        return 12;

    function highSpeed() {
        return 42;

Running this will fail with that error message: "ListElement: cannot use script for property value".

Doxyqml 0.4.0

written on Saturday, May 19, 2018

After almost two years, here comes a new version of Doxyqml, the QML filter for Doxygen. This new version adds a new command-line option: --namespace to wrap the generated C++ in a namespace, and makes the parser more robust. Nothing ground-breaking, but some nice changes nevertheless.

Pixel Wheels 0.8.0, featuring championships!

written on Tuesday, May 8, 2018

Time for a new release of Pixel Wheels!

Version 0.8.0 brings an important change: Championships! A championship is defined as a set of races, and you accumulate points through the races. This is still pretty rough: since there are 4 tracks in the game at the moment, they have been grouped in 2 championships of 2 tracks each.

In the not-so-distant future, I plan to require completing a championship with a rank of at least 3 to unlock the other one(s). Kind of like a certain plumber karting game...

Also, I added a 3 second countdown at the start of each race, so you can prepare for the race.

3... 2...

Pixel Wheels 0.7.0 is out!

written on Monday, April 2, 2018

Due to holidays and not having much ready to publish, I did not make a release of Pixel Wheels for February, but here is 0.7.0, March release!

What's new in this one? A bunch of things:

  • A new snow race. It's full of icy patches, be careful!

Let it Snow

  • The rescue helicopter now has a sound, but if you don't like Pixel Wheels sounds, you can now mute them from the Settings screen.

  • Bots have finally learned how to use the reverse gear to unblock themselves, you won't be able to score easy wins because they got stuck against a wall.

  • I made the vehicles a bit slower, they should be easier to handle now, especially on Android.

  • The Android icon was a bit crude, so I drew another one:


I also fixed a bunch of bugs:

  • Sometimes skid marks would be kept from one race to another, this is no longer the case.

  • There was a few holes around bridges on the "Tiny sur Mer" map. They have been closed.

There were also a few internal changes:

  • libgdx has been updated to 1.7.2.

  • Code is now grouped into packages, making it a little less messy!

  • The update to libgdx 1.7.2 required an update of my fork of MapPacker, but instead I decided to use the maps directly instead of pre-processing them to load them through AtlasTmxMapLoader. This means there is no more MapPacker fork in the code and no need to run it before testing a map, just save from Tiled and run the game.

One of the reasons this release took so long is I struggled a lot with drawing the icy patches, but even more with the pine trees, which I did not like, so I started to redo them, but could not achieve something pleasing, it was starting to be depressing.


written on Friday, March 30, 2018

CMake reference documentation is built inside the cmake binary itself, accessible through --help-* options. This is useful, but not really practical: you have to remember the exact command name, and pipe the output to a pager. I wanted something more user (or developer) friendly.