Procedurally titled roguelike where spells are s-expressions, written in ~6900 lines of let-go, a Clojure dialect on a Go bytecode VM.
Key Takeaways
Every run generates a unique title (e.g. “Gazebos of Mounting Dread”), quest, and rune-to-symbol mappings; spells are literal Lisp s-expressions.
Built on let-go, a custom Clojure-like language running on a Go bytecode VM with persistent data structures and zero external dependencies.
Full world state is recomputed each tick using persistent data structures; startup time is 6ms; runs natively or in the browser via WASM.
Fire propagation, creature pushing, slime splitting, and troll regeneration are implemented as emergent dungeon physics, not scripted events.
Power curve is intentionally inverted: early game is survival-critical, late game is described as “applied theology with inadequate safety margins.”
Hacker News Comment Review
The author confirmed the Lisp-in-Lisp architecture is intentional: let-go powers both the engine and the in-game magic system, making the language itself the gameplay mechanic.
Safari on iOS 26.4 hits a cross-origin isolation redirect loop; the fix requires deploying coi-serviceworker.js alongside the WASM build, a known SharedArrayBuffer requirement.
A attribution dispute surfaced around Brogue: commenters noted the visual style and animations appear directly copied rather than loosely inspired, without credit given.
Notable Comments
@seabass-labrax: A real crash surfaced mid-run: cannot subtract nil and let-go.lang.Int triggered inside the AI distance calculation, exposed by a flaming spear kill.