The focus of this month was on Clyde. There was a number of changes I wanted to make, and I am happy to report I was able to implement most of them and release Clyde 0.7.0 on April 2!
clyde doc
If a package provides documentation in its release assets, such as a README or an FAQ, Clyde packages install them in $CLYDE_HOME/inst/share/doc/<package_name>
. If it provides man pages, they get installed in $CLYDE_HOME/inst/share/man/man<number>
. This is useful, but let's face it, it's too much effort to cd
there and open these files.
Enter clyde doc
! Pass this new command a package name: it lists all documentation files provided by the package, let you pick one and opens it for you. If it's a man page it opens it with man
, if it's a text file it uses your preferred pager, and for other file types like PDF it starts the system default application for this file.
Here is how it looks if I run it on ripgrep:
$ clyde doc ripgrep
share/doc/ripgrep/CHANGELOG.md
> share/doc/ripgrep/FAQ.md
share/doc/ripgrep/GUIDE.md
share/doc/ripgrep/README.md
share/man/man1/rg.1
You can control the >
arrow with the up and down keys, then press Enter to read the selected file.
I am fan of offline documentation, but offline documentation is not always easy to reach. This feature has been on the back of my mind for a long time, I am happy to have it now!
For this February status update, I want to show the work I have been doing on Pixel Wheels "hit effect". The "hit effect" is what happens when a vehicle is hit by a gun bullet, a missile, or triggers a mine.
Up to know when this happens, the vehicle makes a 360°, which slows him down but keeps it in the same direction as it was before getting hit. This effect has two issues though:
So the effect can be either not punishing enough or too punishing 🙃.
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:
Date | Project | Version |
---|---|---|
2023-02-05 | Pixel Wheels | 0.24.2 |
2023-02-14 | Cat Avatar Generator | 0.2.1 |
2023-03-12 | Nanonote | 1.3.91 |
2023-03-20 | Clyde | 0.5.0 |
2023-04-02 | Nanonote | 1.3.92 |
2023-04-03 | Nanonote | 1.3.93 |
2023-04-11 | Nanonote | 1.4.0 |
2023-05-08 | Burger Party | 1.4.0 |
2023-05-20 | Burger Party | 1.4.1 |
2023-06-14 | Burger Party | 1.4.2 |
2023-07-03 | Poglyph | 0.0.1 |
2023-07-05 | Poglyph | 0.0.2 |
2023-08-30 | Pixel Wheels | 0.25.0 |
2023-09-21 | Pixel Wheels | 0.25.1 |
2023-11-02 | Burger Party | 1.4.3 |
2023-12-01 | Nanonote | 1.4.1 |
2023-12-28 | Clyde | 0.6.0 |
or, grouped by project:
Project | Versions |
---|---|
Burger Party | 1.4.0, 1.4.1, 1.4.2, 1.4.3 |
Cat Avatar Generator | 0.2.1 |
Clyde | 0.5.0, 0.6.0 |
Nanonote | 1.3.91, 1.3.92, 1.3.93, 1.4.0, 1.4.1 |
Pixel Wheels | 0.24.2, 0.25.0, 0.25.1 |
Poglyph | 0.0.1, 0.0.2 |
(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:
Source | Number | Amount |
---|---|---|
Patreon supporters | 2 | 100.25€ |
Liberapay supporters | 1 | 5.43€ |
One-time Ko-fi donations | 4 | 25.42€ |
Itch.io sales | 1 | 4.32€ |
GitHub sponsors | 0 | 0€ |
Total | 135.42€ |
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: