finds.dev← search

// the find

munificent/hauberk

★ 2,160 · Dart · NOASSERTION · updated Feb 2026

A web-based roguelike written in Dart.

Hauberk is a browser-based roguelike written in Dart by Bob Nystrom (author of Crafting Interpreters). It's a serious, feature-complete game engine with procedural dungeon generation, a full combat system, items, spells, and monster AI — not a tutorial project. Worth reading if you're interested in game architecture or Dart at scale.

The engine/content split is genuinely well-designed: `lib/src/engine/` is pure game logic with no rendering concerns, and `lib/src/content/` is the data layer on top of it — easy to follow and fork. The dungeon generation code is unusually thoughtful, with multiple distinct architectural styles (cavern, catacomb, keep, pit) each in their own file. The `note/` directory is a goldmine — years of design notes showing real tradeoffs in roguelike mechanics, updated as recently as early 2026. The debug tooling under `web/debug/` lets you visualize dungeon generation, item distributions, and combat stats directly in the browser, which is rare in hobby game projects.

The README says flat out that PRs are not being taken, so you're forking it, not contributing — the project is a personal sandbox. Save persistence is browser localStorage only; there's no export or cross-device story. The test suite is thin: a handful of unit tests for formatting and nouns, a scenario runner, but no coverage of the dungeon generator or combat math where bugs would actually matter. Dart-in-browser via `dart2js` is a narrower target than it once was — the tooling has shifted hard toward Flutter, and `make serve` assumes a dev workflow that predates the current Dart SDK defaults.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →