Atlas of Bretonnia

Workshop journal · · 9 min read

All of Bretonnia: how we'll expand the campaign map

The Season's map stops short of Bretonnia's northern dukedoms: Lyonesse, L'Anguille, Couronne, Artois. I want the whole kingdom, from the coast of Lyonesse to the Grey Mountain passes, and I want to draw it with you. Here's the method, step by step, where we stand, and how you can weigh in on every choice.

The site's ornate map: the north of Bretonnia, from Lyonesse to the Marches of Couronne, with its towns, fortresses, ships and sea monsters.
The north of Bretonnia on the site's ornate map: the dukedoms the expansion adds, from Lyonesse to the Marches of Couronne.

Where the idea came from

On 23 September at 5:20 am, deep in a night of work, I told Claude: “in the future I'm planning extensions of this map further north, to get the whole of Bretonnia”. It suggested a “paper” map to sign off before building anything: regions, towns, rivers, forests, based on the lore. My answer: “yes please!!” (My quotes are translated from French.)

The first version arrived around 6:30 am. It was missing the dwarf holds, the orcs and goblins between the Empire and Bretonnia, and the passes, with the fortress of Helmgart. In the afternoon, a Claude session dedicated to the map produced version 2. My verdict: “I love how it looks”.

The Season within all of BretonniaLYONESSEL'ANGUILLECOURONNEARTOISMARCHES OFCOURONNEPALESISTERSREIKLANDIRRANA MOUNTAINSTor MartelTHE WASTELANDESTALIAThe SeasonGREY MOUNTAINS+120 hexes+40today's map.hex: 400 hexes+135The Season: playable today (in beta)The expansion's new regions (planned)Off the map: the Wasteland, the Empire, EstaliaToday's map.hex frame (400 × 440 hexes)Atlas frame: 560 × 575 hexes; x + 120, y unchanged
The expansion map as of 25 September, over the site map's background. The gold outline is the Season's playable land; the dashed line, its map.hex frame (400 × 440 hexes), whose edges are impassable. The expansion adds the northern dukedoms, the sea coast, the Grey Mountains up to the Reikland, the Irrana Mountains and the isles: the frame grows to 560 × 575 hexes. A plan on paper: none of it is in game yet.

The brief

Before drawing anything, I set my conditions. They guide every choice on the map.

  • True to the lore and joined to the Season: continuous rivers, valleys and passes that fit the current map.
  • Playable: every region reachable, provinces of one to several towns, greenskins where the lore puts them.
  • Buildable: nothing Warhammer III can't do.
  • Sourced: every name has a source; without one, it's marked provisional.
  • Independent of Warhammer III: no geometry taken from its campaign map.

The method in ten steps

Ten steps lead from the atlas to the game. The first eight happen on paper and are done; the ninth is defined; the tenth, the heaviest, is still ahead.

Ten steps, from atlas to gameDone, on paperSurvey the Atlas of the Old WorldAlign the atlas with our mapTreat the east separatelyDraw the relief, join the riversGrow the regionsAdd seas, isles and splitsLay the roads, open the passesPublish the sign-off pageDefined on paperPrepare the new map.hexIn game: not startedRebuild everything in game12345678910
The first eight steps happen on paper and are done; the ninth is defined; the tenth, in game, hasn't started. Each step is detailed below.

Step 1: survey the Atlas of the Old World

Our main source is the Atlas of the Old World, a non-commercial fan project by Todd Kozlowski, shared with attribution. It draws on Andy Law's maps, Émile Beguin's Bretonnia and Warhammer books such as Knights of the Grail: places, relief, rivers, forests, roads.

Claude reads it in memory and keeps only derived data: 4,663 places for our area, river and forest masks, elevation bands. The official Old World map of Bretonnia, published by Warhammer Community, was only used to place the isles and the Dragon's Maw; its image is neither copied nor published.

Steps 2 and 3: align the atlas, and find out Warhammer I cheated

Aligning means laying the atlas over our map. We took 48 towns present on both, like so many pins, and computed a flexible warp that matches them as closely as possible: moving least squares. Picture a rubber sheet stretched from pin to pin.

To judge the result, we take each town out in turn and see where the atlas would put it back. Median gap: 16.4 hexes. On the first try it was 18.8, because our pins sat at the centre of each region rather than at the town's true spot.

