Following my 2023 wrap up, here is the first status update where I focus on a single topic for the month, with the hope of making the update a more enjoyable read.
This month I finished Pixel Wheels new track: "The island".
The track starts with a tight right turn around a tower.
Then you drive in front of an old fortified entrance:
It's the start of 2024, so I want to reflect on how 2023 went, regarding my FLOSS activities.
In 2023 I made 17 releases:
|Cat Avatar Generator
or, grouped by project:
|1.4.0, 1.4.1, 1.4.2, 1.4.3
|Cat Avatar Generator
|1.3.91, 1.3.92, 1.3.93, 1.4.0, 1.4.1
|0.24.2, 0.25.0, 0.25.1
(I haven't written about Poglyph yet. It's a set of two small CLI tools to find missing glyphs in fonts. I extracted it from an internal Pixel Wheels tool and now use it in Burger Party)
I was happily surprised by the number of releases I managed to push. It's a bit more than I expected.
I had the secret goal of getting Pixel Wheels 1.0.0 out for the end of the year, but that did not happen. Moving houses ended up taking way more time than I expected :)
Still the game is in a good shape for a 1.0.0 release. The missing track is mostly done, I may add multiple difficulty levels (some equivalent to the 50cc, 100cc, 150cc and 200cc in Mario Kart) and that will be it.
Burger Party made a surprising come-back this year! Google requesting the game to be updated otherwise it would no longer be available on Google Play finally got me working on it after leaving it untouched for 5 years.
I am happy that I finally got to add the end sequence I had in mind and that I pushed the game on F-Droid. This had the unexpected side-effect of gathering interest from several translators: the game received an update to the Spanish translation from a native speaker and got translated in Basque, Dutch and Polish! And it's not over yet: I recently merged an Hungarian translation too.
I had high hopes on Clyde, but it has failed to gain traction for now. Marketing is definitely not my forte, but I keep trying :). At least it's useful for me, and creating it was a nice way to gain more knowledge in Rust.
I have a support page, with links to various ways to give me money.
The thing is, even critical infrastructure projects struggle to get funded (mandatory XKCD link). Me, I just make tools and games. I am also not starving, there are more important projects or causes than supporting me. Still I would love to be able to reduce my time at $JOB to a 4 day week, keeping one day for my own projects, as I once did several years ago.
Support in 2023 breaks down to this:
|One-time Ko-fi donations
The tricky part of being on platforms like Patreon or Ko-fi is they encourage you to give some rewards to supporters. It makes sense, but it does not match well with open-source work: I don't have any secret agenda I could share with insiders, all my work is in the open. As such I feel the least I can do is write monthly status updates, but it takes quite some time to do so, and I have no idea if they are useful. When I look back at them I often find them boring to read.
I actually like writing, and I'd like to write more interesting pieces than status updates. I am considering focusing on one interesting topic for each month, and write on it instead. What do you think?
My primary goal for 2024 is to get Pixel Wheels 1.0.0 out. I don't want to write down any other goal for now, we'll see when it's out! Once this one is achieved I am sure I am going to feel a huge relief :)
The popularity of Go and Rust and their ability to produce self-contained static binaries has made it easier for developers to publish builds of their applications working reliably on all platforms.
Downloading standalone binaries is easy and fast when one wants to try a new application (no need to build from source, no need to add a third-party repository...). On the other hand, keeping track of these applications over time is tedious and time consuming. This is what Clyde is here to solve: Clyde is a cross-platform package manager for pre-built applications.
Installing fd, for example, can be done with
clyde install fd.
Keeping installed applications updated consists of running
clyde update to get an up-to-date list of packages, then
clyde upgrade to install the latest version of all installed packages.
Another double monthly update. Turns out moving to a new house is a voracious time eater… (who knew?). Here is what I still managed to get done when I was not busy emptying one house, filling another one, trying to give/trash as much crap as possible in the (still ongoing!) process.
On Pixel Wheels, I worked on the third track for the "Pixel Cities" championship. It's mostly ready and now has a name: "The island".
This new track was the opportunity to make some improvements on the tile engine. Creating obstacles requires less manual work now, making it faster to iterate and experiment.
Welcome to this September 2023 update! I had Burger Party and Nanonote releases planned for this month, but that did not happen. I did however release version 0.25.1 of Pixel Wheels.
0.25.0 had a bug where it would complain about a missing controller when started on Android (#398). I released 0.25.1 to fix that. The release also includes updated translations and a fix for the score table not always fitting in the screen (#397).
Beside this release, has announced in my previous monthly update, I reworked the track selector to fit another track, so that I can add a 3rd track to the "Pixel Cities" championship. It looks like this now:
The first row shows all championships. The second row shows the tracks within the selected championship.
Monthly updates are not dead! They just took some summer vacations 😅. Let's see what happened during these two months.
I finally released Pixel Wheels 0.25.0. It's been a long time coming, but now it's there. Here is the release announcement.
This release was made a bit harder by Google Play getting in the way, see this frustrated Mastodon thread for more details :)
SFXR-Qt received a bit of build-system and dependency love. I merged a PR from Mailaender to add an option to use the system provided Catch2 library instead of the bundled one. This prompted me to update the bundled Catch2 to version 3.4.0.
Shortly after the release of Burger Party 1.4.2, I received two new translations: Basque by Josu Igoa (who also translates Pixel Wheels!) and Spanish by YottaMxt. Probably going to make a new release in September to make these translations available.
Keep these translations coming! I am still amazed how publishing the game on F-Droid injected some new life in it!
The Clyde store received two new packages:
I also improved the CI a bit further: adding pre-commit and making it even easier to trigger updates.
Nanonote now speaks Polish, thanks to Marek Szumny. With Danish and Dutch, that makes 3 new translations since the last release. Another app to release in September...
Colorpick is a color picker I built a long time ago, whose distinctive features are the ability to check the contrast between a background and a foreground color as well as an arrow-keys-operated magnifying glass to pick the exact pixel you want to pick. I haven't been active on this app for years. Recently redtide started contributing to it. They wanted to do many changes, and I was not that motivated to work on this app, so I offered to transfer it to them, which they accepted, so Colorpick is now part of the qtilities organization!
As mentioned in this report, I have some releases to do: a new Burger Party and a new Nanonote. Beside these, I have some work planned on Pixel Wheels. I need to add a 3rd track to Pix Cities championship, but that would increase the number of tracks to 9, which would not fit on the individual track selection screen anymore. This means I am going to work on this track selection screen first. I plan to change it so that one picks the championship first, and then the tracks inside it. This should fit the screen.
Finally, after way too long, here is version 0.25.0 of Pixel Wheels!
Let's see what's in the box.
This has been requested for a long time. Pixel Wheels multi-player support was limited to 2 players sharing a single screen, the game would zoom out to ensure all players were visible. This was not a good approach because it imposed a constraint on the track size: in cases where two players were at opposite corners of the track, the game had to zoom out to show the full track on the screen. This could make the game unreadable if the track was too wide. Going back to split-screen solves this, at the price of limiting the player fields of view, as is often the case with split-screens.
So split-screen is back, but it actually got better: it now supports up to 4 players!
In June, real-life got in the way and I did not get as much done as I wanted. Still some good things happened for Pixel Wheels and Burger Party. Let's look at them.
I started a new vehicle! This time it's an old Formula 1 car, inspired from the Lotus 25. It currently looks like this:
I recently stumbled upon this excellent 2014 article about patch review by Sage Sharp: The Gentle Art of Patch Review.
I highly recommend reading the whole article, but my main takeaway is that when reviewing code, one should follow three phases:
I do quite a lot of reviews at work. Sage article made me realize I am often guilty of jumping directly to #3. I have been reflecting on why that happens, and I concluded that it's because it's the path of least resistance.
When I receive a 10,000 line patchset, with 23 commits stepping on each other and no description, the temptation is high to skip phase 1 and 2 and instead say to myself: "I am just going to review the whole patch one line at a time, suggesting new names and micro-optimizations so that it does not look like I clicked on Approve while looking elsewhere".
Since jumping directly to phase 3 is the path of least resistance, when preparing code for review, you should make what you can to reduce the resistance of phase 1 and 2.
Welcome to this May 2023 update. This month was almost entirely game-related, with some progress on Pixel Wheels and a Burger Party release!
It's now fully possible for 4 persons to play Pixel Wheels at once, on the same screen! The engine was already capable of splitting the screen in 4, but the UI part was missing. This month I finished the UI part, making it possible to select the number of players and to configure the input method for each player.
On top of this, Pixel Wheels learned to speak Dutch, thanks to Heimen Stoffels!
Finally, thanks to bug reporter extraordinaire Marek Szumny, a number of bugs have been fixed:
Marek also refreshed the Polish translation, which was a bit outdated.