Arborescence

Parcours de formation

Créer des cartes de jeu par le code

Génération procédurale : décrire un monde par des règles, puis le vérifier.

8 h 30Dès 13 ans, joueurs, initiation au code utile5 fiches

Un jeu de stratégie qui propose une carte différente à chaque partie ne la dessine pas : il la génère. Ce parcours part de cette idée et va jusqu'au bout — décrire un monde par des règles, comprendre comment une grille de cases devient un relief, savoir ce qui rend une carte jouable ou injouable, puis vérifier tout cela par le code sans lancer le jeu. Aucun prérequis en programmation : les notions sont introduites sur papier avant d'être écrites. Le fil conducteur est un outil réel, développé et documenté, dont le code est ouvert.

—Sommaire

  1. Générer un monde plutôt que le dessiner1 h 30
  2. La grille, matière première du terrain1 h 30
  3. L'équilibre : ce qui rend une carte jouable1 h 30
  4. Vérifier par le code, sans lancer le jeu2 h
  5. Lire le code des autres, dans les deux sens2 h

Cartes procédurales

Générer un monde plutôt que le dessiner

Ce que veut dire « procédural », et pourquoi une règle vaut mieux qu'un dessin.

1 h 30Dès 13 ans, joueurs, curieux du codeFiche M1

01Objectif

À la fin de cette séquence : Distinguer une carte dessinée d'une carte générée, expliquer le rôle de la graine aléatoire, et décrire une carte sous forme de règles plutôt que de contenu.

02L'essentiel

Dessiner, c'est produire un résultat ; générer, c'est produire une règle

Une carte dessinée est un objet fini : elle sera identique à chaque partie. Une carte générée est une recette — « une montagne au centre, percée de trois passages » — que la machine interprète différemment à chaque lancement. Le travail se déplace du contenu vers la contrainte.

La graine rend le hasard reproductible

Un générateur ne tire pas un hasard pur : il part d'un nombre, la graine. Même graine, même carte, à l'identique. C'est ce qui permet à huit joueurs en réseau de voir exactement le même terrain, et à un développeur de rejouer un bug.

Le vrai métier : contraindre sans figer

Trop de contraintes et toutes les parties se ressemblent ; trop peu et la carte devient injouable. Un générateur réussi produit des cartes différentes mais toutes équitables — c'est un travail d'équilibriste, pas de dessinateur.

Une carte se décrit par couches successives

On pose d'abord un terrain de base, puis le relief, puis l'eau, puis les ressources, puis les joueurs. Chaque couche écrase partiellement la précédente : l'ordre change le résultat. Une rivière tracée après les départs ne recouvre pas les mêmes cases qu'une rivière tracée avant.

03Le schéma

1Terrain de base2Relief3Eau et ponts4Ressources5Départs joueurs
L'ordre n'est pas cosmétique : chaque couche peut recouvrir la précédente. Inverser deux étapes produit une autre carte, parfois cassée.

04À retenir

  • Une carte générée est une règle, pas un dessin. On décrit des contraintes, la machine produit le résultat.
  • Même graine, même carte. C'est ce qui rend le multijoueur et le débogage possibles.
  • L'ordre des couches compte autant que les couches elles-mêmes.

05Exercice

Prenez une carte de jeu que vous connaissez. Écrivez-la en cinq règles maximum, sans jamais nommer un lieu précis. Exemple : « deux camps séparés par une rivière, franchissable en deux points ». Faites lire vos règles à quelqu'un : dessine-t-il la même carte que vous ?

Indice — Si votre voisin dessine autre chose, ce n'est pas un échec — c'est exactement ce que fait le générateur. La question est de savoir si sa version reste jouable.

06Vérification des acquis

Pourquoi ne pas simplement utiliser un hasard pur ?

Parce qu'il serait impossible de rejouer la même carte. Sans graine, deux joueurs en réseau généreraient des terrains différents, et un bug observé une fois serait introuvable.

Qu'est-ce qui distingue une bonne carte générée d'une mauvaise ?

L'équité malgré la variation. Chaque partie doit être différente, mais aucun joueur ne doit se retrouver enclavé ou privé de ressources par le tirage.

