Skip to content

v0.125.0 — Procedural maps: Outdoor templates

The second milestone of the procedural map generation program (M2): ten more outdoor templates beside the Forest, four seasons, rivers and lakes, one-click encounter maps, and your own Library's art for any role. The program's documents are in docs/programs/mapgen/; this milestone's tasks, decisions and test script are in docs/programs/mapgen/m2-outdoor-templates.md. Released after v0.124.0 (M1), which ships first.

Outdoor templates

  • [x] A template picker in the Generate tab, grouped by family: Forest, Plains and grassland, Farmland, Swamp and marsh, Desert, Tundra and snow, Jungle, Mountain pass, Coast, River valley, Badlands and canyon. Each has the catalogue's sliders; sliders that only reveal or hide never move anything, as in the Forest.
  • [x] Farmland is fields of wheat, barley, plough, fallow and pasture, with hedgerows and fences along their edges; mountain passes climb to a saddle by a switchback road between cliff edges; coasts have beaches, cliffs, sea stacks and a tide that moves the waterline, not the coast; badlands are terraced canyons.
  • [x] Seasons: spring, summer, autumn and winter. Trees turn and go bare, snow sits on conifers and boulders, the whole palette shifts; nothing moves.
  • [x] Water: brooks, rivers and lakes on the Forest and River valley (and the templates the catalogue gives them), with fords for trails and dirt roads and bridges for gravel and better. Deep water blocks; shallows and mud are difficult terrain.
  • [x] Road shapes: switchback and loop join single, fork, crossroads and T-junction.

Encounter maps

  • [x] Presets: Road ambush, Bridge crossing, Forest clearing and Campsite open as small ready-made maps from the Generate tab, every setting still editable.

Your own art

  • [x] Library pools: campaign settings › Map art › Pools lets you pick, for any role (say, Conifer), art from your Library: search by tags, tick what fits (or Auto-tick and confirm), and Replace the pack's art or Mix with it at a share you choose. Footprint and anchor are suggested from each picture's outline. Art never moves anything, so changing a pool restyles every map that uses the role, committed ones included.
  • [x] The v1 placeholder pack grows to cover every new role and material, with autumn and winter forms (AI-generated placeholder art, replaced before general availability; see the AI Policy).

Fixes

  • [x] Edit in preview keeps its baked tokens apart: discarding an edit removes only the tokens it baked; removing a generated map removes all of them.
  • [x] A baked token wears exactly the art its tree was drawn with, under a Library pool too.
  • [x] After a new seed, a map no longer keeps the previous road's bridges and tunnels in preview.
  • [x] Winter lays snow on the ground; frozen lakes are walkable, difficult ground; a clearing clears its undergrowth.
  • [x] The new art reaches servers: map-art-procedural is 0.2.0, because a server copies a module's art only when its version changes. Without the bump, a server that had deployed M1 drew nothing for the seasonal forms and the new templates' roles. A test now fails when the pack changes without a version bump.

For module authors: Module API 1.45.0

  • [x] maps.getArt(campaignId): a campaign's packs, pack order and Library pools.
  • [x] bakeTokenFor, variantForKey and instanceIndex in @purple-cat/shared.
  • [x] Recipe constraints (clearing, road-through, dense-near-road, water-through, props), the view's and snapshot's season, and editGenerationIds on a snapshot.

Under the hood

  • [x] Migration 0078: map_art_pools.
  • [x] packages/mapgen-core: the Forest's machinery shared by every template, a test kit that gives each template golden, seam and slider tests, linear features, and the Water group.