Introduction #
Hello friends! I’m so excited to be writing my first dev log! I’ve created 1-2 video diaries about my progress or thoughts on development stuff in the past, but committing to a consistent practice of documenting my progress and opinions is something I’m looking forward to!
If there’s something that you’d like to see in these dev logs that I don’t cover today, please let me know in the comments! I want to form these in a way that is helpful to those reading it as well.
SPEEDCAT Progress in March #
March has been a very productive time for SPEEDCAT! After taking a break in January to work on my first game jam, I felt a renewed passion for working on SPEEDCAT. That new passion, coupled with the accountability of streaming on Twitch (more on that later), has rocketed progress along. In March we:
- finished the rough design of all the remaining rooms!
- fixed and polished existing rooms
- removed soft-locks and improved player progression
- added a new mode, “Timers Off”, which turns off the blocks that automatically switch on and off in order to make it easier for players who aren’t as familiar with video games
- added the ability for there to be multiple pairs of teleporters in the same room

Seeing so much progress in one month after years of mostly ignoring SPEEDCAT has been wonderful. I truly think that having an online community holding me accountable to continue developing SPEEDCAT has helped me immensely in that regard! Speaking of that online community…
Streaming on Twitch #
I now stream on Twitch! In addition to putting out YouTube content now, I stream on Tuesdays 3 pm ET and Fridays 8 am ET. Tuesdays are the days that we tackle SPEEDCAT together (Fridays are for playing a cozy game), and I always look forward to these sessions. It is just so much fun to chat with people, discuss the level design together, and I’m often using chat’s suggestions in the level design. That cooperative process has been an incredible joy and brought fresh perspectives to the game!
It has always been a dream of mine, ever since I was little, to be doing online content creation like this. I feel so thankful to be in a place in my life where I have the time and hardware to be able to handle streaming! More than anything, I want to create and share experiences with other people that make them feel happy, cozy, and accepted. I pursue that with game design of course, but streaming feels to me like the ultimate way to create those environments.
I am also a hermit working from home full-time, so the online community has meant so much more to me in these past 2 years than before. I’ve met some incredible people that have mentored me, encouraged me, and cheered me on as I try to accomplish new things! And I’m so thankful for each of those new friends in my life, whether or not I’ve physically met them.
It feels wild to me that I’ve only been streaming for one month because it feels like it has been a lot longer! However, I’m excited to see what the future holds for my channel and for my game development.
My Thoughts On Level Design #
I also wanted to have a more “technical” section for each of these dev logs where I can discuss my thoughts on some aspects of game design. I want to preface this section by saying that I have absolutely zero formal training in game-engine architecture or game design, these are just my personal discoveries that I’ve picked up along the way. So take all of this with a grain of salt, and if you’d like to contribute your own thoughts / disagree with mine, I’d love to read your comments below!
For March I wanted to talk about level design - especially in the context of a 2D platformer like SPEEDCAT. It’s easy to see why this topic is on my mind, considering we’ve made a huge leap forward in the number of new rooms we’ve added to the game.
Intro #
I’m not totally sure what the official words are for these topics, so I’ve created my own: “micro-” and “macro-progression”. What I mean by these two terms is that micro-progression refers to a single room or screen; how does the player move around this particular room, and what sorts of unique challenges will they face when traversing it?
I understand macro-progression to refer to how the player will experience the game as a whole; which screens are connected, how they relate to one another, and the expected traversal of the levels. These two concepts are both important and somewhat interdependent, but I’ll discuss them separately for now.
Micro-progression #
Micro-progression first. One of the very first things I ask myself when designing a new room in SPEEDCAT is: where are the doors in this room? Because of the way I’ve designed the game, there can be as little as one or as many as four entrances to each room. I like to know where each door should exist BEFORE starting to design a new level.
This is important to me because it helps decide what puzzles are viable and which ones should be skipped. If a room has two entrances on the top and bottom sides of the room, it is unlikely that a primarily horizontal puzzle is appropriate for the room.