Cartes procédurales

La grille, matière première du terrain

Comment un tableau de cases devient une montagne, une rivière ou une forêt.

1 h 30Dès 13 ansFiche M2

01Objectif

À la fin de cette séquence : Manipuler une grille en deux dimensions, comprendre la notion de type de terrain, et faire croître une zone depuis un point de départ.

02L'essentiel

Une carte, c'est un tableau à deux entrées

Ligne et colonne. Chaque case contient une étiquette : plaine, montagne, rivière. Rien de plus. Toute la richesse visuelle du jeu est reconstruite ensuite à partir de ces étiquettes — la grille est un plan, pas une image.

Le type de terrain porte bien plus que sa couleur

Une étiquette décide de la hauteur du sol, du fait qu'on puisse marcher dessus, et parfois de ce qui y pousse. Une case « or » ne dessine pas de l'or : elle déclenche l'apparition d'un gisement dans un rayon autour d'elle.

Faire croître une zone plutôt que la dessiner

Pour créer une île ou un massif, on ne trace pas un contour : on part d'une case et on s'étend de proche en proche, un certain nombre de fois. Un paramètre règle la forme : compacte et ronde, ou ramifiée et découpée.

Le franchissable et l'infranchissable

C'est la distinction structurante. Une montagne infranchissable est un mur ; un bosquet ordinaire ne l'est pas. Confondre les deux, c'est croire avoir fermé un passage qui reste ouvert — ou l'inverse, enfermer un joueur sans le vouloir.

03Le schéma

Types de terrainFranchissablePlaineCollinesPlateauBloquantMontagne infranchissableBosquet denseRivièreDéclencheurCase ressourceDépart joueurSite neutre
Trois familles, trois rôles. Les cases « déclencheur » ne dessinent rien : elles font apparaître des objets autour d'elles au moment de la génération.

04À retenir

  • Une case ne contient qu'une étiquette. Le décor est reconstruit à partir d'elle.
  • Croître, ne pas tracer. Une zone naturelle s'obtient par expansion depuis un point.
  • Franchissable ou non : c'est la propriété qui décide de la jouabilité.

05Exercice

Sur une feuille quadrillée de 20 × 20, posez un point au centre et coloriez de proche en proche 40 cases, en choisissant au hasard une case voisine à chaque fois. Recommencez en vous interdisant de vous éloigner de plus de 5 cases du centre. Comparez les deux formes.

Indice — La première part en filaments, la seconde reste compacte. C'est exactement le paramètre de forme des générateurs : liberté d'expansion contre compacité.

06Vérification des acquis

Pourquoi une carte se code-t-elle en étiquettes plutôt qu'en images ?

Parce qu'une étiquette porte du sens exploitable : on peut demander « toutes les cases franchissables » ou « toutes les cases voisines d'une rivière ». Une image ne répond pas à ces questions.

Que change le paramètre de forme lors d'une croissance ?

Il décide si l'on consomme la frontière dans l'ordre — ce qui donne une masse ronde et compacte — ou au hasard, ce qui donne une forme ramifiée, découpée, d'aspect plus naturel.

Cartes procédurales

L'équilibre : ce qui rend une carte jouable

Accessibilité, goulets, ressources : les trois pièges qui cassent une carte.

1 h 30Dès 13 ans, joueurs de stratégieFiche M3

01Objectif

À la fin de cette séquence : Vérifier qu'une carte est jouable avant de la tester, en contrôlant l'accessibilité, la praticabilité et la répartition des ressources.

02L'essentiel

Le défaut le plus grave est invisible à l'œil

Une carte peut être magnifique et injouable : un joueur enfermé derrière un relief, ou deux camps qui ne peuvent pas se rejoindre. On ne le voit pas en regardant — on le vérifie en parcourant la carte de proche en proche depuis chaque départ.

Un goulet n'existe que s'il est vraiment étroit

Un passage censé être un point de passage obligé perd tout son sens s'il en existe un second à côté, ou si le relief qui l'entoure est franchissable. Compter les passages réels vaut mieux que compter ceux qu'on a voulu créer.

