Mistmarch — a walled village on a square of revealed ground, mist and dark pines all around, a camp's fires in the distance

Portfolio — real-time strategy In development

MISTMARCH

a castle-economy RTS where every run is a fresh map you reveal tile by tile

In development — playable prototype, solo project since July 2026. Real-time strategy · Castle economy · Roguelike runs · Godot 4 / C# · PC (Windows). All images are from a development build; nothing on this page is from a public release.

What it is

Mistmarch is a real-time strategy game in the Stronghold lineage — a keep, workers, production chains, taxes and mood — set inside a roguelike run. Each run opens on one square of a 5×5 map. You reveal neighbours one by one, and what you uncover decides your next twenty minutes: open land to farm, a bandit camp to break, or worse. Unrevealed ground is fog in the literal sense — nothing paths into it, nothing builds on it. Today the economy, reveal grid, enemy camps, recruitment and a complete save-and-resume door are built and played. The deterministic simulation runs headless at twenty ticks a second, and more than a thousand tests guard it. Combat encounters are the next milestone.

How the game is built

  1. 01

    Content is data

    Tiles, biomes, buildings, units and recipes are JSON packs validated by a schema check; a content error names its file and field on screen instead of loading a broken world.

  2. 02

    The sim runs blind

    A deterministic tick simulation with no engine dependency — twenty ticks a second, headless — so the whole game can be proven without a window open.

  3. 03

    Presentation only draws

    The Godot scene reads the sim and never writes game state; the camera, the fog and the HUD are consumers of one truth.

  4. 04

    Units are rendered, not modelled live

    Rigged 3D units with animation clips are rendered to sprite sheets by a pipeline that proves every clip is alive before it ships; pose sharing keeps 400 units on screen above 140 fps.

  5. 05

    Every proof is broken on purpose

    Each test is sabotaged at least once to show it can go red; a smoke harness boots the real game, pushes real keys and reads the result; CI judges every pushed commit.

Mistmarch started from a simple observation: the castle-economy RTS is a great twenty-minute loop that its own genre buries under two-hour matches. A roguelike frame fixes the length without touching the loop. One map per run, a keep on one square, a boss somewhere on the grid, and a reveal mechanic that makes exploration a decision rather than a scroll — reveal the wrong neighbour and a bandit camp is awake before your granary is. The economy underneath is deliberately classical: workers walk, hoppers fill, bread needs wheat needs a mill, taxes buy loyalty and lose it. Nothing abstract stands between a decision and its consequence.

The hardest technical problem so far was not pathfinding or fog; it was trust. The simulation is deterministic and folded into a hash, seven “golden” scenarios pin that hash across every commit, and any change that moves one must say why. That discipline caught the project’s most instructive bug: the save system passed every headless test, every scripted boot and a full smoke run — and never saved a single real session. Every proof had entered through a scripted boot the game treats as automation and refuses to write for; the one code path a human actually runs had never been executed by a test. The fix was small. The lesson was structural: a proof that calls the mechanism directly never touches the wiring a player uses. The smoke harness now boots the game exactly as the developer does — no arguments, a real key press, a real quit — and reads the file that results.

The other pillar is honesty at the boundary. The game never silently loses a run. A save it cannot read is kept on disk and refused by name — this tile type, this building, this content pack changed — and the refusal is re-checked on every boot in case the content comes back. The HUD never encodes a state in colour alone; every state carries a shape mark, so the game reads the same under colour-vision deficiency. And a boot that produces no world says why on screen rather than showing a black map with dashes.

More than a thousand headless tests guard the sim — and every one of them has been made to fail on purpose at least once. A test that has never been red is decoration.

Feature highlights

  • Reveal grid

    A 5×5 map uncovered one neighbour at a time; fog is impassable, unbuildable and unregistered, so the shape of your territory is the shape of your defence.

  • Castle economy

    Wood, stone, iron, bread, meat, apples and ale through walking workers, hoppers and coverage buildings, with a tax slider and a mood that answers it.

  • Enemy camps encounters planned

    Bandit encampments on the grid with their own buildings and units; break them or they break you. Full combat encounters — attack groups, midboss, boss siege — are the next milestone.

  • Recruitment and squads

    A barracks that turns population into soldiers, squads on digit keys, and a workshop that lets you choose what it makes.

  • Save and resume, honestly

    One run, one file, written on quit and by autosave; a run the game cannot read is kept, named and forgiven, never deleted.

  • Card-driven runs planned

    Rewards drafted between tiles that modify any stat through a universal modifier pipeline — the pipeline exists; the cards do not yet.

Where it stands

Current milestone: playable prototype — economy, reveal grid, enemy camps, recruitment and a complete save/resume door, all played by hand.

Next milestone planned: encounters and combat — attack groups on reveal, a midboss, the map’s boss siege.

Built solo since July 2026 with a multi-agent Claude workflow — a planner, an executor and an art instance — under a written engineering canon and a round-by-round audit trail.

Screens

  • Mistmarch — village
    VillageThe first minutes of a run: the keep, the free first stockpile, granary and woodcutter, and workers walking the hauls that make the economy visible.
  • Mistmarch — reveal
    RevealThe map from above — revealed squares in the clear, the fog edge where nothing paths or builds, and the tile map panel showing what the run has uncovered so far.
  • Mistmarch — camp
    CampA bandit encampment revealed on a neighbouring square: its own buildings and guards, and the player's squad formed up on a digit key at the edge of revealed ground.
  • Mistmarch — workshop
    WorkshopThe bottom bar with a Workshop selected — the recipe picker choosing between bows and spears, the kingdom's resources, tax and mood in the vitals column.

Tech stack

  • Godot 4 (.NET) · C#
  • Headless deterministic tick sim, golden-hash scenarios
  • JSON content packs + schema validator
  • xUnit (1,000+ headless tests) · booted smoke harness · sabotage discipline
  • GitHub Actions, four gates per commit (build, tests, schema, smoke) · Git LFS
  • Rigged 3D units → sprite sheets · CC0 / licensed kits · colour-vision-safe mark rule
  • Python close/verification scripts · per-run engine logs
  • Claude (multi-agent: planner, executor, art) with a written engineering canon
  • Windows PC export pipeline planned

Play it

In development — no public build yet

Unit animation clips are Adobe Mixamo; building and prop kits from Quaternius (CC0) and CraftPix (licensed). Godot is MIT-licensed.