Aligning the atlas: 48 pinsMontfort1234Town on both maps (48 pins)Where the aligned atlas puts it without it: median gap 16.4 hexesThe atlas grid (one degree), warpedWarhammer I cheated1Karak Ziflin181 hexes2Karak Tzor162 hexes3Blackstone Post143 hexes4Axe Bite Pass114 hexesRed arrow: from its place in Warhammer I to the one the aligned atlasgives it, near Montfort. These places are left out of the fit.
The real alignment, over the Season's map: the atlas grid warps so that 48 towns land on ours (moving least squares). Each brown line joins a town to the place the atlas would give it if it were left out of the computation: the median gap, 16.4 hexes, measures how good the fit is. In the north-east, Warhammer I pushed four Grey Mountain places far beyond the lore; St Jacques, inconsistent with its neighbours, is also left out.

Five places were left out of the fit. Warhammer I had moved four north-eastern fortresses by more than 100 hexes: its mini-campaign isn't a faithful scale model of the lore. Athel Loren is enlarged, and the dwarf and orc block in the north-east sits where the lore puts the Reikland. Karak Ziflin, Montfort's neighbour in the lore, ends up nearly 180 hexes away from it.

Hence two rules. In the north-west, the atlas is used as is. In the east, anchor points push the Empire back, blended over 40 hexes, and we follow the lore's topology (what touches what, through which pass) rather than a fit.

Step 4: relief and rivers

In the east, the stretched atlas didn't give a believable range. So Claude drew the Grey Mountains: solid massifs, an impassable core in one piece, and the lore's passes carved out as valleys 4 to 5 hexes wide, like the Imperial side of the Axe Bite Pass, the Grey Lady Pass or the valleys of Karak Norn and Grimhold. The dwarf holds sit in basins.

The expansion's relief is 80% this drawing and 20% atlas.

Detail of the expansion map: the hatched Grey Mountains between Bretonnia and the Reikland, with Helmgart, Karak Ziflin, the Grey Lady Pass, the Wut Pass and Karak Norn.
The Grey Mountains on the site map: the hatched core of the massifs can only be crossed through the passes (Axe Bite Pass, Grey Lady Pass, Wut Pass). The bright orange strokes near Helmgart and Blackstone Post are two of the breaches to open; Karak Azgaraz stays in ruins, as in Immortal Empires.

For rivers, one simple rule: keep only those that end in the sea, at the edge of the frame or on one of our rivers. None may enter the map only to vanish, and none runs over high mountains.

Which rivers we keepIt ends in the seakeptedgeIt leaves through the frame's edgekeptoursIt joins one of ourskeptIt fades out inlanddroppedThe trap: resampling a one-pixel lineas is: brokeninto pieceswidened first:continuous
An atlas river is kept only if it ends in the sea, at the frame's edge or on one of our rivers: none may enter the map only to vanish. Below, the trap we hit along the way: a thin line, reduced to a coarser grid, loses pieces, which the join filter then drops almost entirely; widened first (and thinned afterwards), it stays in one piece.

Step 5: grow the regions

Each region starts from a town named after the lore, with its source. It spreads over land by least cost, like an ink blot: high mountains cost eight times more, a river two and a half times. So borders follow ridges and rivers, and every region stays in one piece.

A region grows by least costPlain: ×1River: ×2.5High mountain: ×8BorderTown: the seedThe border falls where two ink blots meet: on the ridge and along theriver, which are costly to cross.
A diagram, computed as on the real map: each cell goes to the nearest town by crossing cost. The costs are the expansion's: high mountain ×8, river ×2.5 (and, not drawn here, hills ×1.8, forest ×1.3). On the real map, each town also grows within a radius of its own, and a region stays in one piece.

Provinces group one to four regions. In the north come the missing dukedoms: Lyonesse, L'Anguille, Couronne and Artois, plus the Marches of Couronne and the Pale Sisters. In the east, Helmgart and Ubersreik, La Maisontaal and the dwarf holds of Karak Norn, Karak Azgaraz and Grimhold; in the south, the greenskin tribes of the Irrana Mountains.

Detail of the expansion map: Bretonnia's northern dukedoms, from Lyonesse to the Marches of Couronne, with their towns, roads and forests.
The north of the expansion on the site map: the dukedoms of Lyonesse, L'Anguille, Couronne and Artois, the Marches of Couronne (Tancred Castle) and the Pale Sisters. Red diamonds: new towns; orange dashes: new roads; bottom right, Gisoreux and the Season's Grey Mountains.

Step 6: seas, isles and splits

The expansion adds 11 seas, using CA's names where they exist, such as the Albion Channel or the Sea of Claws. For the isles, the map suggests Aislinn, the High Elves' Sea Lord: Tor Martel is his fortress in The Old World, and he would add Tor Soleil. The Silent Isle, emptied in a single night according to Knights of the Grail, stays a ruin to restore.