La proportion praticable est un signal fiable

En dessous d'un tiers de terrain praticable, une carte terrestre devient étouffante. Mais le seuil dépend du type : une carte navale est majoritairement de l'eau sans être cassée pour autant — juger sans contexte produit de faux diagnostics.

L'équité prime sur la symétrie

Une carte parfaitement symétrique est équitable mais ennuyeuse. L'objectif est que chaque joueur dispose d'un accès comparable aux ressources et d'une exposition comparable aux attaques, sans que les positions soient identiques.

03Le schéma

✕ Carte casséeUn départ enclavéRivière sans aucun pontTrop peu de terrain praticableRessources toutes du même côtéGoulet contournable ailleurs✓ Carte saineTous les départs reliésChaque coupure a son passagePraticabilité adaptée au typeAccès comparable aux ressourcesLes goulets sont les seuls passages
Les cinq contrôles se vérifient par le calcul, avant de lancer la moindre partie.

04À retenir

  • Vérifier l'accessibilité d'abord. Une carte où un joueur est enfermé est perdue, quelle que soit sa beauté.
  • Compter les passages réels, pas ceux qu'on a voulu créer.
  • Le seuil de praticabilité dépend du type de carte : une carte navale n'est pas une carte cassée.

05Exercice

Reprenez votre carte quadrillée. Choisissez quatre cases de départ. Depuis la première, coloriez toutes les cases franchissables atteignables de proche en proche. Les trois autres départs sont-ils dans la zone coloriée ?

Indice — Cette opération s'appelle un parcours en largeur. C'est exactement ce que fait un vérificateur automatique — et c'est le seul moyen sûr de détecter un joueur enclavé.

06Vérification des acquis

Comment détecter un départ enclavé sans lancer le jeu ?

En partant de ce départ et en s'étendant de proche en proche à toutes les cases franchissables. Si les autres départs ne sont pas atteints, ils sont isolés.

Pourquoi une carte navale n'est-elle pas jugée comme une carte terrestre ?

Parce que l'eau y est un moyen de transport, pas un obstacle. Des départs séparés par la mer y sont normaux, alors que sur une carte terrestre ce serait un défaut bloquant.

Cartes procédurales

Vérifier par le code, sans lancer le jeu

Simuler, mesurer, corriger : la boucle courte qui fait gagner des heures.

2 hDès 14 ans, initiation au code utileFiche M4

01Objectif

À la fin de cette séquence : Comprendre l'intérêt d'un simulateur maison, savoir ce qu'il peut prouver et ce qu'il ne peut pas, et lire un rapport d'analyse automatique.

02L'essentiel

Tester dans le jeu coûte des minutes ; simuler coûte des millisecondes

Lancer le jeu, charger une partie, observer, quitter : plusieurs minutes par essai. Reproduire la génération dans un petit programme permet de tester cent variantes dans le temps d'un seul essai réel.

Une approximation utile vaut mieux qu'une exactitude impossible

Le simulateur ne reproduit pas le moteur du jeu au pixel près — il n'en a pas les moyens. Mais il reproduit fidèlement la structure : où est le relief, où passent les couloirs, qui démarre où. C'est suffisant pour repérer une carte cassée.

Mesurer, c'est transformer une impression en fait

« La carte a l'air encombrée » n'est pas exploitable ; « 31 % de terrain praticable » l'est. Un rapport chiffré permet de comparer deux versions et de savoir si un réglage a amélioré ou dégradé la carte.

Un outil honnête dit ce qu'il ne sait pas

Le pire défaut d'un vérificateur est de deviner en silence. Devant une instruction qu'il ne reconnaît pas, il doit la signaler plutôt que l'ignorer — sinon il rend un rapport rassurant sur une carte qu'il n'a pas comprise.

03Le schéma

Boucle courte1Décrire la carte2Simuler3Lire le rapport4Corriger un réglage
Quelques secondes par tour. Le jeu n'intervient qu'à la toute fin, pour la validation réelle — et non plus à chaque essai.

