Daniel D. Johnson

TIME || ƎMIT: A game for js13k

Click here to view.

Story time: So a few years ago, after playing Portal and loving it, and after making my iOS word game Wordchemy, I was kind of in a game-design zone. I brainstormed a ton of ideas: from memory games, to arcade-style games, to physics-based puzzle games, and many more. One idea, however, stuck with me. The basic idea was this: what if you could go backwards in time? Not as in traditional time travel, where you appear in the past, but actually backwards? Everything else would seem to be moving in reverse: things would fall up, people would be walking backwards, and you might even see your (relative) past self undoing your actions!

I ended up never making most of those games, but that time-travel idea stuck. I started designing levels for it, and actually started to build it once, but I never got it to a playable state. But every once and a while, I'd start thinking about it again. I decided that one of these days I was going to make it.

This year, I discovered js13k, a Javascript game-design competition with a strict 13KB game size limit. At about the same time, I found myself with two weeks between my internship at Pure Storage and my sophomore year at Harvey Mudd. And even more fortuitous: the theme of js13k this year was "reversed".

Finally, after years of incubation in my brain, the game that I wanted to play exists! And you can play it here! (Edit: The audio no longer works on js13k due to changes in the web audio API permissions, but I've uploaded a fixed version here instead.)

The basic "plot", if you can even call it one, is that you are a visitor to an abandoned research facility operated by Causality Laboratories, and you have one of their "Time-Reversal Devices". It features 13 different puzzles, and is pretty difficult because of its non-intuitive mechanics (for example, one puzzle asks you to put the same box on two different buttons by bringing it backward in time). It draws heavily from the Portal franchise for inspiration, and it shares the focus on understanding a tricky mechanic.

Another thing I'm quite proud of is that the game has procedurally-generated audio! I used the Web Audio API and basically generated sound by summing sine waves based on a pentatonic scale. This had two advantages: it brought the size way down, and it also meant that I could play the audio both forward and in reverse.

I hope you like it!