Atlas de Bretonnie

Journal de l'atelier · · 10 min de lecture

Créer une expansion de carte, de zéro à 100 : le chantier Saison Expanded, en direct

Le 25 septembre, j'ai lancé la suite logique de la Saison : agrandir sa carte à toute la Bretonnie, sans toucher à la bêta. Ce chantier se construit en public, et cet article le suit phase par phase, avec nos vrais outils, nos vrais fichiers et nos ratés. De quoi comprendre comment naît une expansion de carte, vous en inspirer, ou venir nous aider.

La côte de Lyonesse vue dans les données de travail : la mer, des terres vertes et brunes, et en bas à droite le cadre jaune de la carte de Warhammer I.
La côte de Lyonesse, terre neuve de l'extension, vue dans nos données de travail (8 pixels par hex, pas le rendu du jeu) ; en bas à droite, le cadre de la carte de Warhammer I.

Un article vivant

Saison Expanded, c'est la carte de la Saison agrandie à toute la Bretonnie. Au centre, la carte de Warhammer I, identique à 100 %. Autour, la terre de l'extension, dessinée d'après l'Atlas de ce site.

La méthode sur le papier est racontée dans La Bretonnie entière. Ici, c'est la construction : quatre phases, chacune avec son contrôle.

Saison Expanded : le chantierAvant les phasesfait · le 25.09, 15 h 25 – 15 h 50Une copie du pack de la bêta, hors du jeu ; l'Atlas relu ; lachaîne inventoriée ; le plan en quatre phases.Configuration par carteen cours · commencée le 25.09 à 16 h 45Une chaîne qui fabrique deux cartes : la bêta à l'octetprès, et Expanded.11 modules branchés ; carte de la bêta : 0 écart sur955 constantes.1Grille agrandieen cours · lancée le 25.09 à 17 h 07Dans CAIME, 560 × 825 hex : la Saison au centre, l'Atlasautour, hors jeu et infranchissable.Grille posée ; carte et campagne déclarées dans le kità 18 h 08.2Terrain de l'extensionen cours · commencée le 25.09 à 17 h 45Relief, sols, forêts, rivières, côtes et montagnes depuisl'Atlas ; le Bois Rêveur.Projet de terrain, raccord naturel et Bois Rêveur,hors du kit.3Campagne Expandedà venirStartpos, pack saison_expanded.pack chargé seul ; premieressai en jeu.4faiten coursà venir
Le chantier au 25 septembre, 18 h 40. Chaque phase a son contrôle avant la suivante ; la bêta n'est jamais touchée. Les heures sont celles du journal du chantier.

Pour chaque phase : son but, ses étapes, ses outils et ses fichiers, ses pièges, son état. Tout se montre, captures et chiffres compris. Seul le pack reste privé, comme celui de la bêta : il contient des fichiers de Warhammer I.

Avant les phases : une copie et deux inventaires

Le 25 septembre à 15 h 25, j'ai écrit à la session « Construction » de Claude : « fais une copie du pack, tu la nommes Expanded, et tu commences à dessiner toute l'extension ». Dix minutes plus tard, j'ai précisé : « je ne veux pas une map plate : les reliefs, les plaines, les forêts ».

Quatre règles encadrent tout le chantier :

  • La bêta reste intacte. Expanded est une copie, avec son nom de carte, ses fichiers et son pack. Rien ne s'écrit dans les dossiers de la bêta.
  • Au centre, Warhammer I à 100 %. Autour, l'Atlas, source unique : le site et le jeu montrent la même carte.
  • D'abord la terre en décor : hors jeu, infranchissable, sous le brouillard, comme les bords des Empires Immortels. Les régions jouables viendront ensuite, une à une.
  • Les clés : saison_ pour ce que nous créons, wh_dlc05_ seulement pour ce qui vient de Warhammer I.

Deux agents de recherche ont d'abord tout lu, sans rien écrire : l'Atlas d'un côté, notre chaîne de fabrication du terrain de l'autre. Bonne nouvelle : l'Atlas est déjà dans notre repère hex, un cadre de 560 × 575 hex où la carte de Warhammer I est en x + 120. Ses 32 régions neuves et ses 11 mers s'y posent directement.

Les régions neuves de l'extension, nommées, et ses mers, en italique, autour du cadre jaune de la carte de Warhammer I.
Aperçu de 16 h : les villes des 32 régions neuves et les noms des 11 mers, sur le relief de l'Atlas. Dans le cadre jaune, sur la bordure de Warhammer I, on lit déjà Château Artois, Uesin, Larret, Sigmarsheim, Grung Zint, Helmgart, La Maisontaal, Karak Azgaraz, Karak Norn.

