Return to Posts

Creating a 2D Timed Action Game in 1 Week

Blog Image

Context

PRESSURE PANIC! was my entry into the second Oink Jam. We were given an option of two themes to work with: “Under Pressure” and “Imposter”. I went with the former. The Oink Jam runs over the course of two weeks, but my college finals ran over the first week, so I was limited to just 1 week of actual focus. Due to my time constraints, I considered a few simple options when deciding where to go:

  • A puzzle game using building steam that acts as both a resource and a hazard when bursting out of pipes
  • A train-management game where you must conduct a train while disasters rain around. This might have also come with an imposter twist to incorporate both themes
  • An exploration game based around traversing through a tight, dark cave; upgrading a deep-sea submarine to reach the treasure that lies at the end

I had originally planned on going with the first option. However, I’ve taken a shot at a puzzle game for many previous jams, and never seem to stick to it, so I wanted to try something new. The second option was where I ultimately want to go, at least thematically. The Legend of Zelda: Spirit Tracks is one of my favorite games of all time, and I eventually want to make a spiritual successor when I gain a more stable foundation. This option seemed appealing, but ultimately I wasn’t as hooked on it as the third option.

Screenshot of the caves in PRESSURE PANIC!

The exploration game with a heavy focus on upgrades was heavily inspired by an old flash game: Johnny Upgrade. Back in middle school where I spent my time playing whatever flash games appeared on Coolmath Games, Johnny Upgrade had a very simple game loop, and was always fun to come back to. If you are unfamiliar with the game, I would suggest checking it out; I wouldn’t imagine it would take more than half an hour. Essentially, you run around a pre-built map collecting coins that you can then use to upgrade your character (jump height, move speed, time before death, etc.). It had a constantly ticking timer during gameplay, limiting the amount of time you could spend per run before restarting.

Screenshot of the starting area in Johnny Upgrade

Here’s what I actually ended up designing: For simplicity (and to be a bit different to Johnny Upgrade’s side-scroller gameplay), PRESSURE PANIC! uses a top-down view with tank-style controls. In order to tie in the theme of “Under Pressure” a bit more, I decided to go with a deep-sea submarine. The cave would be a large, yet constricting place with lots of paths to explore, and a few fun abilities to unlock. The final goal is to reach the bottom and deepest parts of the cave system.

Core Design

Similarly to Johnny Upgrade, PRESSURE PANIC! uses a timer (flavored as an oxygen capacity) to limit how long the player has to explore the cave, resetting at the top at the start of each run. Oxygen capacity is one of many different abilities that you can upgrade throughout the game. There is also movement speed, turn speed, health, a currency multiplier, and a few upgrades for each of the unlockable abilities.

Screenshot of the upgrade system in PRESSURE PANIC!

The cave system was fun to plan out. All of my previous level design experience was typically for more open, casual experiences. The most prominent example is the overworld for a large-scale RPG I was working on for a few years.

Screenshot of an area from Folds Among Stars

The final cave system is fairly small, but I think gives a good sense of exploration. I’ve had a few people test out the game, and they all seemed to enjoy the experience of finding their way through the branching pathways. One thing I like to do is give myself a rough idea of how I’m going to implement an area. For this game, it was a simple doodle in my notes app:

Screenshot of the original map drawing

Overall, the final cave actually stuck to this design pretty well. I’ll get into more detail about some of the missing components later on, but the general structure remains largely the same (although the final game doesn’t really have any clean rectangles, instead using natural cave-like walls).

The two main abilities you can unlock are the Dash and the Cannon. These are ultimately more for ease of exploration than anything else, however the cannon is required to reach the end. I would have liked to have more use cases for each ability, but I’m ultimately content with how they fit into the main game loop. These abilities both have two upgrades: dash power and capacity, and cannon damage and capacity.

Screenshot of the mockup for the game

For the art side of things, I wanted to go with a style that’s a bit different than I’m used to. For this game, I wanted to focus on a more casual friendly style with thick double-width pixel art outlines and relatively low color count for most objects. Overall, I’m very happy with this decision as it allowed me to put less time into grinding through complex art assets and more time into making sure I have a fun concept to work with. Since I’m doing all the art, coding, and designing myself, I need to make sure I’m not getting tunnel vision on any single aspect of game development. This has been a hard lesson to learn, but one I’m getting more and more familiar with.

What Went Well

I ended up with a game I’m very happy with, and a final product that, while I could add more, felt complete the way it was. I’ve been developing games and creating art for around 6 years now, but I’m still not used to sound design and music production. I’ve been attempting to learn composing, but it’s proved to be a very difficult balancing act to learn while working on upkeep on the rest of my skills. For this reason, I used royalty-free sources:

Because I had such a large variety of sound effects to pull from, I was able to make an audio experience that I was happy with. This took a lot of time just scanning through assets, thinking about how they could be transformed, and where they could be used. It helped that most of my sound effects would be put through a heavy “underwater” filter (low pass + reverb). My favorite sound design choice was for the sea mine explosions. There wasn’t a clean explosion sound effect in the libraries I had, but there was a balloon pop. It turns out that under this underwater filter, plus adding bubble sound and lowering the pitch, transformed this high-pitched pop into a pretty deep and meaningful explosion. It’s not perfect, but it taught me a lot about sound design and augmentation.

Screenshot of the dash upgrade in PRESSURE PANIC!

I think the game has a very cohesive art direction, with everything feeling like a part of the same world. As mentioned before, this jam ran over finals week at my college, so I was limited in terms of time. However, because many participants were in the same situation, the jam was actually extended for another day. This extra time gave me time for some much-needed visual polish:

  • Implemented Godot’s lighting system to make the deep caves more immersive and interesting
  • Added many different floor decorations to make the cave feel full of mystery
  • Completely overhauled the Itch page to remove some generic/basic assets. Everything on the page is now cave-related and relates much closer to the vibe of the game

What Went Wrong

Ultimately, I don’t think much went wrong apart from scope being cut. I’ve had a large issue with scope creep, so for this game I decided to keep the scope small:

  • 1 decently sized cave map to explore
  • Simple movement with a dash and cannon firing
  • 3 entities: stationary sea mines, patrolling pufferfish, and chasing killer fish
  • A current system that required the dash to push through
  • Full sound design and a pre-made music track

The only things from this list that didn’t make it were the pufferfish, killer fish, and the currents. This wasn’t an explicit design choice, but rather a natural cut-off point. With 1 day remaining, I had all of the key mechanics, the sea mine, and the full map planned out. However, the game was missing some necessary juice to make it fun to play. I made the decision to cut the extra content which would require extra coding, art assets for the entities, and design reworks for the already existing map. I believe that I could have gotten these elements implemented, but PRESSURE PANIC! would have actually been a worse game because of it. It would have given me less polish time, and less time to work on the final presentation on Itch.

Key Takeaway

Typically, I struggle with short-term game projects, especially during game jams. I like to make things perfect, and I like to put my best foot forward. However, these two things do not need to be hand-in-hand, and my output has been struggling because I have historically assumed the opposite. According to Itch, I have entered 38 game jams, and have submitted entries for just 3 of them. PRESSURE PANIC! proved to me that I can still make good games in a time crunch, and that these games don’t need to be perfect. “Perfect is the enemy of good” is something I’ve heard countless times, and something I never really saw in myself until recently. This game jam, and the completion of it, has served as a good reflection point for myself and my game development journey. I am truly happy with this game, and I am proud to talk about it!

If you would like to check it out for yourself, visit the itch page below: