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.
A few years ago, I published my first Android game: Burger Party. Not the game of the year, but it was good fun!
Google recently notified Android developers it was going to remove apps targeting too old SDK versions from Google Play, so I dived in and refreshed Burger Party source code.
April has been a busy month. I worked on reviving 2-player split screen for Pixel Wheels and preparing to crank it to 11 4. I also made some Nanonote releases and put some work on Clyde too. Finally I started refreshing Burger Party to keep it on Google Play!
As I wrote earlier, split-screen is back in Pixel Wheels. 2-player split screen already works and I am busy getting the game ready for 4 players. The engine already supports 4 players. I "just" need to update the UI to do the same, but it's easier said than done.
So far the vehicle selection can select up to 4 players and the internals support 4 different inputs.
What remains to do is:
As I explained in my previous status update, I decided not to dive into LAN based multi-player for Pixel Wheels. Instead I am reworking the existing shared screen multi-player mode. It's going to use split screen again and support up to 4 players.
I am making good progress so far. The game engine is now capable of showing 4 players:
This is not finished though: (more than) half of the battle is reworking the game screens to accommodate up to four players. The above screenshot is a bit misleading: the game engine shows 4 racers, but not all of them are controlled by players yet.
One of the challenging parts of this work was the vehicle selection. Until now, in multi-player mode, Pixel Wheels have been showing one vehicle list per player, like this:
That design does not scale to 4 players: 4 vehicle lists would not fit on the same screen, and even if they did, it would look very cramped. Taking some inspiration from Mario Kart, I reworked this screen to use a shared vehicle list, where each player controls its own selection.
This was tricky to achieve because the code for this selector was not created with multiple players in mind 😅. After much refactoring, I managed to pull this off. It now looks like this:
The screenshot shows only 2 players, but it should scale to 4 players without issues.
After a very long pause, I am happy to announce the release of Nanonote 1.4.0.
Nanonote is a minimalist note-taking application. It consists of a text area, a context menu and... that's about it!
It's handy to jot down short term notes, as a temporary place to collect copy'n'paste blocks, to draft a long response for an instant messaging app without having to fear pressing Enter too soon or any other use you can come up with!
Nanonote can also be used to write TODO lists. This is even better now in 1.4.0 thanks to the new task feature from Daniel Laidig, which lets you quickly create and toggle checkable tasks with Ctrl+Enter.
Welcome to this monthly update! This month Pixel Wheels did not receive much work, but I made an important decision. I worked on Clyde, Nanonote and TMFI.
I spent more time on NPong, but I eventually decided against opening the Pandora box of network play. I want to get Pixel Wheels 1.0 out in 2023, and I don't see this happening if I try to get network play in. Instead I am going to resurrect the old split-screen multiplayer mode, and extend it to 4 players.
Depending on how the game evolves after 1.0, I may revisit this idea of network play, but right now I just want to be done with it.
Welcome to this new monthly update!
This month I worked on the usual projects: Pixel Wheels and Clyde but also on Nanonote and an old one: Cat Avatar Generator. Let's get started.
As announced in January update, Pixel Wheels 0.24.2 has been released, adding 3 new translations (Hungarian, Esperanto and Turkish) and fixing 2 bugs:
Since then, I fixed another bug which occurred while editing configuration keys (#326). I also included another translation, this time it's Italian, thanks to Dario Canossi 🇮🇹!
I continued working on my NPong proof-of-concept network game. I added Android support, host discovery and introduced Box2D, making the game closer to Pixel Wheels. This might actually work 🤞!
Welcome to this January 2023 monthly update! This month comes with some Pixel Wheels work, an interesting Clyde store story, an update on Nanonote(!) and a new small project: TMFI. Let's get started!
This new bug fix release of Pixel Wheels brings 3 new translations: