2024 Retrospective: Thinking Small
For 2024, my goal was to finish four games, with at least two of those being in progress before 2024. I set this goal lower than my similar goal in 2022 because I wanted to focus on longer games, of the same scope (or larger) than something like Champions of Shond. I published nine things this year, but only one of them was largish and only one of them was an in progress game. I think this was my weakest year in terms of output since 2021.
Timeline
This year’s timeline!
Same meanings as last time:
* indicates a finished project.
+ indicates an evergreen project like one of my released packages or my blog.
- indicates an ongoing project that I did some work on.
Anything without an indicator is a new unfinished work for me to carry forward, which is a lot of them.
Chess (New)
At the end of 2022, I started working on Pier. It was meant to be a quick mood piece. A vignette of a scene. I spent quite a bit working on it, but I ended up feeling that it was too sparse to release, especially after I’d released CALM MOSS, which followed the same model. I’d wanted to have some sort of tarot reading or solitaire built in, but that ended up feeling too expansive in scope.
On the other hand, I really like chess puzzles. I figured I could put those in Pier and use that as a core of something to do. However, implementing Chess isn’t exactly easy, and for what I wanted to do, I needed a reasonably intelligent chess bot. With that in mind, I decided that I’d split off Chess into its own game. An easy win.1
Implementing Chess is the losing combination of rote and just challenging enough to make it uninteresting to do, and when I had to transition an app off Heroku due to pricing changes, I quickly pivoted to doing so. I spent about half a week porting my game database app from Heroku to fly.io, and never looked back at Chess.
Menagerie (New)
When transitioning my web app from Heroku to fly.io, I went down a chain of thought that eventually landed at the concept of a collection of my free games. It would serve as a memento of all my work; something that I could have with context of thoughts I had at that time, and other development knick knacks. I could sell it at some trivial price, expecting basically no sales.
I don’t remember exactly what motivated me down this path, but it got me to revisit a bunch of old games. I initially toyed with experimenting with Godot for my launcher, but wanting to be able to include my web games made me realize that I’d be paying the size hit of Electron at least once, so I might as well try to reuse it. I wanted something that I could extend without having to change the launcher code, just by reading a JSON file and then booting the files directly.
It was a little bit complicated by the web games, which would need to launch in their own Electron windows. I started modernizing Deeper & Deeper while simultaneously developing the next game on the list, and this ended up falling by the wayside as I kept veering off in new directions.
I came back to Menagerie from time to time, although I’m still not sure if this is something I want to release. And if I do release it, do I try to charge for it? Or do I make it just a free monument to my games? Time will tell, although with each new game I release I step farther and farther away from this becoming a reality.
Matchonix (New)
The idea for Matchonix came about when I was toying around with the idea of having an exclusive game for Menagerie, and I wanted to make a Match-3 game that I actually enjoyed.
Ultimately I ended up coming down on the side of not having exclusive games for the Menagerie, but I still wanted to make this. The strategizing of Match-3 games has never particularly appealed to me, nor has the round-based aspects of many of the mobile ones. I just want to get in, match some things, and get out.
To that end, I was inspired by Krazy Kreatures, an unlicensed game for the NES. It opens up with a lot of creatures (kreatures?) flying in, and you have to match some number of them to move onto the next level. I liked the idea of frantically trying to make matches and quell the never-ending onslaught of new tiles. From that, Matchonix was born. The visual influence owes its inspiration to the CD-i Tetris, which has the perfect atmosphere.2
Development took a while, but went smoothly. Ultimately, January ended up being a fairly productive time of the year for me.
Returning to LowRezExplorer (In Progress)
LowRezExplorer is the game I intended to finish all the way back in 2021. It branched off from the Deeper & Deeper and Getting Out code, and as I started to modernize those for Menagerie, I came back to this. I wanted to merge my dynamic dungeon generation with the hand-crafted ones that I used for Champions of Shond. I knew the 2023 Dungeon Crawler Jam was coming up, and wanted a strong base to work off of.
This work pivoted into Relics.
Relics (New)
Relics was to be a spin on 3D Monster Maze, an old, neat horror game about a T-Rex in a maze. I wanted to make something that felt like what a PS1 remake of that game would feel like, and my plan was to use it as a way to solidify my dungeon generation library. I got a good way through, procedurally generating some interesting terrain, but the scope was too large and I got hung up on the art assets, on setting up a static world, and on deciding on the scope of the game.
DCJam2024
I had grand plans for DCJam2024. Relics was supposed to be the thing that would set up my toolset for this game and allow me to finish this at the blistering DCJam pace (a week).
This was supposed to be a weird game where you’re exploiting a newly opened dungeon. You’d do small jobs, ferrying things between floors and helping merchants set up shop deeper and deeper, making the dungeon more safe, occasionally retrieving the corpses of fallen adventurers to get them revived at the nearest outpost. Time would pass and, even if you didn’t help, the dungeon would eventually get tamed.
Eventually, on the final floor, someone would slay the dungeon heart, and the dungeon would slowly dry up and the people inhabiting the floors would leave as the money dried up. The traveling infrastructure around the town would leave, and so would you, eventually.
I spent a lot of time thinking about this (I was on vacation before the jam started, so plenty of time to think), but ultimately I just didn’t have the drive to even start on this. It was the first game jam that I joined that I didn’t finish in quite a while (since 2016, I think).
THE ERA OF DREAMING
After my dungeon crawler game fizzled out without much work, I spent a lot of time from March until August thinking of games that I could make. I’d plan mechanics in my mind, thinking of things way out of scope for what I could actually accomplish. But, worst of all, I never actually started on them! Just lots and lots of thinking (and some gaming) with no action. Thinking without putting pen to paper was a trap that I fell in last year, and I did the same this time as well.
THIS IS NOT WORTH PRESERVING (New)
I got in an argument online (surprise, surprise) about whether all art, in and of itself, was worth preserving in perpetuity. Now, I imagine this would be an impossible feat: just look at the amount of data uploaded to YouTube every minute. If you’re being an art preservation maximalist, that will include every child’s drawing, as well as art that was produced to be fleeting. People will have to box up all of their quilts and store them in temperature-controlled vaults to prevent wear and tear.
I find this desire for maximum art preservation often comes out of a desire to collect all things instead of an appreciation for art itself. Yes, it’s true that there are some things that are considered historically important now that we don’t preserve, but that arose from a different time, where people were far less equipped to preserve themselves what they valued (speaking exclusively of digital works, physical works remain more or less difficult to preserve).
If, say, every game on itch.io does get preserved, what then? In a hundred years, who is going to trawl through this collection of games, looking for random 2D platformers, only then to have to find some way of emulating the game on whatever they have for machines then. If they find this, stripped of all context, what does it mean to them? What’s the point?
That was what I was trying to get at with this game. Shapes spin around you as you move and jump around in a confined space. The game tells you that it’s not worth preserving, and it’s right. It doesn’t do anything interesting! There is no point keeping around an 80 megabyte executable forever for this.
This was, like a butterfly flapping its wings started by a tornado, initiated by the Stop Killing Games initiative, but isn’t really a commentary on that, as that initiative involves only games that people were interested enough in to purchase.
I enjoyed developing this. It was an exercise in aggressive minimalism. At every step I wanted to make it fancier or more polished, but I kept reminding myself, no, it doesn’t matter. It was freeing, in a way.
For The End (New)
For The End came about when I was trying to break my game development dry spell in early July.3 In a choice that was clearly a mistake, given my performance the previous year with writing, I decided it should be interactive fiction, but really actually small-scoped this time.4
I’d been toying around with the concept of nothing games when I was thinking of the concept for For The Company.5 A nothing game is a game that might suggest at some themes, but is explicitly designed without any thematic intent. I would make choices that implied meaning, but lacked any. I went into this concept planning on making an ink game, and let it form from there.
For The End’s first concept lay in various scenes happening in rooms around you, where you could potentially interact with characters if you happened to be in the right place at the right time. By sticking with one room, you would understand more of what was happening there, but at the cost of missing the context in other rooms. However, that gave me a conundrum: either interactions were meaningful and could change the path of the story, or they lacked impact and thus felt futile. To avoid increasing scope,6 I cut the discussions.
At that point I honed in on uncovering the story… how could the player take part in a story in which their agency was meaningless, yet still find it worthwhile? That parable about the blind men and the elephant came to mind. With limited time, how would the understanding of the space and the actions therein change from person to person? What story could the player take part in a story in which their agency was meaningless, yet was ultimately compelling?
The answer that I arrived at was to have them be the focus of the story, but have everyone else refuse to interact with them.
By staying in one place, the player would slowly understand more about where they were, but only that place. By moving, they’d understand more about the space as a whole, but less about each individual component. This required a good deal of descriptive writing (about twenty lines of description per room, which was tricky for me), and it was a challenge. I could not contrast spaces with other ones, as the player wouldn’t necessarily have that information.
After sketching out the map of the space and the general world, I wrote some, but ended up falling off of it by July 14th. Ultimately, it was starting on For The Company that drove me to finish it. I’d envisioned them as two games in a trilogy associated by nothing more than both being nothing games and used that as a motivation to finish it, releasing it as the first of the three. It worked, and I ended up releasing For The End on August 10th.
For The Company (New)
In the middle of May, I was playing the artistic, clever puzzle game, Lorelei and the Laser Eyes. In the game, there are fake prototypes of PS1-era games. There’s a forest, hallways, and a library. The zones are gorgeous and evocative. I’d assumed that there would be connections between them (and maybe there were that I missed), but they seemed rather disjoint. I imagined that they’d end up having the same layout, just with different views of it.
Similarly, I found the idea of having a gravestone with a short phrase about a long-dead person intriguing. It’s a gravestone, so it will be positive, of course, but who were they, really? The idea seemed evocative and like a natural fit for LOWREZJAM, so I shelved it until then.
In the meantime, I started For The End and formalized the concept that had been bouncing around in my head as nothing games.7 I thought about how I could frame the different areas and decided on showing three aspects of a person: their portrait, their gravestone, and their fate.
LOWREZJAM started on August 1st, and development came easy. I had the infrastructure for infinite procedural generation from my work on THIS MAZE HATES YOU. and The Path Past The Mountain. I had boilerplate for a low rez project from my work on rereleasing my games as part of Menagerie. I went all in on procedural generation, making fake family trees, genetic inheritance of traits,8 and runtime compositing of a person’s attributes to dynamically make portraits.
I ended up with what I think is a visually interesting game that feels like it’s trying to say something.9 I finished it on August 6th, but released it on August 11th after finishing and releasing the first game in the trilogy, For The End. I had no plans for what the third game in the trilogy would be, or even to actually make a third game. It could be a duology, but really, no one makes those. I figured I could just call some future game that worked the third game in the trilogy.
For The Good (New)
The day that I released For The End,10 I had an idea. I’d been reading a long book on American history,11 and it had just reached D-Day. Someone described the channel as being so full of ships that you could hop from Britain to France without reaching the water. I’d also played Echo Night and found its day/night cycle gorgeous. All that was churning around in my head as I looked for game jams that I could join for inspiration.
I saw the GMTK Game Jam, which is one that has run for several years and always has thousands of participants. It also has the chance to get your game on a famous YouTube channel, so people are quite competitive about it. Neither of those are really my sort of thing, so I tend to avoid it.
This time, however, I thought about how my game would inevitably get hidden amongst the thousands of games. I wondered if I could have that work on two levels—hide the main thrust of my game and hide my game within the game jam. The jam started on August 16th, with the theme Built to Scale. This more or less fit with the game I wanted to make, so I started development. I released it on August 18th, just under halfway through the jam period, although most of the way through the time I had to work on the game.
These Endless Plains (In Progress)
I’d really stopped thinking about Strange Traveler. I hadn’t worked on it since 2021, and while it was one of the games on the short list for 2022, I didn’t actually work on it.
Looking back at it, it was the source of a lot of the shared code I take for granted now: my note system, the crosshair interaction (and the graphic, which originated here but has been used a few times previously), an initial version of procedural generation. Going back over this gave me a nice sense of nostalgia.
I went in with a bit of an odd approach here. My thought was to accomplish just three things: update it to my modern libraries (again), get the monorail generation going, and generate the simplest houses. Nothing more. My hope was that limiting what I had planned to do for it would get me to commit to actually doing it.
It went well. I was motivated from the jump, and sustained it mostly until the end. I did end up cutting a lot of the variety of buildings (most notably houses) due to a lack of drive at the end, but it’s out there.
In my 2022 goals post, I mentioned that it was mostly completed,12 but that didn’t really end up being the truth. Of the 277 commits I made to that project, 169 were in this most recent push.
Why did it work this time? Well, for one, I’d built up my procedural generation library from For The Company, THIS MAZE HATES YOU, and The Path Past The Mountain to the point where I had a solid, working base to build from.13 The work I’d done when I returned to it in 2021 was the right call, and proved to be a reliable foundation to build from.
I’m moderately more familiar with 3D modeling, which made the simple models I had to generate trivial to do. I was able to easily get performance wins and didn’t get defeated by obstacles in my way. As much as I’d like to say that there was a repeatable reason that I finished it this time, I think the main thing is that I was on a roll. One that I, writing this the same day that I hit publish on These Endless Plains, doubt I’ll be able to sustain.
The non-code name for Strange Traveler is These Endless Plains, and I published it on September 1st, 2024. I’d made the itch page when I joined the jam that I originally worked on this for back in 2020, so it’s good to finally have that page out of the seemingly permanent “Draft” stage.
While I wasn’t inspired by anything other than Error City Tourist when making this game, when picking it up I did notice surprising similarities to Piranesi by Susanna Clarke and A Short Stay in Hell by Steven L. Peck. The writing, setting, and tone was already set before I read those books, so it was strange to see my work reflect books that I hadn’t read yet.
Flitting Around
After finishing These Endless Plains, I went back to Relics. I didn’t get much purchase there, but did go back to Menagerie and make a good deal of progress. While modernizing The Walk & Talk, I ran into something that I was not enjoying doing at all (supporting controller input in menus, particularly the scene select one, which didn’t fit my existing modules), so I went over to Four Block Drop Gaiden. I ran into issues with my shared libraries there where it wasn’t correctly compiling them, but also wasn’t giving me any errors, which greatly hindered my motivation. I then went back to my Menagerie project and made fairly good progress before returning to Relics again.
On September 10th, I began a project that had been kicking around in my head for some while, Promise, which is transparently inspired by the third arc in the podcast Worlds Beyond Number. Any progress that I would have made was soon swept away by the tide that was UFO 50, a superb collection of games that monopolized my free time for a month or so.
Ninja TriWars
November was rolling around, which meant that it was time for me to add new content to Ninja TriWars! For this year, my nephew wanted me to add a journal with descriptions on the weapons and the bosses, along with “sketches” of them. This ended up meaning that I ran renders of the enemies through a filter, which worked pretty well (no one wants to see my attempt at a sketch). I also took the opportunity to modernize a few things, and started on adding a new boss just for fun and, foolishly, I said that I’d add an extra boss for free.14
Small Endings (New)
Well, I ended up doing more writing-focused games than I expected to this year. I played New Years 7016 from the Syzygy Suite by Connor Sherlock, and I was inspired to make a game where you’re sitting on the top of a skyscraper while the world ends. The timing was both appropriate and unfortunate, as much of my work was done around the election. It ended up taking a lot of the development time away from the Ninja TriWars update I was making for my nephew.15
It’s maudlin and over the top, but I enjoyed making it. The thing that killed my desire to work on it was the WebGL running into issues with both the skybox and the lighting. I’d wanted to make a WebGL game because, well, that’s the only thing people play, but I just couldn’t bring myself to export the game for web multiple times to tweak the lighting. I finished the main part of the game on November 10th.
I ended up shelving the game for a few weeks while I worked on the next game. I came back to it about two weeks later (November 26th) and just hit the publish button, deciding not to do a WebGL version. I’ll see where I end up when I have more distance from it, but I’m somewhat disappointed that the WebGL issues ended up sapping the passion that I had for the project.
Playing it again, there were a few parts of it that I thought were great. It’s a shame that the ending soured it for me at the time, but I’ve come around on it since then.
Forest Wernat (New)
As I mentioned in the flitting around section, I became enamored with UFO 50. It really took over a lot of my free time for a couple months. As part of my obsession with it, I started listening to the Eggplant Show, a podcast about making games, which was covering a game in UFO 50 every week.
They had an associated game jam which had the theme of the UFO 50 games they were covering. Simultaneously, the 20 second game jam was back, and it got me wondering if I could make an interesting minimal game that used Planet Zoldath-style lock and key with the 20 second limitation and the UFO 50 palette/style. I think it’s an interesting mechanism, and while I think it is a bit on the easy side, I like how well integrated it is with the UFO 50 style.16
I published this on November 28th with a few small updates later to add some more UFO 50-related functionality. Along with this, I built a lot of the hooks for future games with a UFO 50 style, but ultimately, I didn’t end up utilizing any of it again.17
Attention. (New)
There’s a set of Mega Man fans for whom the perceived difficulty of the games is an obsession. I like most of the Mega Man games well enough, but I find the Wily levels (and the corresponding levels in the spinoff series) to be a slog. A subset of Mega Man fans view not being able to save and come back to the Wily gauntlet as a part of its difficulty.18 And, you know what, I’m glad they like it.
It did get me thinking about difficulty and tedium in games. It’s trivial to make an incredibly difficult game—simply requiring enough actions in a row with quick reactions will beat the most dedicated of gamers. But, I wondered, is it possible to make a difficult game without making it all that difficult mechanically?
Attention. was my exploration of that. I took a common criticism of partial self-driving—that people aren’t suited to paying close attention to things that rarely require their intervention—and put that in as a game mechanic. For an hour, you have to press a button when it appears within about a second of it appearing. If you miss a button, you start over. A second is a long time to be able to react, but is it enough time when your mind starts to wander? That’s something for the player to find out.
I Wanted to Make a Game, But Here I Am. (New)
On December 17th, late in the night past when I make good decisions, I wanted to work on a game, but I didn’t know what game to work on. I’d been trying to make too many big games (despite the games I’d published previously being small). I had little motivation. I decided to do an experiment where I just wrote a stream-of-consciousness and very minimal ink game. I decided I would not change the UI. I would just write, make a low effort itch page, a low effort cover, and then publish.
Then, as I always do, I made the mistake of letting myself sleep on it. The itch page was prepared, but I hadn’t pressed the button. It was still unpublished. In the morning, it didn’t sound as good. I should surely proofread it, I thought. Maybe make some tweaks. Maybe I won’t like it?
And so I let it fall by the wayside. I wouldn’t end up publishing it until March 22nd of 2025, where I was like “yeah, I think I like this enough to publish it.” and then I published it. Moral of the story: don’t think.
In some way, I’m sure this was inspired by flame by hellojed. It helped me remember that games don’t need to be big and that they can be small and personal. I tend to avoid really putting myself and what I’m thinking into games which I think is a weakness of my work.
Did I hit my goals?
No, not this time, again. My goal was four released games, with two of those being games in progress. I released nine things, with one of those being an in progress game (These Endless Plains, codenamed Strange Traveler). Despite that, I’m happy with what I accomplished. Strange Traveler was one of those games that I fully expected to never actually get around to releasing, and it’s such a weird thing that I’m proud of. I like my nothing trilogy, think Matchonix exudes the vibes that I was aiming for, and still like the melancholy of Small Endings.
All in all, I think this was a strong year for my game development efforts.
This Year’s Inspirations
Games and other creative works that were responsible for the games I worked on this year:
- Krazy Kreatures (1990) by Bitmasters inspired Matchonix.
- Tetris (CD-i) (1992) inspired Matchonix.
- The Stop Killing Games initiative inspired THIS IS NOT WORTH PRESERVING.
- Lorelei and the Laser Eyes (2024) by Simogo inspired For The Company.
- The Grand Budapest Hotel (2014), directed by Wes Anderson, inspired For The Company.
- These Truths (2018) by Jill Lepore inspired For The Good.
- Echo Night (1998) by FromSoftware inspired For The Good.
- Error City Tourist (2014) by Strangethink inspired These Endless Plains.
- New Years Eve 7016 from Syzygy Suite from Far Future Tourism (2017) by Connor Sherlock inspired Small Endings.
- Melancholia (2011) by Lars von Trier inspired Small Endings.
- Planet Zoldath from UFO 50 by Mossmouth inspired Forest Wernat.
- The Mega Man Series by Capcom inspired Attention..
- Partially self-driving cars inspired Attention..
- flame by hellojed inspired I Wanted to Make a Game, But Here I Am..
Unfinished Games
I’m doing something slightly different this year: removing games from the list that I have done very little work on and can’t summon any passion for. With how little I think about them and how little work I’ve done on them, there’s no point in reminding me of them.
The two are DaleZ, which was basically just a 2D Zelda tutorial (that did get me some nice tooling), and Boar3D, a Wolf3D-like that I started all the way back in 2019. I hadn’t done much work on it, and it was more as an excuse to learn how they did rendering for that back in the day. Practically, if I did want to make a Wolf3D-like, there’s no real reason not to just do it using modern techniques in Unity. There are also quite a few games from this year that I discussed doing some work on but am not adding to this list because they were < 1% oof the amount of work I think I’d need to do to finish them.
This yearly post is probably the best place to keep track, so here it is (ordered by how likely I perceive me finishing it).
- Pier
- Four Block Drop Gaiden
- Sacrifice Game
- Relics From the Past
- HodgePodge
- Fighter’s Guild
- Isekai X
- Demon Summon
- Ruler
- Robot Life
- Chess
- PushPull
- Menagerie
- LowRezExplorer
- Time Loop
- Space Cards
- Escape Room Professor
-
These are basically never easy wins. ↩︎
-
Although it is a terrible Tetris game. ↩︎
-
I’d also started working on a hacking game which started out with a command line interface and spiraled out into sketching out a shell, a file system, and an operating system. Needless to say, I flamed out on that one fast. ↩︎
-
And this time it worked, mostly, although getting myself to write was like pulling teeth. ↩︎
-
See below. Or above, from here. ↩︎
-
Remember, this was supposed to be an easy win. ↩︎
-
Yes, I know that intentionally trying not to do something is 1. doing something and 2. not good art. I don’t mind. ↩︎
-
In the least scientific form imaginable: you just inherit one of your parents'. ↩︎
-
Although what it’s trying to say is up to you to interpret. ↩︎
-
Which is the day before I released For The Company, for those keeping track. ↩︎
-
Very slowly reading it, on and mostly off, for four years. ↩︎
-
Although I did joke about that meaning it only had 90% of the work left to do. ↩︎
-
That said, I did end up fixing a lot of issues with the base and adding functionality. ↩︎
-
Shamefully, it’s August of the next year right now, and I hadn’t finished that boss which, uh, might not make me the best uncle. Don’t overpromise! ↩︎
-
Don’t worry, I did what he asked for in time, but I wanted to make an additional boss that didn’t end up happening by his birthday. ↩︎
-
I even made terminal codes and a global menu! ↩︎
-
Yet… ↩︎
-
As if you couldn’t just leave it on while you took a break. That’s what I did when I played through Ninja Gaiden this year. ↩︎