Squashing Bugs: How Bug Bounty! Was Made

I recently participated in the 129th Trijam game jam in which I had to make a game in three hours. While I didn’t quite make that mark, I had a lot of fun participating in last week’s jam.

Squashing Bugs: How Bug Bounty! Was Made

Squashing Bugs: How Bug Bounty! Was Made

I recently participated in the 129th Trijam game jam in which I had to make a game in three hours. While I didn’t quite make that mark, I had a lot of fun participating in last week’s jam. The theme was “You have to look for it!”, voted on by the community; it didn’t take long for me to come up with an idea.

Bugs: Developers dread them, and users/players discover them very quickly. While it’s easy to find them, it’s even harder to get rid of them. Making a game about fixing them wouldn’t necessarily be the most entertaining game, but finding them and squashing them like your average household cockroach could be. I knew I had to make a game about it. In my initial plans, I wanted to build the game where you had 15 seconds to find all of the bugs, and clicking on them gave you extra time. The bugs would randomly be placed in the world, sometimes hiding in the editor, and others in other parts of the window.

I got started by making a small texture atlas of pixel art that looks similar to recent versions of Xcode and placing them into the game. To render some text, I grabbed a TextEdit node, which allows for multiple lines of text. What I didn’t realize, however, is that TextEdit is also a built-in code editor, presumably the same as the internal code editor in Godot. Several options for line numbers, gutters, syntax highlighting, etc., exist; I couldn’t believe it.

I restructured the game’s interface a little bit to make the editor blend in more with what I had drawn up, and I set up the bug that would travel around the level. It didn’t take long to establish the game loop with added times, score keeping, and other goodies. After playing around with it for a while, it became clear to me that the game could’ve gone indefinitely. I didn’t think that’d be quite as fun, given that I didn’t include any power ups, time slips, or anything of the sort. I decided to rework some of it so that the player has to score as high as they can in a single minute. Immediately, the game felt much better to play.

After creating some additional sound effects, I ran a small test to see how well it would fare, given that I still had time. I discovered that the initial background color of the text editor was a bit too light, and the bug blended in too well. This wasn’t necessarily a problem for my MacBook with the P3 color gamut, but could present problems on other monitors. I scaled it down a bit to a darker tone and changed the random location code so that it would spawn the bug toward the lighter parts of the background so that the player could see it. Additionally, I made a small “tutorial” that caused the timer to wait until the player clicked the first bug in a visible area so that they knew what to look for.

After these small additions, I made some music in GarageBand with YCMK’s Magical 8bit Plug 2. I wanted to combine the chiptune sounds with a lo-fi-esque beat to provide music that would be similar to what I listen to when I work (and others, likely). As for the vocal in the beginning, I picked a voice memo from my former roommate going “ZoooOoooOoooOoop!”. After exporting and putting it into the game, I uploaded it to Itch and submitted.

It’s been a few days since then, and I’d like to note some things:

  • First, I decided to make a version native to Ubuntu Touch (which now has builds for arm64) on the OpenStore. It’s a lot more fun on a touch device, and I’m sure Ubuntu Touch users will enjoy another game in their library.
  • Second, I noticed some common threads from the feedback I received:
    • Many had though the bugs were errors in the code, not realizing that, in fact, they were to squish actual bugs; I find it kind of funny, considering that typical users wouldn’t be able to identify any. Additionally, the code isn’t a real language (though inspired by Swift). I hypothesize that the tutorial’s lack of clarity was the issue, and I will have to fix this in a later update.
    • Clicking on the bugs to squash them wasn’t quite satisfying, despite the audio cues; many wanted particle effects displayed. This should be a relatively easy addition to the game, provided that it doesn’t slow anything down.
    • As I had noted earlier, I didn’t add any power ups or other gameplay elements because I wanted to keep the game simple. To some, this was a bit “controversial” because it felt lacking. I’m sure the game would feel more fun with these sorts of things added, but I think there’s something to be said for the simplicity.
  • Finally, while I could publish the game to iOS and Android, I have opted not to since I believe this game would be banned on the App Store, and it’d be more effort than it’s worth.

It’s been fun making this, and I’m excited to make more.