2026-06-23·2 min read

Perpetūra, part 1: no sprites, no stat screens

field-notesperpeturawriting

Perpetūra is an interactive novel. Three women, three centuries, and a feeling none of them can name. It’s not a visual novel — no sprites, no CGs, no stat screens. Words, the choices between them, and the space underneath.

The design bet is that the machinery should be invisible. There is a full routing engine under every story: your choices accumulate silently toward one of several endings, and the game never shows you a meter. You don’t optimize a relationship bar. You read, you choose like a person, and the story leans the way you’ve been leaning. After you finish a story, a flowchart shows the path you actually took, which is usually the moment people realize how much was moving under the floor.

There’s also a codex that fills in as you read. Some entries update after reveals, and some of the details don’t quite add up on first reading. That’s deliberate, and it’s all I’ll say about it here. More stories are on their way, and I’d rather you meet them unspoiled.

Perpetūra’s title screen on a phone: the anthology orrery mark over a dark starfield

The title screen. The store copy says the rest: no sprites, no CGs, no stat screens.

The release train

The first commit was May 27. Hyunjae, the first story, shipped with v1.0 in early June, then went through eleven patch releases in one week — real ones, each with a public devlog: an update-reliability fix in the service worker, softer transition animations, an over-explicit emotional beat trimmed, a supporting character given her own stake. Reine (Belle Époque Paris, 1893) shipped June 16 as v1.2.0. Liuyan followed, and v1.3.0 rebuilt the whole menu around a clockwork orrery motif — which regular readers of this site will recognize as a shared obsession.

It runs as a static site: plain HTML and vanilla JS, no framework, no build step for the game itself. Netlify serves the canonical version; itch.io and GameJolt get zip builds from a release script. Cloud saves are opt-in through Google sign-in, and player feedback flows from an in-game form into a Trello board, where a triage skill investigates each card, fixes what’s real, and comments the commit hash back.

One infrastructure detail I’m fond of: the public build is produced by an allowlist script. It ships only what the site needs, which keeps the story bible, the outlines, and everything else that could spoil you off the server entirely. The anti-spoiler policy is enforced at build time.

Parts 2 and 3 are about the writing system: the content bible, and how I keep a machine collaborator from sanding my voice off.