HapyFile development process and post-mortem


As soon as the jam started I had an initial idea of what I wanted to do - a platformer without jumping. I'd sort-of done something like this in my first ever jam game, Zero Grab-Kitty for SAGDC X's "critical omission" theme (which was a 'platformer' with no gravity). After a couple minutes of fiddling around I ended up with a platformer with no direct player control:

The initial concept

The "player" (or file) moved from left to right on its own, bumping and jumping whenever the actual player places objects in the file's path. I've never actually played Mario Maker but it kind of felt to me like what an autonomous version of it would be like - or a version of Lemmings that focused on just a single unit so far. I had two elements that the player could place - a jump pad which caused the file to jump, and a block which served as both a platform and a wall. Each element was given a short "cooldown" period after being touched to prevent the player from simply dragging a platform with the file on it to the end.

I had planned to add in a kind of 'rope bridge' the player could put down between windows but ran out of time, and couldn't quite think of a way to have it fit thematically (maybe some kind of Virus Scanner app that "plugs into" other apps).


I'd made a couple of games that revolved around interacting with a fake operating system before - both My Baby PC, a haunted 80s-style PC (for another 48 hour gamejam), and b00tl3g kr3w, a game about 90s cracking groups on IRC and bootleg roms. The workflow for this style of game was familiar, so it helped speed up the workflow and gave me more time to focus on design. Mostly though I liked the idea of someone's desktop being a platformer level, like those desktop pets or "eSheep" you could download years ago.

The first art pass

Initial Design

I haven't had a huge amount of success designing puzzle games before. For me it's much easier to design action-heavy games, amp up the gamefeel, add in some visual juice and design mechanics or nuances around those mechanics. Even HapyFile though has some tight timing/reflex reliant puzzles - but I had a few things I considered during the level design process to make puzzles interesting. Here was my approach:

  1. Introduce a concept in a low-pressure environment. The player is given a single obstacle to overcome with the spring.
  2. Revisit the same scenario, and use it to introduce a new concept. In this level, the player has to learn to move the spring once it's already been used and cannot progress without learning it. Reusing the same level also means more time can be spent polishing later on.
  3. Build on the skill - the next step is having the player incorporate their newly learned skill in combination with other skills.
  4. Let the player demonstrate mastery of their skill. On one of the later levels, the player has to reach a height by using only two springs, moving each one under the file as they go along.

Teaching each skill individually and letting the player get comfortable with it ensures a smooth difficulty curve. This also has an added bonus of letting the player "speedrun" some of the earlier levels if they replay them. Once the player has mastered "double jumping" using the spring platforms, they can do the same thing, skipping the intended solution and giving the player a sense of satisfaction and rewarding them for their mastery.

The first level which introduces a single mechanic, and a second level which expands it

Expanding Design

After making a few levels the game still felt a bit shallow and short, and it didn't have as much variety as I would have liked. The OS theme made me think of the limited amount of RAM/resources computers in the 90s had and that lead to a new mechanic in the game - the resources window.

By letting the player access the exit only when a certain number of windows are open, I could have the player revisit earlier levels with this new mechanic in place, adding more content with a smoothe difficulty curve. It also made use of an existing, but as of yet unused, mechanic. The player could open and close windows but had no need to close a window unless it got stuck. It was a great way to both fix the length of the game, reduce boredom by introducing new mechanics and incorporate an existing mechanic in an interesting way.


I've always love the Windows 95 and Windows XP startup tones - the synthesised bells have this real mid-90s charm to them (especially compared to the more etheral-sounding Windows 98 startup tone). I ended up with a IV-V-I chord progression using a synth bell as the startup tone. The IV-V-I resolution feels musically like "home", especially in a common key like C Major. The I chord was played as an inversion though to keep it from sounding too high up or too low.

The game's main theme was similarly a simple I-IV-I-V chord progression in C Major (broken up with a short chorus) using a synth that I thought tried to capture the feel of a "computer business ad". A simple melody was added using the bells, and one very basic drum beat later I had a minute long loop which took maybe an hour or so to make. The 8 bar chorus section as well as a little bit of variation in the melody stops the audio loop from being too repetitive, as well as little bit of variation in the instrumentation.

Once the music and some basic sound effects (for opening/closing windows and mouse clicks) were added to the game I gave it a test run but it still felt empty - giving the file little footstep noises helped but it didn't quite have enough character. I added in a gentle "splat" kind of sound to give it a bit more flavour.


I've started trying to get into the habit of cutting up trailers for my jam games - it's good practice for editing trailers for any bigger or commercial games you might wanna do down the line. I'm far from an expert on editing trailers so here's few dot points about my approach to this game's trailer:

  • Tell a story or something interesting about how the in-game mechanics work. In the first 8 seconds alone, you can see how the file moves around, how the player interacts with the game world and how problems might be solved by the player. It might seem like a stretch but this isn't *just* about demonstrating gameplay - it shows the little file coming up against a problem, and then overcoming it.
  • Keep it short - a game with 10-11 levels and a few minutes of gameplay probably doesn't need a cinematic 3 minute trailer. I cut the game's music down from 1min to about 30s for a 45 second trailer and even I think that much is probably (for this game) a tad too long! There's about 10-15 seconds of footage that could have been removed completely and the trailer wouldn't have suffered.

Obviously different games are going to need different trailers to suit their specific needs, but I think every game can benefit from a trailer that tries to show off the "flavour" of the game, as opposed to feature list dot points of each "ingredient"

Anyway this post ended up being much bigger than I thought it would be but I appreciate you reading to the end - hopefully there was something interesting or useful in there!

Get HapyFile

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.