# Le monde > Voir `matchmaking.md` pour comment une partie se lance sur une case, et `combat.md` pour > ce qui se passe pendant/après le combat. ## ✅ La grille - Le monde est une **grille de 5×5**, soit **25 cases jouables**. - Chaque case appartient à une faction à un instant donné, et prévoit **4 variantes** de faction — une par faction — légèrement différentes : la faction propriétaire ajoute de sa ressource associée et réduit les autres. **25 cases × 4 variantes = 100 cartes** possibles au total. Au 2026-09-06, les 100 emplacements portent des copies des références ; leur spécialisation en ressources reste différée. - La **variante active** d'une case est celle de sa faction propriétaire actuelle. - La **source d'eau ou de lave** d'une carte (voir `terraformation.md`) dépend de la faction propriétaire : **de la lave si la carte appartient aux Démons, de l'eau sinon.** ## ✅ Les références continues et leur taille — 2026-09-06 **Chaque territoire mesure 288 × 288 cellules**, trois fois plus large et trois fois plus long que les anciennes cartes de 96 × 96 : **82 944 cellules**, neuf fois la surface. La grille politique reste de 5 × 5 territoires. **25 bases génériques distinctes**, une par territoire, constituent la référence géographique. Elles sont des documents édités, rangés sur le cinquième emplacement « base générique » de la cartothèque. À la demande du joueur, chaque base est **copiée dans les quatre emplacements de faction**, soit 100 cartes actives. Relief, surfaces, gisements et départs restent identiques à la base ; seule la source devient de lave chez les Démons, conformément à la règle de faction. Les bases et les anciennes versions restent conservées en bibliothèque. Le paysage est dessiné à l'échelle du monde, puis découpé : plaines et côte occidentales, grande forêt au nord-est, massif nain au sud-ouest, caldeira et terres cendreuses au sud-est. Un réseau fluvial relie le nord, le lac forestier et le lac central, puis descend vers le delta méridional. Les lits sont remplis d'eau sur les références ; les bases ne préjugent pas des adaptations futures par faction. Le sommet des Quatre-Cornes est partagé par les coins des cases 10, 11, 15 et 16 ; la caldeira par ceux des cases 18, 19, 23 et 24. **Relief organique (révision v3, après examen des deux premières versions).** Les hauteurs restent dans la plage du moteur, 0–40 niveaux, avec un niveau égal à 0,5 cellule. Le paysage privilégie les plaines ondulées et de larges vallées. Six massifs allongés, courbés et d’orientations différentes forment le sud-ouest ; leurs piémonts se rejoignent doucement, tandis que des cols séparent les sommets. Les crêtes rectilignes, les ressauts de plateau très brusques et les petites bosses répétées de la v2 sont retirés. La roche affleure sur certains hauts versants, entre des épaules herbeuses. Le volcan est plus bas, asymétrique, avec des flancs arrondis et un fond de cratère en retrait. Les lits du réseau fluvial restent au niveau 2, avec des berges plus larges ; le déversoir garde une vallée un peu plus étroite. Les quatre départs restent bâtissables, reliés et approvisionnés. **Les ressources sont des poches, pas la peinture du terrain.** Chaque référence porte huit petites poches de pierre : quatre réserves de six cellules près des départs, quatre gisements d’expansion (jusqu’à treize cellules chacun). Douze bosquets d’expansion s’ajoutent au bois de départ. Les poches sont espacées, restent à l’intérieur des territoires et évitent les pentes infranchissables. Une roche nue de montagne porte zéro ressource ; seuls les gisements posent des rochers dans le rendu. Une forêt récoltable porte des arbres, conformément au contrat de décor. Les quantités par cellule ne changent pas. Les échantillons des deux côtés de chaque frontière sont identiques : altitude, altitude d'origine, surface, fluide et gisement. Les clairières de départ et les sources locales restent à l'intérieur des cartes. Chaque référence dispose de quatre départs bâtissables, reliés à pied et pourvus de bois et de pierre à portée, et d'une source d'eau. Cette garantie concerne le tick 0. L'éditeur présente par défaut **les bases assemblées**, carrées et jointives, avec une échelle de couleur commune aux 25 cartes. Les variantes restent accessibles par un sélecteur séparé. La recette d'auteur reproductible est dans `tools/carte/references.ts` ; elle produit des documents, sans ajouter de règle à la simulation. **Le générateur de repli ci-dessous reste disponible** pour les parties sans document ; ses rivières locales ne définissent pas le nouvel atlas. L'atlas interactif du jeu montre les documents de la faction propriétaire. Son inclinaison initiale est de 52° pour mieux lire les versants ; rotation et zoom restent libres dans leurs bornes. Les aperçus des documents conservent les vrais échantillons de bord au lieu de moyenner des bandes intérieures différentes, ce qui raccorde aussi leurs maillages 3D. Le clic ouvre le choix de partie sur ce territoire. Le serveur et les clients initialisent la partie depuis le même document, figé au lancement et conservé à la reconnexion. Le protocole v2 transmet ce document avant `match.start`, avec son identifiant et son empreinte vérifiés côté client. Une édition ultérieure ne change pas une partie en cours. Les parties sans document continuent d'utiliser leur graine. ## ✅ Le générateur de repli (`sim/mapgen.ts`) Une carte est **une graine, ou un document posé sur la case**. Par défaut elle n'est pas stockée : elle se recalcule depuis sa graine (`architecture.md` §9), ce qui reste le cas de toutes les cases qu'aucun éditeur n'a touchées. > ⚠️ **Cette phrase disait « une carte n'est JAMAIS stockée » jusqu'au 2026-08-16, et c'était > devenu faux.** L'éditeur de cartes range des **documents** (`shared/carte.ts`) dans > `data/cartes.sqlite` — vérifié : `octets BLOB NOT NULL` —, le serveur de jeu les lit depuis le > même jour pour les aperçus ; le raccord aux parties est achevé le 2026-09-06. > Une case qui en porte un joue **le document**, pas sa graine. La graine ne bouge > d'ailleurs pas quand on pose une carte : c'est le document qui prend le dessus. > > C6 avait annoncé que cette phrase deviendrait fausse **avant** qu'elle le devienne, et personne > ne l'a corrigée le jour venu. Elle a été retrouvée en cherchant systématiquement les > affirmations portant sur une **famille entière** — « jamais », « aucun », « seul », « toujours » > — parce qu'on les écrit en croyant **décrire** alors qu'on **quantifie**, et qu'une > quantification qui n'a pas l'air d'un chiffre n'appelle pas le réflexe de la vérifier. > Le même paragraphe est à corriger dans `server/db.ts:6`. Le générateur porte en entiers le diorama des maquettes (`mockups/common.js`) — **quatre quadrants aux frontières floues, qui se rejoignent au centre** : | Quadrant | Faction | Relief | |---|---|---| | Nord-ouest | **Hommes** | plaine basse et douce | | Nord-est | **Elfes** | collines rondes, bosquets épars | | Sud-ouest | **Nains** | massif haut, flancs raides, fosse de carrière | | Sud-est | **Démons** | plaine crevassée, éperons | - **Deux lits creusés dans le relief** : une rivière descend du nord-ouest vers le centre, une faille de lave monte du sud-est vers le centre. Leur profil est **non montant par construction** : ce qu'on verse en amont arrive en bas. - **Une vasque au centre**, un niveau sous les deux bouches. C'est le point bas de la carte, le lieu de rencontre — et le fait qu'elle soit plus basse que les deux lits garantit que ce qui y tombe **n'en ressort pas** : l'eau d'une carte des Hommes ne peut pas remonter tapisser la faille des Démons. - **Un seul des deux lits porte une source** (voir ci-dessous) ; l'autre reste **à sec**. Un canal tout tracé, à qui saura y amener quelque chose. - **Quatre positions de départ**, une par coin, chacune à plat et dégagée de tout gisement. Si le relief ne se prête à aucune, la génération **terrasse** : elle aplanit le carré de la base et le raccorde au terrain par un glacis d'un niveau par cellule. Une base de départ se pose toujours — c'est une garantie, plus une chance. - **Du bois et de la pierre à 8 cellules ou moins de chaque départ**, à pied. Les biomes étant par quadrant, un départ des Hommes n'a naturellement ni forêt ni roche : la génération **pose** ce qui manque autour de la base — un bosquet, un affleurement — sans jamais toucher aux lits ni au dégagement de la base. Chiffres et mesures : `valeurs.md` § « La première minute ». - Le relief occupe **~28 niveaux** sur les 40 disponibles, et **~5 % des passages entre cellules voisines sont barrés par la pente** — assez pour que la carte dessine des couloirs d'attaque, jamais assez pour que **la carte engendrée** coupe un joueur du reste du monde. **Ce n'est plus une observation mais une garantie** : si le relief sépare un départ des autres, la génération taille **un col** — une volée de marches d'une cellule de large, à l'endroit où la falaise est la plus basse. - ⚠️ **Cette garantie porte sur le tick 0, et sur lui seul** (tranché le 2026-08-16). Ce que la génération promet, c'est que **personne ne commence emmuré** — jamais que personne ne le sera. Ensuite le terrain appartient à ceux qui jouent : creuser, verser, bâtir peut refermer un passage, et **c'est le jeu** (`terraformation.md`). Mesuré : sur **400 cartes** (4 tailles × 25 cases × 4 variantes, parcours 8 voisins sur `stepAllowed`), **0 carte** sépare deux départs au tick 0. Le code disait déjà la même chose, et plus prudemment que ce fichier : « Les cols — personne ne **commence** emmuré » (`sim/mapgen.ts`). C'est `rules/` qui promettait plus que `sim/` ne livrait. - 🟡 **Un col d'une cellule reste un col d'une cellule**, et leur fréquence dépend de la **taille de la carte** — fortement, ce que personne n'avait mesuré. Il existe des **goulets d'une seule cellule**, dont le retrait sépare les quatre départs. Mesuré le 2026-08-16, même protocole : **0 carte sur 100 à 96×96** (2 sur 300 en ajoutant deux autres graines de monde), **5 sur 100 à 64×64**, **17 sur 100 à 48×48**, **61 sur 100 à 32×32**. Ce n'est donc pas un défaut de `carvePass` — qui ne taille un col que sur ~1 carte sur 75 — mais un effet de la petite carte : **à l’ancienne taille nominale de 96² le goulet était rare, au minimum autorisé il était la règle.** ⚠️ **À relire avant de baisser la taille d'une carte**, et à ne pas confondre avec un chiffre mesuré à 64×64. - **Une carte de moins de 32 cellules de côté est refusée**, et bruyamment : quatre bases séparées avec leurs gisements n'y tiennent pas. Mieux vaut une erreur qu'une carte morte. ## ✅ Attribution de départ Au lancement du monde : - La **case centrale** de la grille est **neutre, et le restera toujours** — elle n'appartient jamais à une faction. Elle sert de terrain neutre et équilibré, à égale distance des 4 bastions. - Les **20 cases restantes** sont **pré-assignées par proximité géographique** au bastion le plus proche, ce qui donne un partage rigoureusement égal : **5 cases par faction**. L'attribution n'est pas écrite à la main : on donne les 5 cases du quadrant des Hommes et on applique **trois rotations d'un quart de tour** (`server/grid.ts`). La symétrie devient une propriété du code — et l'égalité du partage se vérifie toute seule. **Variante active de la case neutre** : elle n'a pas de propriétaire, et il n'existe que 4 variantes par case. C'est **celle des Hommes** qui est retenue — parce que la règle de la source veut de l'**eau** partout sauf chez les Démons, et que prendre la variante démoniaque ferait de la case neutre la seule carte à lave sans propriétaire démon. ## ✅ Les bastions - **4 cases spéciales**, une par faction, placées **aux 4 coins de la grille 5×5** — distance maximale entre elles, disposition symétrique. - Un bastion **appartient toujours** à sa faction — la propriété **ne change jamais**, quel que soit le résultat des combats qui s'y déroulent. - Un bastion a des **bonus de ressources plus importants** qu'une case normale possédée par cette faction. - **Un bastion est jouable comme une carte normale** : on peut s'y battre, la faction associée y est avantagée mais peut quand même perdre le combat — simplement, la possession de la carte ne change pas pour autant. Voir `combat.md` pour ce que gagne l'attaquant dans ce cas (pillage). ## ✅ Capture d'une case (hors bastion) - Une carte **appartient à une faction, pas à un joueur**. N'importe qui peut donc s'y battre, indépendamment de qui possède la carte au moment du combat. - **La faction gagnante d'un combat remporte immédiatement la case** — pas de système de seuil ou d'influence progressive. (Une piste antérieure envisageait une bascule graduelle sur plusieurs jours réels ; elle n'est **pas retenue**, on part sur une capture immédiate.) - **Reprise libre** : aucun cooldown avant de recontester une case qui vient de changer de main. Choix simple, à revisiter si ça produit un ping-pong problématique en pratique. ## ✅ Persistance du Monument - Une victoire par Monument (voir `combat.md`) laisse un **Monument visible sur la carte du monde**, avec le **nom du joueur bâtisseur**. - Ce Monument **reste présent** même si la case change ensuite de main par une victoire militaire classique — une conquête militaire ordinaire ne l'efface pas. - **Seule une nouvelle victoire par Monument sur cette même case** remplace le Monument existant par le nouveau (nouveau nom affiché). ## ✅ Chaque case a son terrain, et il se voit — décidé le 2026-08-13 Le monde a 25 cases parce qu'elles ne sont **pas** interchangeables. Deux choses manquaient pour que ce soit vrai. **1. Les 25 cartes étaient la même carte.** Le tracé de la rivière et celui de la coulée étaient écrits en dur, en pour-cent de la carte : mesuré sur les 25 graines du monde, **279 cellules de fluide et une colonne moyenne de lit à 27,4 sur toutes**, seuls les arbres changeaient de place. Le relief et les ressources variaient, la **géographie** non — or c'est elle qui décide d'une partie. Les tracés serpentent désormais selon la graine (`serpenter`, ±9 % sur les points intermédiaires), et **les deux extrémités ne bougent pas** : la source naît toujours dans son coin, et les deux lits se rejoignent toujours dans la vasque centrale. Recouvrement des lits entre deux cases : **33 % en moyenne** (14 à 61 %) là où il était de 100 %. **2. On ne les voyait pas.** La carte du monde affichait 25 rectangles : on choisissait à la bannière et au nombre de joueurs qui attendaient, jamais au terrain. Chaque case porte maintenant la **vignette de sa vraie carte** — engendrée dans le navigateur avec la graine que le serveur range en base (`WorldCellView.seed`), à la taille où elle sera jouée, et peinte avec la palette de la minimap. ⚠️ Engendrer la vignette à une autre taille en ferait **une autre carte** : `mapgen` dépend de la largeur et de la hauteur. Jolie et fausse, donc pire que rien. La vignette change quand la case **change de main** : la variante suit la faction propriétaire, donc la géographie aussi. C'est ce qui rend la conquête lisible sur la carte du monde.