Chessistics/docs/GDD_prototype.md
Samuel Bouchet 2d1aea0a7a Snapshot campaign system progress before automation harness
Bundles in-flight work on the campaign/missions system (CampaignDef,
MissionDef, TerrainPatch, TransformerDef, MissionChecker, CampaignLoader,
FlavorBanner, transformer rules), plan files, and matching tests. Baseline
commit so the upcoming automation testing harness lands on a clean tree.
2026-04-16 21:22:49 +02:00

33 KiB

Chessistics — Game Design Document (Prototype)

"Et si la logistique etait contrainte par les echecs ?"

Version : 0.3 — Prototype Scope : 3 niveaux jouables, mecaniques de base uniquement


1. Vision

Chessistics est un jeu de logistique ou le joueur construit des chaines de transport sur un damier. Les unites de transport sont des pieces d'echecs : chacune fait un unique aller-retour entre deux cases, selon ses regles de mouvement. Le joueur assemble des pieces bout a bout pour former des convois qui acheminent des cargaisons des productions vers les demandes.

Chaque piece est un maillon de convoyeur. La strategie est dans la composition des chaines : quelles pieces, ou, dans quel ordre. Les contraintes de mouvement des echecs creent des puzzles de routage emergents — le joueur n'a pas a les "resoudre" explicitement, il developpe une intuition pour les forces de chaque piece.

Core loop :

OBSERVER le reseau en fonctionnement
    |
IDENTIFIER un goulet, une mission non remplie, ou une collision
    |
PLACER ou RETIRER des pieces (la simulation se met en pause automatiquement
pendant le placement, puis reprend)
    |
OBSERVER le resultat — le reseau s'adapte immediatement
    |
    +---> Le debit est insuffisant ? Reorganiser les chaines
    +---> La mission est remplie ? Avancer vers la mission suivante

La simulation tourne en continu. Le joueur ne "lance" jamais — il intervient sur un systeme vivant.

Ce qui distingue Chessistics :

  • La logistique (macro) : le joueur compose des chaines, choisit sa flotte, gere l'espace
  • Le puzzle chess (micro) : les contraintes de mouvement creent des enigmes de couverture et d'espacement emergentes
  • Le systeme de transfert automatique + statut social elimine toute programmation — le joueur pense reseau, pas code

2. Le plateau

2.1 La grille

Le plateau est un damier avec des cases claires et sombres alternees. Chaque case est identifiee par des coordonnees (colonne, ligne) : a1, b2, etc.

Taille par niveau :

  • Niveaux tutoriels : 4x4 a 6x6
  • Niveaux standard (post-proto) : 8x8+

2.2 Types de cases

Case Visuel Effet
Case claire Carre clair du damier Traversable normalement
Case sombre Carre sombre du damier Traversable (les Fous sont limites a une couleur)
Mur Case barree, gris fonce Bloque toutes les pieces sauf le Cavalier (qui saute)
Production Icone ressource + nom (ex: "Scierie") Produit M cargaisons par tour (M=1 a 4 selon le batiment). Le buffer max = M — les cargaisons non recuperees sont ecrasees au tour suivant. Donne automatiquement aux pieces adjacentes disponibles.
Demande Icone cible + nom (ex: "Depot") + jauge Recoit la cargaison d'une piece adjacente qui arrive avec un colis compatible. Accepte toujours un colis du bon type, meme si l'objectif est deja atteint.

2.3 Cargaison

Pour le prototype, deux types de cargaison (le niveau 3 en utilise deux, les niveaux 1-2 un seul) :

  • Bois (icone buche, couleur brune)
  • Pierre (icone bloc, couleur grise)

Une piece ne peut porter qu'une cargaison a la fois.


3. Les pieces

3.1 Concept fondamental : 1 piece = 1 maillon

Chaque piece fait un unique mouvement en aller-retour perpetuel entre deux cases :

Coup 1: [Depart] ═══► [Arrivee]    (transporte le colis si elle en a un)
Coup 2: [Depart] ◄═══ [Arrivee]    (revient a vide ou avec un colis)
Coup 3: [Depart] ═══► [Arrivee]    (repart)
...a l'infini

Le joueur place une piece en choisissant :

  1. Sa case de depart
  2. Sa case d'arrivee (parmi les cases atteignables en 1 mouvement legal)

C'est tout. Pas de programmation, pas de route multi-etapes. La piece fait l'aller-retour automatiquement.

3.2 Pieces disponibles dans le prototype

4 types. Chaque piece a un niveau (I, II, III…) qui determine sa puissance relative au sein d'un meme type. Dans le prototype, toutes les pieces sont de niveau fixe — le systeme de niveaux sera exploite dans les versions futures.

4 types :

Pion

        X
  X   [Pion]  X
        X
  • Se deplace de 1 case en ligne droite (horizontal ou vertical)
  • Ne peut pas traverser les murs ni les autres pieces
  • Statut social : 1 (le plus bas — recoit et donne en dernier)
  • Piece la moins chere, utile pour combler les maillons courts

Tour (niveau II)

        X
        X
  X X [Tour] X X
        X
        X
  • Se deplace de 1 ou 2 cases en ligne droite (horizontal ou vertical)
  • Ne peut pas traverser les murs ni les autres pieces
  • Statut social : 5

Fou (niveau II)

  X           X
    X       X
      [Fou]
    X       X
  X           X
  • Se deplace de 1 ou 2 cases en diagonale
  • Ne peut atteindre que les cases de sa couleur de depart (parite)
  • Ne peut pas traverser les murs ni les autres pieces
  • Statut social : 3

Cavalier

    X   X
  X       X
    [Cav]
  X       X
    X   X
  • Se deplace en L (2+1 ou 1+2 cases)
  • Saute par-dessus les murs et les autres pieces
  • Statut social : 3

Dame

  X       X       X
    X     X     X
      X   X   X
  X X X [Dame] X X X
      X   X   X
    X     X     X
  X       X       X
  • Se deplace de 1 ou 2 cases dans les 8 directions (horizontal, vertical et diagonal)
  • Combine les mouvements de la Tour et du Fou
  • Ne peut pas traverser les murs ni les autres pieces
  • Statut social : 7 (le plus eleve — prioritaire sur toutes les autres pieces)
  • Piece la plus puissante mais rare — force des choix strategiques

A statut egal, la piece de niveau le plus eleve est consideree superieure (ex: Tour II > Tour I, Fou III > Cavalier II). En cas d'egalite parfaite, le departage se fait par direction en sens horaire depuis la piece qui donne (voir 4.3).

3.3 Occupation et collision

  • Chaque piece occupe sa case actuelle (depart ou arrivee selon le coup)
  • Une piece bloque le passage des autres pieces (sauf le Cavalier qui saute)
  • Si deux pieces arrivent sur la meme case apres le mouvement, la piece de statut le plus eleve detruit l'autre. A statut egal, le niveau departage. A egalite parfaite (meme statut ET meme niveau), destruction mutuelle.
  • La piece survivante reste sur la case avec sa cargaison intacte. La cargaison des pieces detruites est perdue.
  • Les pieces detruites retournent immediatement dans le stock du joueur — il peut les replacer a tout moment.
  • En cas de collision, la simulation se met en pause automatique. La camera effectue un pan et zoom vers la zone de collision pour montrer ce qui s'est passe. Une notification apparait dans un coin de l'ecran pour expliciter l'evenement (ex: "Tour II detruite par Dame — retournee au stock").

4. Systeme de transfert

4.1 Le principe

Les colis se transmettent automatiquement entre entites adjacentes (4-connecte : haut, bas, gauche, droite). Le joueur ne gere pas les transferts — il gere l'espace.

Les transferts se produisent entre :

  • Production → Piece : la production donne a une piece adjacente sans colis
  • Piece → Piece : une piece avec colis donne a une piece adjacente sans colis
  • Piece → Demande : une piece avec colis compatible donne a une demande adjacente

4.2 Quand le transfert a lieu

Les transferts se resolvent avant le mouvement, dans la meme sequence de coup (voir §5.1). Une piece adjacente a une production prend le colis puis se deplace avec dans le meme tour.

Condition pour qu'un transfert ait lieu :

  • Une entite avec colis et une entite sans colis (ou une demande) sont sur des cases adjacentes (4-connecte)
  • Le colis est compatible (la demande accepte ce type de cargaison)

Le transfert est instantane au sein du tour.

4.3 Priorite et departage

Quand plusieurs transferts sont possibles au meme point, la priorite determine l'ordre :

Chaine de priorite : statut social (desc) → niveau de piece (desc) → direction en sens horaire.

Regle de don : parmi les pieces avec colis adjacentes a un meme receveur, celle de priorite la plus elevee donne en premier.

Regle de reception : parmi les pieces sans colis adjacentes a un meme donneur, celle de priorite la plus elevee recoit en premier.

Hierarchie de statut social (proto) :
  Dame      7
  Tour      5
  Fou       3
  Cavalier  3
  Pion      1

Departage par direction (en y-up, sens horaire) :

  • Coups pairs : priorite depuis 0° (droite) → droite, haut, gauche, bas
  • Coups impairs : priorite depuis 180° (gauche) → gauche, bas, droite, haut

Cette alternance empeche un biais permanent vers une direction et cree des patterns de routage dynamiques.

Exemple :

  Tour (colis) ─adjacent─ case vide ─adjacent─ Cavalier (vide)
									 ─adjacent─ Tour (vide)

La Tour avec colis donne. Deux receveurs possibles : Cavalier (3) et Tour (5). La Tour recoit (statut 5 > 3).

4.4 Pourquoi c'est un outil de design

Le statut social n'est pas une regle abstraite — c'est un outil de routage pour le joueur :

  • Aux croisements, le joueur choisit le TYPE de piece pour controler ou va le colis
  • Une Tour "capte" un colis avant un Cavalier — le joueur met une Tour sur la route prioritaire
  • Un Cavalier sur une route secondaire ne prend que les colis que personne d'autre ne veut

Le joueur n'ecrit pas de logique conditionnelle. Il compose sa flotte pour que le flux aille ou il veut.

4.5 Le puzzle d'espacement

Les pieces qui ne doivent PAS interagir doivent etre espacees d'au moins 2 cases. Sinon un transfert involontaire se produit.

PROBLEME — deux chaines trop proches, les colis se melangent :

  ──Tour A──►    ◄──Tour B──    (chaine 1 : bois)
  ──Tour C──►    ◄──Tour D──    (chaine 2 : pierre)
              ↕ adjacentes = transfert involontaire !

SOLUTION — espacer les chaines :

  ──Tour A──►    ◄──Tour B──    (chaine 1)
  .  .  .  .  .  .  .  .        (1 case d'ecart)
  ──Tour C──►    ◄──Tour D──    (chaine 2)

Gerer l'espace sur le plateau pour eviter les interferences EST le puzzle. Le joueur doit router ses chaines en tenant compte des contraintes de mouvement (echecs) ET de l'espacement (logistique).


5. Deroulement d'un coup

5.1 Sequence d'un coup

A chaque coup, toutes les pieces jouent chaque etape simultanement, dans cet ordre :

1. PRODUCTION : les cases de production remplissent leur buffer
   (M cargaisons, ecrase le buffer precedent — les restes sont perdus)

2. TRANSFERTS : tous les transferts automatiques se resolvent
   (productions → pieces, pieces → pieces, pieces → demandes)
   En respectant la chaine de priorite (statut → niveau → direction)

3. MOUVEMENT : toutes les pieces bougent simultanement
   (chaque piece avance de Depart→Arrivee ou de Arrivee→Depart)

4. RESOLUTION DE COLLISION : si deux pieces sont sur la meme case,
   la plus forte detruit les autres (voir 3.3)

5.2 Collisions

Quand deux pieces ou plus occupent la meme case apres le mouvement :

  • La piece de statut le plus eleve survit, les autres sont detruites
  • A statut egal, le niveau departage (niveau superieur survit)
  • A egalite parfaite (meme statut ET meme niveau), destruction mutuelle (aucun survivant)
  • La piece survivante conserve sa cargaison. Les cargaisons detruites sont perdues.
  • Les pieces detruites retournent immediatement dans le stock du joueur.
  • La simulation se met en pause automatique. La camera pan et zoom vers la zone de collision. Une notification explicite l'evenement.

Les collisions deviennent un element strategique — le joueur doit anticiper les croisements de trajectoires et espacer ses chaines pour les eviter.

5.3 Condition de completion de mission

La mission courante est completee quand toutes ses demandes ont ete satisfaites.

Chaque demande specifie : "recevoir N colis de type X".

Exemple : "Le Depot Royal demande 3 livraisons de Bois."

Il n'y a pas de deadline. Le compteur de tours est affiche comme metrique d'optimisation (le joueur voit combien de tours il a mis), mais ne constitue pas une contrainte. Le joueur prend le temps qu'il veut.


6. Les metriques

A la completion d'une mission, 3 metriques sont affichees :

Metrique Description Ce que ca mesure
Pieces Nombre de pieces deployees pour cette mission Economie de flotte
Coups Nombre de coups pour atteindre l'objectif Efficacite du reseau
Espace Nombre de cases du plateau utilisees (occupees par une piece au moins 1 coup) Compacite du reseau

Triangle d'optimisation :

  • Moins de pieces = chaines courtes = couverture limitee → plus de coups
  • Moins de coups = pieces puissantes ou nombreuses → plus de pieces, plus d'espace
  • Moins d'espace = chaines compactes = risque d'interferences → plus difficile a router

Affichage en jeu (pendant la simulation) :

  Tour: 12    Depot Royal: 2/3 Bois ✓    Forge: 0/2 Pierre ✗

7. Interface utilisateur

7.1 Ecran de jeu — layout

Le plateau est le centre. L'interface est minimale.

+---------------------------------------------------------------+
|  CHESSISTICS        La Quete du Roi           [≡]  [?]  [←]  |
+---------------------------------------------------------------+
|                                              |                 |
|                                              |  MISSION 3/8     |
|                                              |  Forger les Tours |
|                                              |  Depot: 0/3 Bois |
|           P L A T E A U                      |  ✓ Mission 1     |
|         (damier interactif)                  |  ✓ Mission 2     |
|                                              |  ─────────       |
|    Les pieces et leurs trajets               |                 |
|    sont visibles sur le plateau              |  PIECES          |
|                                              |  [Pion I]   x4   |
|                                              |  [Tour I]   x3   |
|                                              |                 |
+---------------------------------------------------------------+
|  [⏸ / ▶]  [x1] [x2] [x4]          Tour: 42   Mission: 3/8  |
+---------------------------------------------------------------+

7.2 Placement d'une piece

Le flux de placement est en 2 clics. La simulation se met en pause automatiquement des que le joueur selectionne un type de piece, et reprend une fois le placement confirme ou annule.

  1. Le joueur selectionne un type de piece dans le panneau de droite → pause automatique
  2. Il clique une case du plateau → c'est le point de depart. Les cases d'arrivee possibles s'affichent en surbrillance.
  3. Il clique une case en surbrillance → c'est le point d'arrivee. La piece est placee. → la simulation reprend
  4. Un trait apparait entre depart et arrivee, montrant le trajet.

Si le joueur annule (Echap), la simulation reprend sans placement.

  Placement d'une Tour II :

  1. Clic sur (a1)         2. Cases atteignables      3. Clic sur (c1)
                               en surbrillance

  .  .  .  .               .  .  .  .                .  .  .  .
  .  .  .  .               .  .  .  .                .  .  .  .
  .  .  .  .               [.][.] .  .                .  .  .  .
  [T] .  .  .              [T][■][■] .                [T]══════[·]
                            ^  a1 a2                   a1       c1
                            haut1 haut2 aussi

Interactions :

  • Clic gauche sur une piece placee → la selectionne, affiche son trajet, panneau de detail
  • Touche Suppr (piece selectionnee) → la retire du plateau (retourne dans le stock)
  • Bouton [Retirer] dans le panneau de detail → meme effet

7.3 Visualisation des trajets

Chaque piece placee affiche son trajet sur le plateau :

  • Trait semi-transparent entre depart et arrivee (couleur unique par piece)
  • Fleches indiquant le sens du mouvement
  • La piece oscille visuellement entre ses deux cases pendant la simulation

Quand plusieurs chaines sont en place, le joueur voit le reseau complet :

  [S]═══Tour A═══[·]  [·]═══Tour B═══[·]  [·]═══Tour C═══[D]
   Scierie         relais              relais              Depot

7.4 Panneau de detail (contextuel)

Quand une piece est selectionnee :

+---------------------------+
| TOUR A (Tour II)          |
| Trajet: a1 ↔ c1 (2 cases)|
| Statut social: 5          |
| Porte: [Bois]             |
| [Retirer]                 |
+---------------------------+

7.5 Simulation continue

La simulation tourne en continu — il n'y a pas de phases Edit/Exec separees. Le joueur modifie son reseau a tout moment, la simulation integre les changements au tour suivant.

Controles :

  • Espace : pause / reprendre (le tour en cours se termine avant la pause)
  • Vitesse : x1, x2, x4
  • Placement d'une piece : met la simulation en pause automatiquement le temps du placement (voir §7.2)

Pauses automatiques :

  • Quand le joueur selectionne une piece a placer → pause jusqu'a confirmation ou annulation
  • Quand une collision se produit → pause + pan/zoom camera vers la zone + notification (voir §5.2)

Le joueur peut placer, retirer et reorganiser ses pieces a tout moment, en pause ou pendant que la simulation tourne.

7.6 Feedback visuel

Pieces :

  • Glissement fluide d'une case a l'autre (~0.3s)
  • Cavalier : arc leger pendant le saut (~0.4s)
  • Cargaison visible sur la piece (petit cube colore au-dessus)
  • Piece sans colis = silhouette normale. Piece avec colis = silhouette + cube.

Transferts :

  • Quand un colis passe d'une piece a l'autre : animation de "lancer-rattraper" entre les deux (le cube glisse d'une piece a l'autre, ~0.2s)
  • Flash subtil sur le receveur

Productions et demandes :

  • Les productions pulsent quand elles generent un colis
  • Les demandes ont une jauge de progression (ex: "2/3")
  • Jauge verte = objectif atteint. Jauge rouge = pas encore.

Collisions :

  • Flash rouge + shake des deux pieces
  • Simulation en pause automatiquement
  • La camera pan et zoom vers la zone de collision
  • Notification dans un coin de l'ecran : "Tour II detruite par Dame — retournee au stock"
  • La piece detruite retourne dans le stock, le joueur peut la replacer

Completion de mission :

  • Toutes les jauges au vert → animation sobre (les trajets scintillent en dore)
  • Overlay de felicitations avec metriques de la mission
  • Bouton "Mission suivante" pour avancer

Transition de mission :

  • Titre "Nouvelle mission" apparait en plein ecran en fade-in
  • La camera se lock (pan et zoom desactives) pour montrer la zone de la prochaine mission
  • Les nouvelles cases apparaissent sur le plateau avec une animation d'expansion
  • Le titre de mission se deplace vers la zone d'objectif dans le panneau lateral avant de disparaitre, emmenant l'oeil du joueur vers les nouveaux objectifs

8. Les 6 niveaux du prototype

Niveau 1 — "Premier Convoi"

Intention : apprendre a placer une piece et voir la chaine fonctionner. Le joueur decouvre que les pieces sont des maillons.

  4  .  .  .  .
  3  .  .  .  .
  2  .  .  .  .
  1 [S] .  .  [D]

     a  b  c  d
  • Plateau : 4x4
  • S = Scierie (a1, produit du Bois 1 par tour)
  • D = Depot Royal (d1, objectif : recevoir 3 Bois en 30 coups)
  • Pieces disponibles : 3x Tour II

Le probleme : La Scierie est en a1, le Depot en d1. Distance : 3 cases. Une Tour II ne se deplace que de 2 cases max. Aucune piece seule ne peut couvrir le trajet.

Le joueur doit enchainer 2 Tours minimum :

  [S]═══Tour A═══[·]───Tour B───[D]
   a1             c1              d1
        (2 cases)     (1 case)

Tour A : a1 ↔ c1 (2 cases). Tour B : c1 ↔ d1 (1 case).

Mais c1 est l'arrivee de Tour A ET le depart de Tour B. Les deux pieces se croisent en c1 → le colis se transmet automatiquement.

Probleme : Tour A et Tour B ne peuvent pas etre sur c1 au meme coup (collision). Le joueur decouvre que les pieces doivent etre decalees :

  • Tour A est en a1 → Tour B est en d1 (pas de conflit)
  • Tour A avance en c1 → Tour B avance en c1 → collision !

Solution : Tour A couvre a1↔c1, Tour B couvre d1↔c1 (meme case mais direction opposee). Coup 1 : A va en c1, B va en c1 → collision. Il faut decaler.

Vraie solution : Tour A couvre a1↔b1 (1 case). Tour B couvre b1↔d1 (2 cases). Decales dans le temps, ils ne sont jamais sur b1 en meme temps car A est en b1 quand B est en d1, et inversement.

Ou : Tour A couvre a1↔c1 (2 cases), Tour B couvre c1↔d1 (1 case). Ils ne sont jamais sur c1 ensemble si les arrivees alternent. A verifier dans la simulation.

Note de design : ce premier niveau est volontairement simple en apparence mais contient deja le puzzle fondamental du jeu — l'espacement et le timing des maillons. Si le joueur place naïvement, ca collisionne. Il apprend en observant.

Objectif pedagogique :

  • Placer une piece (2 clics : depart + arrivee)
  • Comprendre qu'une piece = un maillon, pas un convoi complet
  • Decouvrir le transfert automatique entre pieces adjacentes
  • Premiere rencontre avec le probleme de collision/timing

Niveau 2 — "Deux Clients"

Intention : premier choix logistique. Le joueur decide comment organiser 2 chaines a partir d'une seule source.

  6  .  .  .  .  .  .
  5  .  .  .  .  . [D2]  Caserne — 2 Bois  4  .  .  .  .  .  .
  3  .  .  .  .  .  .
  2  .  .  .  .  .  .
  1 [S] .  .  .  . [D1]  Depot Royal — 2 Bois
     a  b  c  d  e  f
  • Plateau : 6x6
  • S = Scierie (a1, produit du Bois 1 par tour)
  • D1 = Depot Royal (f1, objectif : 2 Bois en 30 coups)
  • D2 = Caserne (f5, objectif : 2 Bois en 30 coups)
  • Pieces disponibles : 4x Tour II, 1x Fou II

L'enjeu :

  • S→D1 : 5 cases en ligne droite. Faisable avec une chaine de Tours.
  • S→D2 : trajet en angle (droite + haut). Plusieurs routes possibles.
  • La Scierie ne produit qu'un colis 1 par tour. Les deux chaines partagent la meme source.
  • Le joueur doit decider : comment repartir les colis entre les deux destinations ?

Le statut social entre en jeu : Si le joueur place une Tour (statut 5) vers D1 et un Fou (statut 3) vers D2, tous deux adjacents a la Scierie → la Tour recoit le colis en priorite. D1 est servie en premier, D2 attend.

Le joueur peut inverser la priorite en mettant le Fou vers D1 et la Tour vers D2.

Ou il espace ses chaines pour que chaque direction ait son propre premier maillon adjacent a la Scierie, et alterne naturellement.

Le Fou en diagonale : Le Fou peut couvrir des trajets diagonaux que les Tours ne peuvent pas. Pour atteindre D2 (f5), une route diagonale via le Fou pourrait etre plus courte. Mais le Fou ne peut atteindre que les cases de sa couleur — le joueur decouvre cette contrainte par l'experimentation.

Objectif pedagogique :

  • Premiere decision logistique : repartir le flux
  • Decouvrir le statut social comme outil de routage
  • Decouvrir la contrainte de parite du Fou
  • Gerer deux chaines simultanees partageant une source
  • Sensation de "je concois MON reseau"

Niveau 3 — "Le Col"

Intention : un vrai reseau avec terrain, 2 types de cargaison, et le Cavalier comme solution aux obstacles.

  6 [D2] .  .  .  . [D1]   Depot Royal — 2 Bois  5  .  .  #  #  #  .      Forge — 2 Pierre  4  .  .  #  .  .  .
  3  .  .  #  .  .  .
  2  .  .  .  .  .  .
  1 [S1] .  .  .  . [S2]   Scierie (Bois)
							Carriere (Pierre)
	 a  b  c  d  e  f
  • Plateau : 6x6
  • S1 = Scierie (a1, Bois, 1 par tour)
  • S2 = Carriere (f1, Pierre, 1 par tour)
  • D1 = Depot Royal (f6, objectif : 2 Bois en 40 coups)
  • D2 = Forge (a6, objectif : 2 Pierre en 40 coups)
  • Murs : c3, c4, c5, d5, e5 (barriere en L)
  • Pieces disponibles : 4x Tour II, 1x Fou II, 2x Cavalier

L'enjeu logistique :

Le mur en L coupe le plateau. Les deux routes (S1→D1 et S2→D2) traversent le plateau en diagonale et doivent contourner ou franchir le mur.

Route S1(Bois) → D1(Depot) : a1 → f6

  • Par le bas : a1→f1→f6. Chaine de Tours le long du bord. Long mais faisable.
  • Via le Cavalier : le Cavalier saute le mur. Plus court mais statut social 3, il perd la priorite face aux Tours.

Route S2(Pierre) → D2(Forge) : f1 → a6

  • Meme probleme en miroir, sens inverse.
  • Les deux routes se croisent → risque de transferts involontaires !

Le puzzle de croisement : Si les chaines Bois et Pierre passent par les memes cases intermediaires, les colis risquent de partir dans la mauvaise direction. Le joueur doit :

  • Soit espacer les chaines (routes differentes, chaines separees)
  • Soit utiliser le statut social pour diriger les colis (une Tour capte avant un Cavalier)
  • Soit decaler temporellement les chaines (pieces de portees differentes)

Le Cavalier comme pont : Le Cavalier saute le mur en L. Il peut connecter les deux cotes du plateau la ou les Tours et Fous sont bloques. C'est la piece "speciale" de ce niveau — chere en slot mais indispensable pour certaines routes.

Objectif pedagogique :

  • 2 types de cargaison = flux separes a ne pas melanger
  • Le mur force des choix de flotte non triviaux
  • Le Cavalier comme outil unique (saut)
  • Le puzzle de croisement : gerer les interferences entre chaines
  • Le joueur sent qu'il gere un reseau de transport complet

Niveau 4 — "Le Carrefour"

Intention : premier plateau 8x8, deux cargaisons en diagonale, un bloc de murs au centre force le contournement.

  8  .  .  .  .  .  .  .  .
  7 [D2] .  .  .  .  .  .  .     Forge — 3 Pierre  6  .  .  .  .  .  .  .  .
  5  .  .  .  ##  .  .  .  .
  4  .  .  .  ##  .  .  .  .
  3  .  .  .  .  .  .  .  .
  2  .  .  .  .  .  .  .  .
  1 [S1] .  .  .  .  .  . [D1]   Depot Royal — 3 Bois
     a  b  c  d  e  f  g  h
                             [S2] Carriere (h8)
  • Plateau : 8x8
  • S1 = Scierie (a1, Bois), S2 = Carriere (h8, Pierre)
  • D1 = Depot Royal (h1, 3 Bois), D2 = Forge (a8, 3 Pierre)
  • Murs : bloc 2x2 au centre (d4, e5, d5, e4)
  • Stock : 8 Pions, 4 Tours, 2 Fous, 2 Cavaliers

L'enjeu : les routes Bois (a1→h1) et Pierre (h8→a8) se croisent en diagonale. Le bloc central empeche la ligne droite. Le joueur decouvre le Pion comme maillon economique.


Niveau 5 — "Le Labyrinthe"

Intention : des murs verticaux creent des couloirs etroits. Les Cavaliers sont essentiels pour enjamber les obstacles.

  6 [S2] .  #  .  #  .  #  .     Carriere (a6)
  5  .  .  #  .  #  .  #  .
  4  .  .  #  .  #  .  . [D1]    Depot Royal — 3 Bois  3  .  .  #  .  .  .  #  .
  2  .  .  .  .  #  .  #  .
  1 [S1] .  .  .  #  .  . [D2]   Forge — 3 Pierre
	 a  b  c  d  e  f  g  h
  • Plateau : 8x6
  • S1 = Scierie (a1, Bois), S2 = Carriere (a6, Pierre)
  • D1 = Depot Royal (h6, 3 Bois), D2 = Forge (h1, 3 Pierre)
  • Murs : 3 colonnes partielles formant un labyrinthe
  • Stock : 10 Pions, 4 Tours, 2 Fous, 3 Cavaliers

L'enjeu : les murs fragmentent le plateau en couloirs. Seul le Cavalier saute par-dessus. Le joueur doit combiner Pions (relais courts dans les couloirs) et Cavaliers (ponts entre couloirs).


Niveau 6 — "Trois Royaumes"

Intention : reseau a 3 productions et 3 demandes, plateau 10x8. Le joueur gere un vrai reseau logistique.

  8 [S2] .  .  #  .  .  #  .  . [D2]   Forge — 3 Pierre  7  .  .  .  #  .  .  #  .  .  .
  6  .  .  .  #  ##  .  #  .  .  .
  5  .  .  .  .  .  .  .  .  .  .
  4  .  .  .  #  ##  .  #  .  . [S3]   Scierie Est (j4, Bois)
  3  .  .  .  #  .  .  #  .  .  .
  2  .  .  .  .  .  .  .  .  .  .
  1 [S1] .  .  .  [D3] .  .  .  . [D1]  Depot Royal — 3 Bois
     a  b  c  d  e  f  g  h  i  j
  • Plateau : 10x8
  • S1 = Scierie (a1, Bois), S2 = Carriere (a8, Pierre), S3 = Scierie Est (j4, Bois)
  • D1 = Depot Royal (j1, 3 Bois), D2 = Forge (j8, 3 Pierre), D3 = Chantier (e8, 3 Bois)
  • Murs : deux colonnes avec pont horizontal
  • Stock : 14 Pions, 6 Tours, 3 Fous, 4 Cavaliers

L'enjeu : le joueur doit decider comment repartir les productions entre les demandes. S1 et S3 produisent du Bois mais sont loin l'une de l'autre. Les murs creent trois "royaumes" et le joueur doit construire un reseau d'interconnexion.


9. Direction artistique (prototype)

Le prototype vise la lisibilite.

Palette :

  • Damier : beige clair (#F0D9B5) / brun (#B58863)
  • Murs : gris fonce (#555555)
  • Productions : vert doux avec pulsation
  • Demandes : or/jaune avec jauge
  • Trajets : couleur unique par piece (bleu, rouge, violet, orange)
  • Fond : gris neutre (#2D2D2D)

Pieces :

  • Silhouettes 2D classiques des pieces d'echecs (vectorielles)
  • Couleur correspondant au trajet
  • Cargaison = petit cube colore au-dessus (brun = Bois, gris = Pierre)

Trajets sur le plateau :

  • Trait semi-transparent entre depart et arrivee
  • Fleches directionnelles
  • Le trait pulse legerement quand la piece est en mouvement

Animations :

  • Tour/Fou : glissement lineaire (~0.3s)
  • Cavalier : arc de saut (~0.4s)
  • Transfert de colis : le cube glisse d'une piece a l'autre (~0.2s)
  • Collision : flash rouge + shake
  • Victoire : trajets scintillent en dore

10. Choix technique : Godot 4 + C#

Pourquoi Godot 4

Critere Godot 4 MonoGame
Licence MIT (libre) MIT (libre)
Langage C# (.NET) C# (.NET)
Systeme UI Nodes Control natifs A construire from scratch
TileMap Integre A implementer
Tweens Natifs A implementer
Export Win, Linux, Mac, Web Win, Linux, Mac

Architecture suggeree

Chessistics/
  scenes/
	Main.tscn
	Board/
	  Board.tscn             — Le damier
	  Cell.tscn              — Une case
	Pieces/
	  Piece.tscn             — Scene piece (silhouette + cube cargaison)
	  TrajectView.tscn       — Trait visuel du trajet (Line2D)
	UI/
	  ObjectivePanel.tscn    — Objectifs + stock de pieces
	  DetailPanel.tscn       — Detail piece selectionnee
	  ControlBar.tscn        — Pause / vitesse
	  MetricsOverlay.tscn    — Resultats post-victoire
	  LevelSelect.tscn       — Selection de niveau
  scripts/
	Core/
	  Board.cs               — Grille, cases, adjacence
	  Cell.cs                — Type de case, contenu
	  Piece.cs               — Type, statut, mouvement, cargaison
	  PieceType.cs           — Enum + regles de mouvement + statut social
	  TransferResolver.cs    — Logique de transfert (adjacence, priorite, statut)
	  Executor.cs            — Moteur de simulation (coups, collisions, transferts)
	Data/
	  Level.cs               — Definition d'un niveau
      LevelLoader.cs         — Chargement JSON
    UI/
      PiecePlacer.cs         — Logique du placement 2 clics
      ControlBar.cs          — Pause/vitesse
      ProgressDisplay.cs     — Compteur de coups + progression objectifs
  data/
    levels/
      level_01.json
      level_02.json
      level_03.json

Format d'un niveau (JSON)

{
  "id": 1,
  "name": "Premier Convoi",
  "description": "Acheminez du bois de la scierie au depot.",
  "width": 4,
  "height": 4,
  "productions": [
	{ "x": 0, "y": 0, "name": "Scierie", "cargo": "wood", "amount": 1 }
  ],
  "demands": [
	{ "x": 3, "y": 0, "name": "Depot Royal", "cargo": "wood", "amount": 3 }
  ],
  "walls": [],
  "pieces": [
	{ "type": "rook", "level": 2, "count": 3 }
  ]
}

11. Risques et questions ouvertes

Question Options Decision proto
Adjacence pour transfert ? 4-connecte (bords) vs 8-connecte (bords + coins) 4-connecte — plus de contrainte = plus de puzzle
La piece tourne a vide ? Oui (aller-retour permanent) vs attend un colis Oui, tourne en permanence — plus visuel, plus simple
Collision = destruction ? Destruction (fort mange faible) vs erreur stricte (pause) Destruction + retour au stock — la piece de plus haut statut/niveau survit, les autres retournent au stock. Pause auto + camera pan vers la collision + notification. Destruction mutuelle si egalite parfaite.
Sources infinies ? Oui (production periodique sans stock) vs stock limite Production periodique infinie — le proto teste le reseau, pas la gestion de stock
Pieces fixes par niveau ? Fixes (catalogue impose) vs achat libre Fixes — plus facile a designer. L'achat/fabrication est post-proto.
Egalite de statut social ? Niveau > direction horaire Niveau puis direction horaire alternee (pairs: depuis droite, impairs: depuis gauche) — deterministe, pas de biais permanent

12. Lore

Les pions sont en manque d'un roi. Ils vont se mettre a produire toutes les pieces intermediaires car ils en ont besoin pour aller chercher plus loin les ressources requises pour fabriquer le roi. A la fin, le roi execute tout le monde. Game over.