04À retenir

  • La boucle courte change la méthode : on explore au lieu de deviner.
  • Le simulateur prouve la structure, pas le rendu final. Connaître cette limite évite les mauvaises surprises.
  • Un chiffre remplace une impression et rend deux versions comparables.

05Exercice

Prenez une carte que vous avez décrite en règles. Faites-en trois variantes en changeant un seul paramètre à chaque fois (le nombre de passages, la taille du relief, le nombre de ponts). Prédisez par écrit l'effet de chaque changement avant de le tester.

Indice — L'écart entre votre prédiction et le résultat est l'information la plus précieuse : c'est exactement là que se cache une hypothèse fausse sur le fonctionnement du générateur.

06Vérification des acquis

Pourquoi ne pas viser un simulateur parfaitement fidèle ?

Parce que reproduire un moteur de jeu complet demanderait plus de travail que la carte elle-même, pour un gain nul : les défauts que l'on cherche — enclavement, coupure, goulet manquant — sont visibles sur une approximation structurelle.

Que doit faire un vérificateur devant une instruction inconnue ?

La signaler explicitement. Ignorer en silence produit un rapport faussement rassurant sur une carte que l'outil n'a pas comprise.

Cartes procédurales

Lire le code des autres, dans les deux sens

Écrire un générateur est une chose ; comprendre celui d'un autre en est une autre.

2 hDès 14 ans, prolongement PythonFiche M5

01Objectif

À la fin de cette séquence : Analyser un script de génération existant, en extraire l'intention, et comprendre pourquoi une représentation intermédiaire évite de tout réécrire.

02L'essentiel

Lire du code est une compétence distincte de l'écrire

Devant le script d'un autre, on ne cherche pas la syntaxe mais l'intention : quelles couches, dans quel ordre, avec quelles contraintes. Le reste n'est que la manière de l'exprimer.

Le même effet s'écrit de dix façons

Trois passages peuvent être une boucle, ou une liste écrite à la main. Les positions peuvent être des nombres ou des variables calculées. Un lecteur — humain ou programme — doit reconnaître l'intention derrière ces styles.

La représentation intermédiaire, pivot du va-et-vient

Plutôt que de traduire directement d'un langage à l'autre, on passe par une description neutre : « une rivière au milieu, deux ponts ». De là on peut produire du code, un aperçu, une analyse — et l'inverse : partir d'un code pour retrouver la description.

Faire l'aller-retour est le meilleur test

Si l'on écrit un code depuis une description, qu'on le relit, et qu'on retombe sur la même description, la compréhension est prouvée. C'est un contrôle bien plus solide qu'une lecture à l'œil.

03Le schéma

Description en françaisl'intentionReprésentation neutrele pivotCode du jeuune expression parmi d'autresAperçu et analysela vérificationbase matérielle en bas · usage en haut
Le pivot central permet d'aller dans les deux sens. Sans lui, chaque nouvelle sortie exigerait de tout réécrire depuis le départ.

04À retenir

  • Chercher l'intention, pas la syntaxe, quand on lit le code d'un autre.
  • Un pivot neutre évite de multiplier les traducteurs entre chaque paire de formats.
  • L'aller-retour prouve la compréhension : écrire, relire, retomber sur la même description.

05Exercice

Échangez votre description de carte en cinq règles avec quelqu'un. Chacun rédige le déroulé détaillé de la carte de l'autre, étape par étape. Comparez ensuite avec les règles d'origine : qu'avez-vous ajouté ou perdu en route ?

Indice — Ce qui se perd est presque toujours implicite chez l'auteur — l'ordre des couches, ou une contrainte qu'il jugeait évidente. C'est là que les malentendus naissent, en pédagogie comme en informatique.

06Vérification des acquis

Pourquoi passer par une représentation intermédiaire ?

Pour découpler l'entrée de la sortie. Avec un pivot, ajouter un nouveau format de sortie ne demande qu'un traducteur ; sans pivot, il en faut un pour chaque paire de formats existants.

Comment prouver qu'on a bien compris un script ?

Par l'aller-retour : le relire pour en extraire une description, régénérer un script depuis cette description, et vérifier qu'il produit le même résultat.