Eternal Passage

Project began: January 2019

Eternal Passage is a surrealist roguelike platformer about anxiety. Specifically, the anxiety about the passage of time. All elements I designed were meant to reinforce that theme.

The game was developed by myself and Ted "Rocky" Pope. As the lead designer, my responsibilities include:

  • Writing the design document
  • Designing the health system
  • Designing the level structure
  • Designing item upgrades
  • Designing level objects
  • Outlining and developing the map generation behavior
  • Developing platformer gameplay and core loop
  • Implementing item upgrades and level objects
  • Mapping out and programming enemy behavior
  • Level design
  • Writing the game's music

The game is programmed with scalability in mind. When building the architecture of the game, I built it so that anyone working on the game could simply add content to it without any need for additional coding on my part.

This is even true for content which it is my responsibility to make, such as levels and items. All one needs to do to add an item into the game is code its effect and then add its name to the appropriate data structure. All one needs to do to add a level is to follow the proper naming level conventions when saving it.

Level Structure

Each level is broken up into a series of "cells." The level shape is built using an algorithm that places empty cells next to each other, and then those cells fill themselves with pre-designed rooms.

An early gif of level creation. Dots note special cells.
The odd shapes of the level are generated due to the algorithm I designed which stores each cell in an array and flips a coin whether it will place a new cell next to the previously placed cell or a random cell in the list. Then it randomly decides which side to place the new cell, favoring horizontal placement.

Once all cells are placed, the location of special cells are determined. These are the starting room, the exit room, the item room, the key room, and the shop. These cells load in the same way every level so as to be recognizable.

Next each cell determines which of its sides are connected to other cells. This determines which group of saved designs they can load from. For example, a cell connected to others on its left and upper sides will load a different layout from a cell connected on all four sides.

From there, it's simply a matter of designing different permutations of cells, making sure the player can access a cell from any side given their 3-tile jump arc.


The music is based on pieces by Erik Satie, with the intention of taking the slow, peaceful surrealist music and turning it into something bouncy and frantic. The end result is surrealist in an entirely different way.