Another consideration I have when creating a single level is the target audience of the game. Just because a particular movement is possible doesn’t mean that it is appropriate for the game. For SPEEDCAT, I’m targeting an audience that may not be very familiar with video games. I want this game to be as approachable as possible, while still giving room for challenge and mastery by more experienced players. I accomplish this with the timer; speed grants a challenge to those seeking it, but players who just want to complete the game can ignore the in-game timer.
When I’m designing a new room, I often create levels that are appropriate for my own skill level. However, since I’ve now spent a lot of time creating SPEEDCAT, I am quite good at the game. I have to constantly remind myself of this, and when I create mechanical puzzles (i.e. challenges to the player’s dexterity / reactions, as opposed to logical puzzles), I often rework the jumps and other movement to be appropriate for those players.

Just because a jump is possible doesn’t mean that it is good game design to include. I recently had a playtester struggle with a particularly tight jump timing, and the frustration of missing the jump over and over could have made that particular room especially exhausting.
We have to keep in mind that our players are human. Every time the player “fails” (be it missing a jump, dying on spikes, etc), there is a cost associated with that failure. The player’s frustration increases slightly and the hope of completing the level could diminish. Too much failure and frustration can lead to a player putting down the game and walking away indefinitely.
Obviously, some challenge is necessary in order to create a fun experience! If the game were entirely easy, then there would be no satisfaction in completing it. Thus, as a game designer, I have to be very careful how I approach every level, with the appropriate amount of challenge while making the “retry” process as smooth as possible. By easing the transition from failure to “trying again”, we can give the player a more pleasurable experience.
Macro-progression #
Let’s keep that in mind while we transition to discussing macro-progression. One of the most important things for me to keep in mind is the context of a particular level while I’m designing it. What I mean by this is that I look around at the other rooms that are nearby; their entrances and exits, their relative challenge to the player, and more. If a neighboring room was mechanically challenging, maybe I’ll make the new room more logically challenging. That contextual awareness is what helps me decide a room’s difficulty level and the types of challenges within.

One of my recent a-ha! moments came from watching my wife play SPEEDCAT. She had just completed one particularly difficult room, and walked into the next room, then exclaimed, “Oh good! This looks easier.”
We all need breaks. A constant barrage of challenges is both exhausting to create and design, and I would consider it bad game design. Having entire levels where the challenge is just to walk from one side to the other is necessary, in my opinion, because it gives the player the small feeling of progression without risking too much of their patience or frustration.
Another way we can keep the player engaged and not frustrated is by introducing new game mechanics through forced interactions. In SPEEDCAT, I introduce springs by creating an impossible jump in the first room. In room 3, I introduce crates by creating a situation where you must push the block to progress. This helps the player associate the crate sprite with a moveable object.
Introducing new game mechanics every level can exhaust the player. Keeping in mind all of the different interactions in the game can take a toll on their mental energy. For SPEEDCAT, I’ve tried to greatly restrict the game mechanics that exist within the game. Stretching the creative limits of the levers, blocks, and teleporters in my game gives the player a sense of familiarity with the mechanics while allowing them to experience the pleasure of realizing the solution to a puzzle more frequently.

The final aspect of macro-progression that I keep in mind when designing SPEEDCAT actually comes from the movie Inception. In the movie, the dream architects need to make a small space seem large. They do this through non-Euclidean architecture and mazes. While SPEEDCAT can’t handle non-Euclidean structures, I do take the concept of mazes and apply it to the game!
The game would feel a little dull, and likely short, if I had the player progress through each room linearly, 1-32. Instead, I try to create diverging paths, loops, and branches in order to increase player engagement with the game. Not only does this provide a more interesting game structure, it also helps with game replayability - people who wish to play again for a faster time might consider a new route through the levels. Providing players the flexibility to choose their own challenges, come back to rooms at a later time, and route their way through the game themselves gives them a lot of autonomy, which I’m hoping makes SPEEDCAT a better experience.
Conclusion #
Thank you so much for reading this far! If you can spare the time, your feedback on the format and content of this dev log would be greatly appreciated so I can improve in the future. Thank you SO much for supporting my work, and I wish you the best for April!