It also proposes 14 splits: towns carved out of large regions, such as Aquitaine, Ceren Field or the Burial Mound of Grudsnik. Eleven touch a map that's already built, three the new part: they get decided one by one.

Step 7: roads and passes

Roads follow the cheapest path between neighbouring towns: 54 new roads. Every town in the expansion is linked by land, except the isles, linked by sea. For the passes to lead somewhere, five breaches also have to be opened in the impassable edge of the current map: 43 hexes in all.

54 new roads, five breaches12345New road, the cheapest path between neighboursSea link (the isles)Breach to dig in the impassable edge1Axe Bite Pass, Imperial sideKarak Ziflin → Helmgart16 hexes2Grung Zint ValleyAxe Bite Pass → Grung Zint3 hexes3Blackstone TrailBlackstone Post → La Maisontaal (Kemmler and the abbey)10 hexes4Pine CragsKarak Norn → Tal Jul-Finel (the dwarfs' road of 1350 IC)12 hexes5Crookedhoodz BreachThe Crookedhoodz → Carcassonne2 hexesIn all: 43 hexes
The expansion's 54 new roads and the five breaches to open in the current map's impassable edge, so the passes lead somewhere. Every new town is linked by land, except the isles, linked by sea. Without the breaches, those regions are still reachable, but only by long detours.

Steps 8 and 9: the sign-off page and the new frame

It all comes together in the interactive map on this site: layers, region cards, a before-and-after view. A “For modders” box shows the proposed keys and hex coordinates. Along the way we fixed a bug in the first version: contour simplification erased every closed loop, and the map had no borders left at all.

The frame grows from 400 × 440 to 560 × 575 hexes. The new map.hex starts 120 hexes further west: add 120 to every x, and y stays the same. That frame remains the Atlas's. In the game, the Season Expanded build's grid is 560 × 825 hexes: 250 extra rows in the south for the Dreaming Wood, which puts the Season at (x + 120, y + 250). The details are in Building a map expansion.

  • Regions with a settlement: 57 → 89 (+32)
  • Provinces: 26 → 41 (+15)
  • Seas: 2 → 13 (+11)
  • Playable land: +51%
  • Starting factions: 28 → 37 (+9)

Working figures, not a promise: they will change with the questions still open.

Step 10: what's left to do in game

This is the heavy part. It started on 25 September, and it's being built in public: the “Season Expanded” project. The CAIME layers have to be redone in the new frame, then everything else shifted: the Terry project and its layers, the startpos, character positions, script cameras.

The new regions also need their start tables and their terrain. Warhammer I's mini-campaign has no source for those areas: the relief will come from the atlas and the drawn range. I'm not giving a date.

How to take part

This is when the map gets decided, and I want your ideas: a name that rings false, a border in the wrong place, a forgotten town, a lore tribe that's missing. It all happens on the map.

Suggesting an idea, from pin to planTap “Suggest an idea”On the home page map, under “Take part”.✎ Suggest an ideaTap the spotA pin goes in; the page records the region, province andcoordinates. The magnifier finds a place by name.region · provincehex coordinatesPick a topic, say whyName, town, border, road, faction, terrain, lore,gameplay, bug or other; one sentence or ten.nametownborderlore…Publish: everyone sees itPeople back it or turn it down, reply to it, share it witha link.ForAgainstReplyLinkFollow what becomes of itThe team gives it a status; the best-backed go into theplan.OpenUnder reviewKeptDoneOr “Set aside”. Charles makes the final call, but reads everything.
The steps of the home page's “Take part” section, in order. A published idea shows up on the map for everyone; it keeps its exact spot, ready to be discussed.

No need to be a modder: one sentence is enough, the pin says where. And if you know CAIME, RPFM or the lore inside out, your terrain and gameplay ideas count just as much.

The questions still open

Six questions are still open, and your view can tip any of them. Share it by suggesting an idea at the spot in question:

  • keep Helmgart and Ubersreik, or stop the map at the ridge;
  • give the lore's greenskin tribes factions of their own, or use existing ones;
  • the elven isles: Aislinn, free ruins, or Imrik at Tor Soleil;
  • which splits to keep;
  • whether to open the five breaches;
  • confirming the names that have no source, such as Les Contreforts or the Wut Pass.

Three are already settled: Karak Azgaraz stays in ruins, as in Immortal Empires; L'Anguille gets a faction of its own; Lyonesse goes to Repanse de Lyonesse's Chevaliers de Lyonesse.

I make the final call, but I read everything. The story of the port is here, and the build method there.

Suggest an ideaSee the map