The other day I was thinking about how I came to create Gwenview and realized the story of its genesis and the reason behind its unusual (for a KDE application) name is not widely known. Time to write an article on this topic. At least one long-hidden secret is going to be revealed in this article… so let's get started!
This odd character was Gwenview 0.1.0 icon
You may have heard me complaining about it, but I struggled for a long time to understand and fix Pixel Wheels bug #119.
In the end what really helped me understand that bug was providing a way for affected players to report detailed logs when the problem was happening.
Many apps do this by collecting data and sending it to a log server. I find this a bit creepy, so I did not want to go down that way. Another approach is to log into a log file accessible to other applications and ask players to attach the log file to their bug report. That is not really convenient though: especially on Android, users are not familiar with the file system hierarchy.
When I started limiting the scope of Pixel Wheels 1.0.0 (so that I can release it before hitting retirement age 😉) I initially moved translation support out. After all, many games are English only. But after thinking about it some more I realized it was wrong: just like apps, games should be accessible to as much people as possible, so I moved translation support in the 1.0.0 milestone.
What happened is I started piling in bug fixes and small improvements, and I felt it would be better to release them sooner instead of keeping them and release all fixes at once in this 1.0.0 version I announced. So... here is version 0.20.0.
The car now looks like a surf minibus:
The menu music is now Lightspeed, by Thomas Tripon.
I reworked the way the game tells the player when they broke a personal record. In the race time table screen, a car drives in congratulating the player, then record indicators arrive next to the matching time in the time table.
The idea: whenever your CI builds the code from your main branch, do not ditch the build results: publish them instead. This makes it easy to provide QA engineers or bug reporters with new builds to try.
I first experienced this setup at work, where we use Jenkins. Jenkins is not my preferred CI system, but to its credit, it makes it super easy to implement this feature: add a step to archive artifacts, either using the GUI or using the archiveArtifacts pipeline command.
We actually do this for all builds at work, not only master branch builds. It makes the life of our QA engineers much easier. Our workflow looks like this:
I thought it would be a good idea to setup something similar for my own projects, which are hosted on GitHub and use GitHub CI.
I expected a feature like this to be readily available, but I could not find exactly what I wanted. GitHub provides a way to download artifacts from a build but it's not ideal:
This month I spent my time on Git Bonsai and Pixel Wheels.
A user reported a bug with Git Bonsai: when working on a repository checkout with multiple work trees, Git Bonsai would crash (#5).
I fixed this and released version 0.2.1. This version fixes the crash and comes with reworked, more Rust-like error handling as I am still using the project to teach myself the Rust language.
The rest of my time was spent on Pixel Wheels. Here are the player-visible changes:
When I announced previous Pixel Wheels release, I said I expected the next one to be 1.0.0. But that was before Google Play rejected the game for not complying with their terms of service. I wrote a snarky article on that topic, but sarcams aren't going to fix the problem, so here is version 0.19.1. This version comes with two flavors for Android: the Google Play flavor links to the project home page and does not mention support. The Itch.io flavor links directly to the [support page]. The Google Play flavor has been accepted by Google Play, so I think we are good there.
I recently updated Pixel Wheels banner image on Google Play. That triggered a review of the game: shortly after the update I received a message telling me Pixel Wheels was "not compliant with Google Play Policies". What nefarious activity does the game engage in? Sneak on users? Mine bitcoins?
If you are like me, your git repository checkouts have a tendency to accumulate lots of branches over time.
Git Bonsai is a command line tool to help you clean this bush.
Git Bonsai can perform the following tasks for you:
Fetch remote changes, then loop over all your tracking branches and update them to their remote counterparts.
List merged branches and let you select which ones to delete.
Do the same for duplicated branches (when you have multiple branches pointing to the same commit).
Pixel Wheels 0.19.0 is out! This is the first release of 2021, and it might be the last 0.x.0 release: the game is a bit light on content (12 vehicles, 6 tracks, 3 championships) but I want to "finish" this project so unless I change my mind, next version will be called 1.0.0.
The most important change is... music!
I spent much time on opengameart.org looking for free music and ended up picking 5 pieces from FoxSynergy:
I was surprised how adding music really gave the game a more "finished" feeling: