Files
TetaRdPG/docs/engine-design.md
Tetardtek e8f108a7e8
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 34s
design: maîtrise monstre — auto-combat déverrouillé par succès tactiques (N victoires)
2026-03-25 01:22:28 +01:00

5.2 KiB
Raw Blame History

TetaRdPG — Engine Design

Version : 1.0 — 2026-03-25 Décision architecturale : le moteur RPG est un template neutre, l'Odyssée est sa première customisation.


Principe

Couche 1 — Moteur (template, forkable)
  CombatService       → attaque / fuir, formules dégâts GDD
  Stats               → Force, Agilité, Intelligence, Chance, Vitalité
  Économie            → Or, monnaie premium, endurance
  Progression         → XP, niveaux, déblocages
  Forge / Craft       → amélioration, recettes, matériaux
  Quêtes              → fetch, complete, rewards
  Achievements        → event-driven, paliers

Couche 2 — Univers (spécifique à l'Odyssée, pas dans le template)
  TurnManager         → tour par tour enrichi (sorts, compagnons, patterns IA)
  SpellSystem         → 3 voies du Dao, arbre de sorts, mana/endurance
  CompanionModule     → Mira/Vell, IA contextuelle
  NarrativeEngine     → PNJ évolutifs, dialogues par palier, fragments du Chant
  BossPhaseSystem     → mécaniques uniques (ex: guérison Hydre ≠ DPS)

Règle

Le moteur (couche 1) ne doit jamais dépendre de la couche 2.

Un fork du moteur = combat basique fonctionnel, zéro référence à l'Odyssée. L'Odyssée importe le moteur, pas l'inverse.

Impact sur le combat rework

Le CombatService actuel n'est pas jeté — il devient le moteur de base. Le rework étend sans casser :

CombatService (existant)          → reste, calcule dégâts/XP/loot
  └── TurnManager (nouveau)       → orchestre les tours, gère l'ordre
        ├── SpellSystem            → sorts par voie, coût, effets
        ├── CompanionAI            → décisions IA Mira/Vell
        └── BossPhaseManager       → phases spéciales (narratif)

La Métamorphose — Evoland pattern (décision 2026-03-25)

Finir les 3 arcs de l'Acte I (Marais → Égouts → Désert) déclenche Le Serment des Trois. Le jeu lui-même évolue — le joueur vit la métamorphose du têtard.

ACTE I (niv 1-13) — Le monde simple
  Combat : auto (POST /combat/start)
  Slots  : 🗡️ Arme + 🛡️ Armure (2 slots)
  Types  : weapon | armor | consumable
  Sorts  : aucun
  Compagnons : aucun

          ⬇️  LE SERMENT DES TROIS  ⬇️
          (quête narrative, arc desert complété)

ACTE II (niv 13+) — Le monde éveillé
  Combat : tour par tour (POST /combat/turn/start)
  Slots  : 🗡️ Main droite + 🛡️ Main gauche + 🪖 Casque + 👕 Armure + 💍 Anneau (5 slots)
           OU ⚔️ Arme deux mains (remplace main droite + gauche)
  Types  : weapon_1h | weapon_2h | shield | helmet | armor | ring | consumable
  Sorts  : Dao du Courant (3 voies, 15 sorts)
  Compagnons : Mira, Vell (quêtes narratives)

Règle de coexistence

  • Zones 1-3 gardent le combat simple (grind rapide, ×5/×10 toujours dispo)
  • Zones 4+ : combat tour par tour obligatoire tant que le monstre n'est pas maîtrisé
  • Les items Acte I restent utilisables — les nouveaux types n'existent qu'en Acte II

Maîtrise monstre — auto-combat progressif (décision 2026-03-25)

En Acte II, chaque nouveau monstre impose le combat tactique. Après N victoires tactiques, le joueur débloque le combat auto pour ce monstre.

1ère rencontre → Combat tactique obligatoire
                    ↓ (N victoires)
🏆 Succès "Maîtrise : <monstre>" débloqué
                    ↓
Combat auto (×1/×5/×10) déverrouillé pour CE monstre

Implémentation :

  • Utiliser le système d'achievements existant (event-driven)
  • Nouveau criteria_type : monster_tactical_wins (par monstre_id)
  • Seuil de maîtrise : 3-5 victoires tactiques (à équilibrer)
  • CombatService.startCombat() vérifie l'achievement avant d'autoriser l'auto en zone 4+
  • Si pas maîtrisé → 403 "Ce monstre requiert le combat tactique"
  • Le frontend grise le bouton auto et affiche la progression "2/5 victoires tactiques"

Pourquoi c'est bon :

  • Force l'apprentissage des patterns ennemis (le tactique a du sens)
  • Récompense la maîtrise (le grind redevient rapide une fois compris)
  • Le joueur ne se lasse jamais : il alterne découverte (tactique) et farm (auto)
  • Compatible avec le multi-combat existant (×5/×10 = auto uniquement)
  • Le joueur garde tout (or, items, stats) — c'est une évolution, pas un reset

Impact sur l'Item entity

Acte I (existant, inchangé) :
  ItemType = 'weapon' | 'armor' | 'consumable'
  equipped = boolean (1 arme + 1 armure max)

Acte II (extension) :
  ItemType += 'weapon_2h' | 'shield' | 'helmet' | 'ring'
  equipped_slot = 'main_hand' | 'off_hand' | 'head' | 'body' | 'ring' | null
  Contrainte : weapon_2h → off_hand bloqué

Pourquoi c'est cohérent

Le GDD original prévoit des déblocages par niveau (forge niv 10, boutique avancée niv 15). L'Acte II est le plus gros déblocage du jeu — le gameplay entier évolue. Narrativement : le têtard commence à se transformer. Le Dao s'éveille.

Conséquence template

Quand un streamer fork TetaRdPG pour son royaume (Phase 4 — Twitch Kingdom) :

  • Il hérite du moteur complet (couche 1)
  • Il peut remplacer l'Odyssée par son propre lore (couche 2)
  • Ou il joue dans l'univers partagé de l'Odyssée — c'est son choix