Skip to content

Example games

The repository ships fourteen complete games under docs/examples/games/. Each was written as a dogfood project against an earlier Lute release by an agent playing a different kind of writer, then migrated to the current language. Each is its own project — manifest, schemas, scenes, lore, quests, plugins, tests/ and plays/ — with a README that names the features it exercises, the file to look at for each, and the commands to run it.

CI checks every game with lute check --project <DIR> --deny-warnings and runs its tests and plays, so the games stay clean as the language moves. Where a game means something a warning would otherwise question — a permanent ending, a latching spentBy, a role name two cast entries share — it says so in the spelling Lute provides for that intent, never with a suppression.

Where to start: tea-hollin is the smallest, written the way the getting-started pages teach. Coming from Ink or Yarn, read ledger beside Coming from Ink or Yarn. monster-league shows a project at scale.

GameGenreWhat it shows
The Ashen Stairroguelike hub (Hades-like)the run boundary and prev.run.*, engine-owned state and reserved relations, reward kinds, a season, per-NPC send-offs with for=
The Drowned Crownroguelike (Hades-like)run and user tiers, a permanent ending (terminal: { when, persists: true }), beat ladders on the hub visit, occasion payloads
Ember Roadparty RPG chaptercompanion approval and faction reputation, a day clock of nights on the road, a ::check dice bridge, battle payloads
Harbor Dayslive-ops life sima finite clock with a week, a festival season, spend periods, spentBy beside once:, directive effects, per-villager birthdays
Hollow Wardsurvival horror / escaperules as the door graph with raisedWhen:, blocking bridges, entries, terminal fates, a large test suite
Lamplightdetective mystery / time loopfacts and stratified Datalog rules, user-tier evidence surviving each loop, a casebook series:, quests from sub-quests
Lantern Academyotome / dating sim with NG+route locks as rules, raiseAtStart: true, user-tier cleared facts across terms, date and exam bridges
The Lighthouse Keeper’s Ledgerinteractive fiction (Ink port)Ink mapped to Lute: a hub with <return>, visit counters, terminal: as -> END; the Ink source beside it
Skerry Rockdeduction mystery (Obra Dinn-like)stratified rules with excludes:, conclusions derived rather than asserted, a clock with raiseAtStart, an inquest chapter chain
Monster Leaguecreature-collector RPGscale: five writers, per-area schemas, 18 occasions, 151 species as facts, a template used ~160 times, sharedName: true
Seven Days in Marrow Bayday-clock visual noveldeadlines as clock positions, a derived timetable relation, newRun and prev.run.*, three terminal endings
Starfalllive-service gacha (story layer)three seasons with reruns, the content calendar as defs, rarity sub-kinds, summon payloads, share=
Summer Stationvisual novel / dating sim on a clockschedules as rules, a select: sequence routine plus events, a storm season, sub-kinds with per: state
Tea at Hollin Streetcozy mysterythe smallest: one chapter chain, a branch and a hub, a one-day clock, a quest with a deadline

Run one from a checkout of the repository:

Terminal window
lute check --project docs/examples/games/tea-hollin --deny-warnings
lute test --project docs/examples/games/tea-hollin
lute play --project docs/examples/games/tea-hollin --script docs/examples/games/tea-hollin/plays/magpie.play.yaml