D'où une surprise : une partie des régions neuves, comme Château Artois, Grung Zint, Helmgart ou Karak Norn, est déjà dans le cadre de Warhammer I, sur sa bordure de décor non jouable. On y revient à la phase 2.

La chaîne, elle, n'était écrite que pour une carte. Une même constante, CARTE, y désignait la source (le terrain de Warhammer I) et la cible (les fichiers du kit). La taille, 400 × 440 hex, était écrite en dur dans une trentaine de modules. De ce constat est né le plan en quatre phases.

Phase 1 : une chaîne qui connaît plusieurs cartes

  • But : que la même chaîne fabrique la bêta, à l'octet près, et la carte Expanded.
  • État : en cours, commencée le 25.09 à 16 h 45.
  • Outils : Python ; carte_config.py, releve_constantes.py.

Avant de toucher au moindre module, on a relevé les valeurs de 952 constantes dans 30 modules : c'est la référence. Puis un module unique, carte_config.py, a repris tout ce qui dépend de la carte : sa clé, sa campagne, sa taille, la place de Warhammer I, le dossier de travail, le pack.

Une variable d'environnement, SAISON_CARTE, choisit le profil. Sans elle, c'est la bêta.

Une constante, deux rôlesAVANTCARTE = wh_dlc05_wood_elves_map_1la sourcele terrain de WH1, lu dansles référencesla cibleles fichiers écrits dans lekitChanger la cible aurait aussi changé la source.APRÈS : carte_config.pyCARTE_SOURCE = wh_dlc05_wood_elves_map_1toujours WH1, jamais modifiéeCARTE : le profil choisi par SAISON_CARTEsaison (par défaut)wh_dlc05_wood_elves_map_1400 × 440 hex(0, 0) : décalagesaison_des_revelations.packla bêtaexpandedsaison_expanded_map560 × 825 hex(120, 250) : décalagesaison_expanded.packla nouvelle carteContrôle : 955 constantes relevées dans 30 modules, avant etaprès. Carte de la bêta : 0 différence. Expanded : 28, toutesdes cibles ; aucune source de WH1.Encore à traiter : les fichiers du kit sans nom de carte (montagnesdrapées sur le relief, base des variantes de sol, matériaux d'eauet de neige). Tels quels, ceux d'Expanded écraseraient ceux de labêta.
Phase 1. La chaîne de la bêta lisait une seule constante pour la source et pour la cible. Désormais, la source reste WH1 et la cible suit un profil ; le profil de la bêta garde toutes ses valeurs d'avant.

Onze modules y sont branchés : le générateur, la caméra, les textures du sol, l'éclairage, les arbres, les rivières, les entités, les montagnes… Le contrôle compare les constantes avant et après :

python releve_constantes.py --sortie avant.json
python releve_constantes.py --sortie apres.json --comparer avant.json

Résultat : 0 différence sur 955 pour la bêta. Pour Expanded, 28, toutes des cibles (clé de carte, dossiers du kit et de l'atelier), aucune source de Warhammer I.

Reste à brancher : les masques d'eau, la construction du pack, les tables et le startpos, les noms des matériaux d'eau et de neige. Puis vient l'étape de placement, qui posera tout Warhammer I dans le monde agrandi. Le contrôle final sera plus dur : la chaîne de la bêta devra produire le même terrain compilé, octet par octet.

Phase 2 : la grille agrandie dans CAIME

  • But : le map.hex de la nouvelle carte. La Saison au centre, l'extension autour, hors jeu et infranchissable ; seule la Saison se joue.
  • État : en cours ; grille posée à 17 h 30, carte et campagne déclarées dans le kit à 18 h 08.
  • Outils : CAIME et des commandes en ligne ajoutées à notre copie ; grille_expanded.py, rendu_grille.py.

Une grille plus grande que prévu

La grille devait reprendre le cadre de l'Atlas : 560 × 575 hex, la Saison en x + 120. À 16 h 15, j'ai tranché une question : le Bois Rêveur, notre reflet d'Athel Loren, ira au sud, en miroir de la forêt, derrière un voile infranchissable d'environ 26 rangées.

Ce reflet est un ajout à nous. D'après le livre d'armée Wood Elves (8e édition), cité par le wiki Warhammer Fantasy, il longe la forêt tout entière : d'où sa place, réservée dès la grille. La grille du jeu fait donc 560 × 825 hex : l'Atlas, plus 250 rangées au sud pour le Bois Rêveur. La Saison y est en (x + 120, y + 250).

La grille de Saison Expanded(120, 250)CARTE DE WH1400 × 440 hex, telle quellejouable : la SaisonL'ATLAS : L'EXTENSIONhors jeu, infranchissable (décor)BOIS DES RÊVESreflet d'Athel Loren, en miroirplace réservée, vide pour l'instant↑ voile ≈ 26 rangées+120400+40560 hex d'ouest en est+135440+250ligne 0 au sudLa carte de WH1 : sa partie jouable garde ses couchesL'Atlas, partout ailleurs au nord de la bandeLa bande du sud : le futur Bois Rêveur560 × 825 hex ; la carte de WH1 en (x + 120, y + 250)
La grille à l'échelle. Le cadre de l'Atlas (560 × 575 hex) garde son repère : la carte de WH1 y est en x + 120. Les 250 rangées ajoutées au sud la font monter d'autant : dans la grille, elle commence en (120, 250). Seule sa partie jouable garde les couches de la Saison ; tout le reste est hors jeu et infranchissable.

Remplir la grille, hex par hex

En ligne de commande, CAIME ne connaît que process et validate. Pour tout enchaîner par script, j'ai utilisé des commandes en ligne ajoutées à notre copie de CAIME, pas encore proposées à ses auteurs : config, create, info, sync-names, import-layer et export-layer. Si vous travaillez avec une IA, c'est ce qui lui permet de fabriquer une carte de bout en bout, sans un clic.

  1. Créer la carte vide à la bonne taille : create --name saison_expanded_map --width 560 --height 825, puis sync-names, qui y inscrit les noms de la base : 15 sols de terre, 6 de mer, 42 climats, 12 attritions.
  2. Recopier la Saison : 8 couches de la bêta (sols, climats, attritions, franchissable, rivières, routes, plages, ponts), renumérotées par nom vers les listes de la nouvelle carte, posées en (x + 120, y + 250).
  3. Poser l'Atlas partout hors de la partie jouable de la Saison : ses types de sol et ses rivières.
  4. Tout fermer hors de la Saison : infranchissable. La bande du sud reste vide.
  5. Importer et vérifier : import-layer, puis export-layer --format png, et un rendu aux couleurs naturelles.

Les commandes réelles de la grille, à 17 h 07 (le script en passe les 8 couches d'un coup) :

CAIME.exe create --name saison_expanded_map --width 560 --height 825
CAIME.exe sync-names --map saison_expanded_map\map.hex
CAIME.exe import-layer --map saison_expanded_map\map.hex
    --layer GroundTypes --file layer_groundtypes.hex_layer
    --layer Rivers --file layer_rivers.hex_layer  …
CAIME.exe export-layer --map saison_expanded_map\map.hex --out export-png
    --layer GroundTypes --layer Impassable --layer Rivers --format png

Pourquoi l'Atlas l'emporte-t-il jusque dans le cadre de Warhammer I ? On a mesuré. Sur la partie jouable de la Saison, l'Atlas reprend nos couches à 98,5 %. Sur la bordure de décor, à 61 % seulement : il y dessine 25 680 hex de régions neuves, celles de la surprise de 16 h. D'où la règle : Warhammer I tel quel là où l'on joue, l'Atlas partout ailleurs.

La grille de Saison Expanded rendue depuis ses couches CAIME : la Saison jouable en vert clair au centre, la terre hors jeu assombrie autour, la mer en bleu.
La grille rendue depuis les couches importées dans CAIME. En clair, la Saison jouable, reprise telle quelle ; assombri, tout ce qui est hors jeu et infranchissable : la bordure de Warhammer I et l'extension de l'Atlas. La bande du sud, encore vide dans la grille de CAIME, est coupée ici : le schéma plus haut la montre à l'échelle.

La carte entre dans le kit

À 18 h 08, Expanded a une existence dans la base du kit. Un script écrit sa spécification (spec_expanded.py → map_spec_expanded.json), puis declare_map.py l'inscrit, après une sauvegarde : la carte saison_expanded_map (560 × 825), la campagne saison_expanded (« The Season of Revelation: Expanded »), sa zone jouable (celle de la Saison, décalée), ses routes, et les 61 régions de Warhammer I reliées à la carte.

Ces régions gardent leurs clés wh_dlc05_ : les scripts de la Saison restent valables sur la nouvelle carte. Chaque clé neuve a été vérifiée libre avant l'écriture.

Restent, en phase 2 bis : les régions et les mers neuves (saison_<clé>, saison_sea_<clé>), puis les emplacements de colonie et les routes commerciales (les tables à déclarer). Captures de CAIME à venir.

Phase 3 : le terrain de l'extension

  • But : une terre qui ne soit pas plate. Relief, sols, forêts, rivières, côtes et montagnes depuis l'Atlas, et le Bois Rêveur.
  • État : en cours depuis 17 h 45, dans le bac à sable du chantier (rien dans le kit ni dans le jeu).
  • Outils : relief_monde.py (aperçus), projet_expanded.py (le projet de terrain), Terry.

Un premier prototype, à 16 h 05, partait de la pseudo-altitude de l'Atlas. Il plafonnait bien trop bas : 3 unités de hauteur, quand Warhammer I monte jusqu'à 13,8. La session qui dessine l'Atlas nous a donné la leçon : sa valeur alt n'est pas une hauteur, mais une classe de dessin, à convertir par une table calée sur Warhammer I.

À 17 h 35, un premier assemblage du monde, en données : au centre, la hauteur réelle du projet Terry de la Saison ; autour, l'Atlas recalé (prairie vers 1,6, collines de 2,4 à 6,9, montagnes de 3,2 à 10,5). Le Bois Rêveur y entre à 17 h 45.

Le projet de terrain

À 17 h 45 commence le vrai terrain. projet_expanded.py fabrique le projet Terry d'Expanded à partir de celui de la Saison, lu et jamais écrit : 10 rasters agrandis (relief, fond de mer, couleurs, corruption, neige, arbres…), la carte des tuiles, 51 523 positions d'objets décalées. Tout le cadre 400 × 440 reste celui de Warhammer I : ses montagnes sont drapées sur son relief.

À 18 h, j'ai demandé que la carte de Warhammer I « déboule naturellement, sans bordure ». Son relief est prolongé hors du cadre par un remplissage lisse, puis fondu dans celui de l'Atlas sur 12 hex. Les côtes de l'extension sont lissées, et le relief de l'Atlas est érodé de fines ravines, comme celui de Warhammer I.

Le monde entier en données : relief ombré aux couleurs des sols, cadre jaune de la Saison, bande mauve du voile et reflet violet d'Athel Loren sur fond sombre.Les données, 17 h 45
Le projet de terrain d'Expanded en couleurs de travail : relief ombré vert, le cadre de la Saison, des taches roses de corruption, puis le voile et le reflet sur une mer violet sombre.Le projet de terrain, 18 h 40
Les données, 17 h 45 : les sols par hex et un relief ombré (l'image porte encore le nom de travail « Bois des Rêves »). Le projet de terrain, 18 h 40 : les rasters du projet Terry, en couleurs de travail ; le relief de Warhammer I se prolonge hors du cadre sans bordure nette, et le rose marque le masque de corruption. Ce ne sont pas encore des images du jeu.

Le Bois Rêveur

De 18 h 30 à 18 h 40, le Bois Rêveur entre dans le projet de terrain : Athel Loren reflétée depuis Warhammer I, relief, eau, sols, arbres et neige d'hiver compris. Une teinte lilas, une lisière magenta et corrompue, un voile de brume ; autour, une mer d'éther violet sombre où le reflet flotte comme une île. Les teintes de Slaanesh sont un choix artistique du projet.

Le sud du projet de terrain : en haut, le bord sud de la Saison ; une bande lilas, le voile ; dessous, le reflet d'Athel Loren, gris-vert teinté de rose et liseré de magenta, sur une mer violet sombre.
Le Bois Rêveur dans le projet de terrain, vu du dessus (18 h 40, couleurs de travail). En haut, les montagnes du sud de la Saison ; puis la bande lilas du voile de brume ; dessous, le reflet d'Athel Loren, liseré de magenta, sur la mer d'éther.

Phase 4 : la campagne Expanded

  • But : une campagne jouable sur la nouvelle carte, à côté de celle de la bêta.
  • État : à venir.
  • Outils : RPFM, la génération du startpos.

La clé de carte, la clé de campagne et la zone jouable sont déjà déclarées (phase 2, 18 h 08). Une campagne ne connaît qu'une carte, par la colonne map_name de la table campaigns : celle d'Expanded pointe sur la sienne.

Suivre, et mettre la main à la carte

L'Atlas du site est la source unique : ce qui change sur la carte changera dans le jeu. Un nom qui sonne faux, une frontière mal placée, une ruine du lore oubliée ? Proposez-les sur la carte, à l'endroit exact.

Plus tard, sans urgence : un morceau du Reikland à la frontière, avec Helmgart face à Montfort et la Trouée de Gisoreux ; Marienbourg, quand je l'aurai vue en jeu.

Cet article grandit avec le chantier : à chaque phase, ses captures, ses chiffres et ses pièges. Les outils ont leurs guides : CAIME, Terry, RPFM et les autres outils.

Proposer une idéeVoir la carte