Apparence
Lexique
Tous les termes du projet qui ne se devinent pas, définis dans le sens qu'ils ont ici. Trois publics : un membre de la guilde qui découvre le jeu, un développeur qui reprend le dépôt, et le futur toi qui aura oublié pourquoi « corps » et « étalon » ne veulent pas dire la même chose qu'ailleurs.
Quand un terme a un sens différent dans Hearthstone, Magic ou WoW, c'est signalé. Les renvois §x pointent 01-specification.md, les D-xx pointent 02-decisions.md.
1 · Le vocabulaire du jeu
Ce que les joueurs lisent sur les cartes et disent à voix haute.
Ferveur — La ressource dépensée pour jouer des cartes. 1 au premier tour, +1 par tour, plafond 10. C'est le « mana » du jeu, renommé pour éviter toute collision avec les Sceaux et les PV (D-03). Deux valeurs distinctes en machine : ferveurMax (le plafond, qui monte d'un cran par tour) et ferveurActuelle (ce qui reste dépensable ce tour-ci, et qui peut exceptionnellement dépasser le plafond). §1
Sceaux — La monnaie hors partie, qui existe déjà sur le site de guilde comme récompense de participation. Sert à ouvrir des packs et à acheter des illustrations alternatives. Ne s'utilise jamais pendant un duel. §10
PV — Points de vie. 30 pour un héros, et la deuxième caractéristique d'une créature. Distincts de l'Armure.
Armure — Un tampon de dégâts qui s'ajoute aux PV du héros et s'épuise avant eux. Un héros à 30 PV et 2 Armure encaisse 32 dégâts. Gagnée par certains pouvoirs héroïques et cartes, jamais par une créature.
Héros — Ton avatar en partie, adossé à un vrai personnage WoW que tu as enregistré sur le site : nom, classe, race, portrait. Sa classe détermine son pouvoir héroïque. Il a 30 PV, et il est passif : il n'attaque jamais (D-29). Aucune donnée de puissance du personnage réel (ilvl, hauts faits, score M+) n'entre en jeu — c'est un garde-fou de premier rang, pas un détail (D-09).
Pouvoir héroïque — Une capacité activable une fois par tour, coûtant en général 2 Ferveur, déterminée par la classe WoW du héros. Treize pouvoirs, un par classe. Délibérément inefficace : c'est un plancher quand tu n'as rien à jouer, pas une stratégie. §4.3
Créature — Le type de carte qui reste en jeu et attaque. Appelée Membre côté joueur, parce que la plupart représentent des membres de la guilde. Porte un coût, une ATK, des PV, éventuellement des mots-clés et des capacités. ~60 % du set. §5.1
Sort — Une carte à effet immédiat, qui part au cimetière après résolution. Représente une expression, une punchline ou une situation vécue de la guilde. ~30 % du set.
Permanent — Une carte qui reste en jeu sans attaquer, insensible aux sorts de dégâts. Une Bannière ou un Lieu. Porte un effet continu ou déclenché, et disparaît au bout d'un certain nombre de tours (durability) ou d'activations (charges). ~10 % du set.
Jeton — Une créature invoquée par un effet, qui n'existe pas en carte collectionnable : ni numéro de collection, ni rareté, jamais dans un pack ni dans un deck. Le Disciple 1/1 du Paladin, la Goule du Chevalier de la mort. En anglais dans le code : token.
Terrain — L'espace de jeu de chaque joueur : 6 créatures et 3 permanents au maximum. Non ordonné en v1 : les créatures forment un ensemble, pas une ligne, donc aucune carte ne peut parler de voisinage (D-10). Souvent appelé board dans le jargon.
Malaise d'invocation — Une créature ne peut pas attaquer le tour où elle arrive. C'est le summoning sickness de Magic, et c'est ce que Fougue contourne partiellement.
Fatigue — Quand ton deck est vide, chaque pioche te fait perdre des PV, de façon croissante : 1, puis 2, puis 3… Une partie ne peut donc pas durer indéfiniment.
Mulligan — Avant le premier tour, tu peux remplacer n'importe quel sous-ensemble de ta main de départ, une seule fois.
Enluminée — La variante brillante d'une carte : traitement visuel animé, cadre travaillé, tampon. Rigoureusement cosmétique, ne s'achète jamais (drop en pack ou récompense d'événement), et compte comme une copie normale pour les limites de deck. Vocabulaire du manuscrit médiéval plutôt que le « doré » de Hearthstone — même registre que Le Grand Conseil. §7.6, D-20
Les cinq mots-clés
Des flags portés par une créature — à ne pas confondre avec les déclencheurs, qui sont des abonnements à des événements.
| Mot-clé | Effet | Code |
|---|---|---|
| Provocation | Doit être attaquée avant les autres créatures et avant le héros | TAUNT |
| Bouclier | Annule la première instance de dégâts subie, quelle que soit son ampleur | SHIELD |
| Fougue | Peut attaquer une créature dès son arrivée — jamais le héros | RUSH |
| Furtif | Ni ciblable ni attaquable jusqu'à sa première attaque | STEALTH |
| Létal | Détruit toute créature à laquelle elle infligerait des dégâts, quelle que soit son endurance | LETHAL |
Charge — Mot-clé écarté (D-07) : attaquer le héros dès l'arrivée. Transforme n'importe quel buff en dégâts incontrables. Fougue en garde l'essentiel sans le problème. À ne pas reproposer.
Piège / Secret — Mécanique reportée en extension (D-08) : une carte posée face cachée qui se déclenche pendant le tour adverse. Exige un système de priorité au milieu de la résolution, et une information cachée dont l'existence est publique.
Les neuf déclencheurs
Le nom joueur, puis l'événement en code.
| Nom joueur | Événement | Sens |
|---|---|---|
| Cri de guerre | ON_PLAY | À l'arrivée de la carte |
| Râle d'agonie | ON_DEATH | À la mort de la créature |
| Rituel | ON_TURN_START / ON_TURN_END | Chaque tour |
| Riposte | ON_DAMAGE_TAKEN | Quand la créature subit des dégâts |
| Assaut | ON_ATTACK | Quand la créature attaque |
| Camaraderie | ON_ALLY_SUMMONED | Quand une créature alliée arrive |
| Écho | ON_SPELL_CAST | Quand un sort est joué |
| Aura | CONTINUOUS | En permanence, tant que la carte est en jeu |
| Activable | MANUAL | Sur décision du joueur, contre de la Ferveur |
Rangs et rôles
Rang — La position dans la hiérarchie réelle de la guilde, imprimée sur les cartes-membres : Disciple → Membre → Champion → Conseiller → Haut Conseiller. Détermine la fourchette de coût de la carte, jamais sa rareté (D-13). Une table de configuration, jamais une liste figée dans le code : la guilde se réorganisera.
Rôle — L'axe de jeu d'une créature-membre : Tank, Soigneur, DPS, Artisan. Porte les synergies de combat, là où le rang porte les synergies de courbe. Un membre a un rang et un rôle.
Instantané daté — Le principe qui régit le rang imprimé. « Kaelis, Disciple » reste un Disciple pour toujours, même si Kaelis devient Conseiller dans la vraie guilde : une extension ultérieure lui offrira une nouvelle carte. Le rang sur une carte est de l'histoire de guilde, pas une donnée à rafraîchir. D-15
Non-membre — Une créature qui ne représente personne : Boss, Monstre, Mascotte, PNJ. Elles portent la charge d'équilibrage ingrate et toutes les vannes mordantes — cible collective, jamais individuelle (§12.5).
optOut — Le drapeau qui marque une carte dont la personne représentée a demandé le retrait. Elle sort des packs et de la génération, mais reste dans le corpus pour ne pas casser les replays.
2 · Le jargon TCG
Le vocabulaire de conception, commun au genre. Utile pour lire la spec sans buter tous les trois paragraphes.
Corps — La présence physique d'une créature sur le terrain : ses ATK/PV et le fait qu'elle persiste. L'expression clé est « un sort ne laisse pas de corps » : il consomme tout son budget en un instant, là où une créature garde une valeur tour après tour. C'est pourquoi les deux ont des échelles d'équilibrage différentes. §9.1
Courbe — Deux sens, proches. (1) La courbe de Ferveur d'un set : combien de cartes à chaque coût. (2) La courbe d'un deck : la répartition des coûts qui permet d'avoir toujours quelque chose à jouer. « Jouer sur la courbe » = poser une carte de coût N au tour N. §7.2
Tempo — L'avantage de rythme : avoir le terrain, forcer l'adversaire à réagir. S'oppose à la valeur. Un échange peut être bon en tempo et mauvais en valeur : dépenser deux cartes pour tuer une seule, mais garder l'initiative.
Valeur — L'avantage de ressources : plus de cartes, de meilleurs échanges, de meilleures cartes par Ferveur dépensée. Un « effet de valeur » rentabilise une carte au-delà de son coût — typiquement un Cri de guerre qui fait piocher.
Retrait — Toute carte qui supprime une créature adverse : dégâts, destruction, renvoi en main. Le jeu en a besoin d'au moins 5-6 accessibles, sinon il se réduit à « qui pose le plus gros ». Appelé removal en anglais. §7.3
AoE — Area of Effect, dégâts ou effet frappant plusieurs cibles à la fois. Interdit dans le pool neutre du set de lancement (D-32), réservé aux classes. Le linter refuse tout DEAL_DAMAGE touchant plusieurs créatures adverses sur une carte neutre.
Burn — Les dégâts directs infligés par des sorts, par opposition aux dégâts de combat. « Burn de zone » = AoE de dégâts, réservé au Mage et au Chaman.
Ping — Un petit dégât répétable, typiquement 1, souvent depuis un pouvoir héroïque. Peu impressionnant, mais l'une des valeurs les plus sûres du genre : il nettoie les jetons et achève les créatures blessées tour après tour.
Vanilla — Une créature sans aucun texte, au budget exact. Sert d'étalon visible pour les joueurs et de repère de design. Le set en prévoit 4-5 volontairement. §7.3
Cycle — Un même effet décliné sur plusieurs coûts, conçu et équilibré d'un seul geste : retrait à 2 (3 dégâts), à 3 (4 dégâts + pioche), à 6 (destruction). 10 à 12 cycles couvrent la moitié du set. La méthode de production principale. §7.3
Archétype — Une intention de deck cohérente, autour de laquelle un groupe de cartes est conçu. Quatre au lancement : Agro/large, Contrôle, Valeur/midrange, Synergie tribale.
- Agro (ou aggro) — Gagner vite par la pression, avec des créatures peu chères. « Agro large » = saturer le terrain de petites créatures plutôt que de frapper avec de grosses.
- Contrôle — Survivre, répondre à tout, gagner tard avec des cartes puissantes.
- Midrange — Entre les deux : occuper le terrain aux tours moyens et rentabiliser chaque carte.
- Tribal — Miser sur un tag partagé (ici un rang ou un rôle) et sur les cartes qui le récompensent.
Payoff — La carte qui récompense une construction : « Quand vous jouez un Conseiller… ». Sans payoff, une synergie n'est qu'un tag décoratif.
Combo — Deux cartes ou plus dont la combinaison vaut bien plus que la somme. Point de vigilance du projet : avec 30 cartes et 3 copies, les combos à deux cartes sont beaucoup plus fiables qu'en Hearthstone (~70 % de chance de voir sa carte clé avant le tour 6). D-05
Burst — Un pic de dégâts concentré sur un seul tour, souvent létal. Ce qui rend Charge dangereuse et Fougue acceptable.
3-of — Une carte présente en trois exemplaires dans un deck. « Jouer un 3-of » = compter dessus systématiquement.
Power creep — La dérive qui consiste à rendre chaque nouvelle extension plus forte que la précédente, tuant les anciennes cartes. Contré ici par une règle explicite : une carte évoluée ne domine jamais strictement l'ancienne (D-15).
Pity timer — Une garantie contre la malchance : légendaire assurée tous les 20 packs, enluminée tous les 10. §10
Fonte — Convertir un doublon en Sceaux, à perte (~25 %), pour crafter une carte précise. Disenchant en anglais.
Sink / puits — Une dépense sans fin, qui empêche une monnaie de s'accumuler sans usage. Ici, les illustrations alternatives générées par IA sont le puits de Sceaux infini — et l'enluminure n'en est délibérément pas un. §10
Draft — Un format où l'on construit son deck en choisissant des cartes une par une dans des paquets tirés au hasard. Reporté en P6 : rend un pool de 120 cartes rejouable très longtemps.
Alt-art — Une illustration alternative pour une carte qu'on possède. S'achète en Sceaux et se choisit — c'est ce qui la distingue de l'enluminure, qui se gagne. Comme l'enluminure, elle vit sur l'exemplaire possédé et le moteur ne la voit jamais.
3 · L'équilibrage
Les quatre termes qui font que « cette carte est-elle correcte ? » a une réponse chiffrée plutôt qu'une opinion.
Étalon — Une valeur de référence contre laquelle on mesure une carte. Le projet en a deux, et ils ne fonctionnent pas pareil : le budget de caractéristiques est bloquant, l'étalon de valeur d'effet est un simple repère.
Budget de caractéristiques — ATK + PV = 2 × coût + 1, pour les créatures. À 4 Ferveur : 9 points, donc un 3/6, un 4/5 ou un 5/4. Chaque mot-clé et chaque capacité prélève dans ce budget : Provocation coûte 1 point, Bouclier 2, Létal 3. Une créature à 4 avec Provocation et un Cri de guerre n'a donc plus que 7 points de stats — d'où le 3/4 de Gorak. Bloquant : tools/lint.mjs échoue si le compte ne tombe pas juste. §9
Point d'effet — L'unité de mesure des sorts et des permanents, qui n'ont pas de stats à compter. Table de conversion : 1 dégât sur une créature = 1 point · 1,5 dégât au héros = 1 point (frapper le visage ne défend rien) · 1 carte piochée ≈ 1,4 point · 1 point de soin ou d'Armure = 1 point. §9.1
Étalon de valeur d'effet — points d'effet = 1,5 × coût + 1. À 3 Ferveur : 5,5 points, soit « 4 dégâts à une créature et piochez une carte ». Non bloquant, avec une tolérance de 70 à 115 % : il ne repose que sur quatre cartes et attend confirmation au premier test de table. A remplacé un taux linéaire de 2,5 points par Ferveur, qui autorisait 20 points d'effet à 8 Ferveur — absurde. D-34
abilityBudget — Le champ où le designer déclare combien de points de stats il consent à une capacité. Sans lui, le linter ne peut pas vérifier le budget. C'est de la comptabilité assumée : le chiffre est un jugement, mais il est écrit et opposable.
Bloc design — L'objet qui regroupe toute cette comptabilité sur une carte (abilityBudget, effectPoints, archetype, cycle, vanilla, notes). Le moteur l'ignore entièrement — même règle que le cosmétique. Le champ notes est aussi là que se consignent les cas limites destinés au kit de conformité. D-28
4 · Le vocabulaire WoW repris dans les cartes
Les termes de jeu qui servent de matière comique. Utiles pour comprendre les textes d'ambiance, pas pour les règles.
Pull — Déclencher un groupe d'ennemis. « On ne pull pas avant le go » est un classique du raid.
Wipe — La mort du groupe entier. « Le wipe du tank » désigne le wipe dont le tank est responsable — vanne collective par excellence, donc autorisée sur une créature non-membre.
Repop — Réapparaître après la mort. « Je repop, deux secondes. »
Add — Un ennemi supplémentaire qui rejoint un combat, souvent oublié par le groupe. D'où L'Add Oublié.
Mob — N'importe quel ennemi contrôlé par le jeu, sans distinction.
Boss — L'ennemi majeur d'un donjon ou d'un raid.
Raid — Un contenu de groupe à effectif large. Le cadre où se fabriquent la plupart des souvenirs de guilde, donc la plupart des vannes.
M+ — Mythique+, un format de donjon chronométré avec un score de progression. Cité uniquement pour interdire son usage : c'est une donnée de puissance, elle ne doit jamais influencer une partie (D-09).
ilvl — Item level, l'indicateur de puissance de l'équipement. Même statut que M+ : bannie du jeu, tolérée en cosmétique.
Alt — Un personnage secondaire. Comme la classe du héros détermine le pouvoir héroïque, chaque alt donne une façon différente de jouer — c'est le moteur de rejouabilité gratuit du système de héros. §4
Reroll — Recommencer un personnage, ou changer de classe. Le « mur du reroll » est le problème qu'un membre mono-classe ne voie jamais la moitié du set : résolu en autorisant toute classe en duel amical, et en n'exigeant un vrai personnage qu'en tournoi (§4.2).
PUG / Casu — Deux tags de créature écartés (D-12) : les seuls de la liste initiale qui se lisaient comme des piques envers de vraies personnes. Mentionnés ici pour qu'on ne les repropose pas.
Banque de guilde — Le coffre partagé. Son onglet 4 est réservé, personne ne sait plus à quoi.
Sceau — Attention à l'homonymie : les Sceaux sont la monnaie du site (§10). Le mot n'a rien à voir avec le sceau de cire, et c'est justement pour éviter cette collision que la variante brillante s'appelle Enluminée et pas Scellée (D-20).
5 · Le vocabulaire technique
Pour lire data/schema/ et tools/ sans deviner.
JSON Schema — Un standard qui décrit à quoi doit ressembler un document JSON, et permet de le valider automatiquement. Le projet utilise le draft 2020-12. Il vérifie les formes et les dépendances entre champs, mais ne sait pas faire d'arithmétique — d'où le linter à côté.
Enum — Une liste finie de valeurs autorisées, figée dans le schéma. Ici : les 16 actions, les 5 mots-clés, les 10 déclencheurs. Règle de partage : est enum tout ce dont l'ajout exige du code moteur. Le reste est de la configuration.
Table de configuration — Un fichier de données qu'on peut modifier sans toucher au code : ranks.json, sets.json, taxonomy.json. Les rangs de guilde en sont l'exemple canonique — leur réorganisation doit être un changement de fichier, pas une migration (D-12).
DSL — Domain-Specific Language, un mini-langage dédié à un domaine. Ici, le sélecteur de cibles : side (camp) × kind (nature) × scope (portée) × filter (prédicat). Toute la richesse des cartes sort de la combinatoire action × sélecteur, sans code spécifique par carte. §8.3
Action primitive — L'une des 16 briques élémentaires qu'une carte peut demander : DEAL_DAMAGE, HEAL, DRAW, SUMMON, BUFF, SILENCE, BOUNCE… Une carte est une combinaison d'actions, jamais du code. §8.2
Capacité — Un déclencheur, une condition optionnelle, et une séquence d'effets exécutés dans l'ordre. La séquence est ce qui permet d'écrire « infligez 4 dégâts et piochez une carte » en une seule capacité. D-23
Effet — Un maillon de cette séquence : une action, un sélecteur de cibles, des paramètres, et éventuellement sa propre condition. La condition par effet permet « 1 dégât ; 3 dégâts si votre plafond atteint 8 » sans action spéciale.
Aura — Un modificateur continu et recalculé, jamais appliqué. statsEffectives = base + Σ(buffs) + Σ(auras). Si l'aura disparaît, la créature retrouve ses valeurs sans qu'on ait rien à défaire. Muter les stats stockées à la place est le bug qui tue les moteurs de TCG maison, et le schéma rend la faute impossible : duration: "AURA" est obligatoire sous CONTINUOUS et interdite ailleurs (D-27).
Moteur pur — Une fonction sans effet de bord : reduce(state, action) => { newState, events[] }. Même entrée, même sortie, toujours. C'est ce qui rend les tests possibles hors de tout serveur.
Déterminisme — La garantie qu'une même séquence d'actions produit exactement la même partie. Combiné au seed, il rend les replays quasi gratuits : il suffit de rejouer les intentions.
Seed — La graine du générateur aléatoire, stockée côté serveur. C'est ce qui rend le hasard reproductible : le totem aléatoire du Chaman retombe sur le même totem au replay.
Serveur autoritaire — Le client envoie des intentions (PLAY_CARD, ATTACK, END_TURN) et reçoit des événements qu'il se contente d'animer. Il ne calcule jamais l'état lui-même.
Vue filtrée — L'état renvoyé à chaque joueur, expurgé de ce qu'il n'a pas le droit de voir. La main adverse est une liste de dos de cartes, jamais des identifiants. L'erreur classique et fatale du genre.
Stateful — Un service qui garde l'état en mémoire entre deux requêtes, à l'opposé d'une API REST. Le duel temps réel en impose un (WebSocket), avec ses conséquences : montée en charge, redémarrages, reconnexions. C'est le point ouvert n° 2 du projet.
Lignée — L'identité durable d'une carte à travers ses versions, portée par son id. crea_gorak_forgeron est une lignée ; crea_gorak_forgeron.v1.json et .v2.json en sont deux tirages. Une carte publiée n'est jamais écrasée, sinon un nerf casse rétroactivement les replays (D-22).
Fixture — Ici, une carte volontairement fautive dans tools/fixtures/. Le test réussit quand elle est rejetée, et pour la bonne raison. Neuf fixtures gardent les invariants d'architecture : aura mal déclarée, buff sur un héros, champ cosmétique dans le corpus…
Lint — Le contrôle de tout ce que JSON Schema ne peut pas exprimer : arithmétique du budget, fourchette de coût par rang, unicité des numéros, intégrité des références entre cartes, AoE neutre. Certaines règles sont bloquantes, d'autres de simples avertissements — tools/README.md en donne la liste.
Kit de conformité — 50 à 100 scénarios état initial → actions → état attendu, en JSON pur. C'est la spécification exécutable des règles, indépendante de toute implémentation : un nouveau prototype se déclare fonctionnel quand il le passe. Écrit avant le moteur (P2). §13.2
Actif durable — Ce qui survit à un prototype jeté : le schéma, le corpus et le kit de conformité, tous en JSON pur dans data/, plus la documentation dans docs/. Le moteur, le serveur et l'interface sont consommables. tools/ et site/ aussi, délibérément. §13.1
Rendu (par opposition à stockage) — Le principe qui régit site/ : il affiche docs/ et data/ sans jamais les héberger ni les dupliquer. Test de la règle : si supprimer site/ fait perdre une information, il est cassé. C'est ce qui distingue un site de documentation d'un wiki, lequel stocke son contenu chez lui et crée une seconde source de vérité. D-35
Statique — Un site entièrement pré-calculé au build, servi comme de simples fichiers, sans serveur applicatif. Le site P1 est statique ; le duel en temps réel (P3), lui, exigera un service stateful. Les deux ne se ressemblent en rien et ne se déploient pas au même endroit.
Un prototype = une variable — La discipline de comparaison : ne jamais changer la stack et les mécaniques en même temps, sinon la comparaison n'apprend rien. Deux familles distinctes : prototype de mécanique (cartes imprimées, vraie table) et prototype technique (moteur + client minimal). §13.3
6 · Les conventions du dépôt
P0 → P6 — Les phases de la feuille de route. P0 = schéma de données · P1 = générateur de cartes · P2 = kit de conformité et moteur · P3 = duel en ligne · P4 = consolidation · P5 = extension classes · P6 = au-delà. §14
D-01, D-02… — Les entrées numérotées de 02-decisions.md. Chacune porte une décision, l'alternative écartée et pourquoi. À consulter avant de reproposer quoi que ce soit : la plupart des bonnes idées évidentes y sont déjà, avec le motif de leur rejet.
§x — Un renvoi à une section de 01-specification.md, la source de vérité des mécaniques.
Set — Une extension : un ensemble de cartes publié ensemble, avec son nom, son code à 3 lettres, son symbole et sa numérotation. Le set de lancement s'appelle set_01 dans les données ; son nom public n'est pas tranché.
Numéro de collection — Le 042/120 en bas de carte. Techniquement trivial, et le déclencheur de collectionnite le plus efficace qui existe : on ne possède plus « des cartes », on possède « 87 / 120 ». D-16
Fond perdu (bleed) — La marge d'impression, 3 mm ici, rognée après découpe. Elle évite les liserés blancs si la coupe dérive. D'où deux tailles d'export : 815 × 1110 px avec fond perdu, 744 × 1039 px après rognage.
Gemme de coût — L'élément graphique qui affiche le coût en Ferveur, en haut de la carte. Vocabulaire de gabarit, à l'usage du générateur (P1).