Sam Gilson

Long Time Comin'

Game

Long Time Comin' is a third-person bullet-hell roguelike that runs in a desktop browser. These are the decisions that shaped it.

  • Every rule lives in one place. The rules run in a Rust core in fixed-point integer maths, compiled to WebAssembly. The page draws what the core returns and holds no numbers of its own, so a run plays the same on every machine and every rule can be tested without a browser.
  • Attacks are data. Each enemy attack is a list of volleys in a data file: its shape, its count, how long the orbs hang still before they fly, and how they curl or bounce. A new enemy is mostly new data, and the in-game Codex describes each attack from the same numbers the game runs on.
  • Death moves the story on. Each death reads the next count of your indictment and adds years to your sentence, and the Clemency the run earned buys upgrades for the next.
  • Each zone changes how you move or aim. The city has height to climb. On the ice, orbs hold still in formations before they fly. In the house, enemies take cover and flank you. On the mountain, creatures move by their own gaits. Inside the Idiot God, falling off a floor brings you down onto it again from above, and doorways lead somewhere else. The god is put to sleep with a rhythm game played while dodging.
  • The ending is a harder game. Putting the god to sleep opens a last mission: zones one to four in one run, with larger waves and remixed patterns, ending at home against my cat, Chumbles. He grows to three times his size and moves differently in each of his five health bars.
  • Each behaviour's test is shown to fail. A script breaks every tested behaviour on purpose and checks that its test fails, so a passing test is known to cover something.
  • One drawing style. The menus and story pictures are drawn in TikZ, and the 3D scene outlines every shape in the same ink so the two match.

Checked in Chromium, Firefox and WebKit.

Open the project · Source code

All tools and games