Files
TetaRdPG/GDD.md
Tetardtek da3237bf3f feat: Sprint 1 — backend fondations TetaRdPG
Auth SuperOAuth (JWT validation + httpOnly cookie), entités users/characters/level_thresholds,
lazy calculation endurance, seed 100 niveaux, config prod-ready (trust proxy, helmet, CORS, rate limit).
Validé : health 200, auth flow, character CRUD, endurance lazy, 401 sans cookie.
2026-03-15 05:51:02 +01:00

17 KiB
Raw Blame History

TetaRdPG — Game Design Document

Version : 1.0 — Mars 2026 Statut : Conception — pré-production Type : Idle-RPG textuel communautaire | Extension Twitch + Site Web


Pitch

TetaRdPG est un RPG communautaire asynchrone intégré à Twitch. Les viewers créent un personnage, le font progresser via des actions consommant de l'endurance, et interagissent avec le stream et la communauté en temps réel.

Ce qui rend ce jeu unique :

  • L'engagement Twitch (Bits, abonnements, points de chaîne) est une ressource de jeu
  • La progression est persistante et stratégique, pas un simple clicker
  • La communauté joue ensemble — succès collectifs, boss mondiaux, guildes

Piliers de design

Pilier Description
Stratégie Chaque action coûte de l'endurance — gérer sa ressource est central
Persistance La progression survit aux streams, les choix ont des conséquences durables
Communauté Les objectifs collectifs sont aussi importants que la progression individuelle
Intégration Twitch L'activité sur le stream a une valeur en jeu directe

Systèmes Core

Endurance

L'endurance est la ressource principale. Elle régule toutes les actions du joueur.

Paramètre Valeur
Base 100 pts
Maximum (avec équipement) 150 pts
Recharge passive 10 pts / heure (1 pt toutes les 6 min)

Recharge active :

  • 1 TetardCoin → +20 endurance
  • Potions : +25 / +50 / +100 endurance

Coût des actions :

Action Coût endurance
Combat 10
Entraînement (léger) 20
Entraînement (moyen) 40
Entraînement (intensif) 60
Quête (facile) 15
Quête (moyenne) 30
Quête (difficile) 50
Fuite en combat 5

Combat PvE

Format : tour par tour — Attaque / Défense / Objet / Fuite

Formules de dégâts :

Type Formule
Mêlée Arme + (Force × 1.5)
Distance Arme + (Agilité × 1.5)
Magique Arme + (Intelligence × 1.5)

Mécanique défensive :

  • Réduction selon type d'armure + coefficient de défense

Coups critiques et esquive :

Mécanique Formule Effet
Critique 5% + (Chance × 0.2%) Dégâts × 1.5
Esquive 5% + (Chance × 0.1%) Annule les dégâts

Fin de combat :

  • Victoire → XP + Or + loot + récupération 10% PV
  • Défaite → retour auberge, -50 endurance, perte d'or
  • Récupération PV hors combat → 10% PV toutes les 15 min

Progression & Niveaux

Courbe XP : XP requise = 100 × N^1.5

Niveau XP requise (cumulé)
2 283
10 3 162
50 35 355
100 100 000

Niveau maximum : 100, puis Niveau Beta (définition à préciser — prestige, cosmétique ?)

Statistiques :

  • 5 stats : Force, Agilité, Intelligence, Chance, Vitalité
  • Base : 5 points à répartir à la création
  • Gain : +5 points par niveau
  • Plafond : 101 par stat (via entraînement et équipement)
  • PV de base : 100 (Vitalité influence le max)

Déblocages par niveau :

Niveau Déblocage
5 Quêtes moyennes
10 Forge
15 Boutique avancée
20 Quêtes difficiles + Guildes
30 Équipements épiques
50 Succès communautaires + Quêtes d'élite

Artisanat & Forge

Forge (accès niveau 10+)

Améliore les équipements existants : +stat, effet spécial, bonus set anticipé.

Niveau d'amélioration Résultat Risque
Niv. 1 2 Succès garanti Aucun
Niv. 3 Succès / Échec 20% perte matériaux
Niv. 4 Succès / Échec 30% perte matériaux
Niv. 5 Succès / Échec 40% perte matériaux

Coût max : 12 TetardCoin (succès garanti, tous niveaux)

Artisanat

Création d'équipements, consommables, améliorations à partir de recettes + matériaux.

Paramètre Valeur
Durée 15 min à 2 h (temps réel)
Endurance 5 + (Rareté × 3)
Accélération TetardCoin

Sources de matériaux : loot, échanges joueurs, événements.

Bonus de sets d'équipement :

Pièces du même set Bonus
2 pièces +3% stat associée
3 pièces +10% + effet spécial

Économie

Monnaies

Monnaie Obtention Usage
Or Combats, quêtes, succès Forge, consommables, boutique de base
TetardCoin Twitch (Bits, abonnements), achat direct Recharge endurance, boutique Twitch, forge garantie
Matériaux Loot, artisanat, événements Forge, artisanat

Boutiques

Boutique Accès Contenu
Base Niveau 1 Équipements communs/rares, potions simples
Avancée Niveau 15 Épiques, recettes, matériaux
Événementielle Événements Objets thématiques limités
Twitch TetardCoin uniquement Cosmétiques, boosts XP/loot

Marché communautaire (futur — post-lancement)

  • Vente / achat d'objets et matériaux entre joueurs
  • Taxe : 5% Or sur chaque transaction
  • Limite d'accès : selon niveau joueur
  • Phase alpha : interface simple, sans enchères
  • Phase évoluée : filtres avancés, système d'enchères

Communauté

Succès

Individuels — catégories : Progression / Combat / Zones / Équipements / Économie Récompenses : Or, objets rares, titres honorifiques

Communautaires — objectifs collectifs :

  • Exemples : tuer 10 000 monstres, collecter 1M TetardCoin, vaincre un GIGABOSS
  • Récompenses : boosts globaux XP/loot, boutique spéciale, titres exclusifs

Événements mondiaux

GIGABOSS mondial

  • Boss unique accessible à tous pendant 72h
  • Chaque joueur inflige des dégâts cumulés
  • Récompenses proportionnelles à la contribution (Or, loot, titres)

Semaines thématiques

  • Focus sur une zone ou activité (XP doublée, loot spécial, quêtes exclusives)

Chasses communautaires

  • Tuer X monstres spécifiques ensemble
  • Suivi en temps réel (barres de progression)

Guildes & Alliances

Guildes (accès niveau 20)

  • Création : coût Or + TetardCoin, nom + blason + description personnalisés
  • Chat de guilde (site + extension)
  • Coffre de guilde (matériaux, or, objets partagés)
  • Quêtes hebdomadaires collectives
Niveau guilde Bonus
1 +5% XP
2 +10% loot
3 +5% endurance max

Alliances (jusqu'à 3 guildes)

  • Bonus événementiels partagés
  • Classements inter-guildes (PvE, quêtes, contribution économique)
  • Récompenses : titres collectifs, cosmétiques, accès boutique exclusive

Compétitif

PvP — Tag & Resolve

Inspiré du modèle LaBrute (site classique) : les combats sont asynchrones, résolus automatiquement par le serveur.

Ressource PvP : tickets journaliers

  • 10 tickets par jour, remise à zéro quotidienne (heure fixe à définir)
  • 1 combat = 1 ticket, qu'il s'agisse d'un humain ou d'un bot
  • Pas de coût en endurance — le PvP est indépendant du PvE
  • (Bonus de tickets via abonnements Twitch ou TetardCoin : à définir lors de la session monétisation)

Flux d'un combat PvP :

1. Le joueur s'inscrit en file PvP (tag)
2. Le système trouve un adversaire dans sa fenêtre Elo
3. Le combat se résout côté serveur (même moteur que le PvE)
4. Les deux joueurs consultent le log de combat + résultat
5. Les Elo se mettent à jour

Aucune interaction en temps réel requise — le joueur peut voir le résultat à sa prochaine connexion.


Système Elo

Elo de départ : 1000

Formule :

Score attendu  = 1 / (1 + 10^((EloAdversaire - EloJoueur) / 400))
Nouvel Elo     = Elo + K × (résultat - score attendu)
résultat       = 1 (victoire) | 0 (défaite)

K-factor :

Statut Combats K
Elo provisoire < 20 combats PvP 32
Elo stable ≥ 20 combats PvP 16
Combat contre bot Tout statut 8

Fenêtre de matchmaking :

  • Départ : ±150 Elo
  • Si aucun adversaire trouvé après 5 min → fenêtre élargie à ±300
  • Si toujours rien → bot inséré

Bots de simulation

Permettent de jouer dès le lancement même avec peu de joueurs, et de tester l'équilibrage en continu.

Le bot est construit à partir d'un profil de stats correspondant à son tier Elo — il utilise le même moteur de combat que les joueurs.

Tier Elo Profil
Têtard < 800 Stats faibles, build généraliste
Apprenti 800 1 000 Stats moyennes, pas d'équipement rare
Guerrier 1 000 1 200 Stats optimisées, set de base complet
Élite 1 200 1 500 Build spécialisé, équipements épiques
Légendaire 1 500+ Build maxé, équipement rare, set complet

Un combat contre un bot met l'Elo à jour (K=8). Le joueur sait qu'il a joué contre un bot.


Ligues saisonnières

  • Saisons de durée fixe (durée à définir)
  • Classement basé sur l'Elo PvP en fin de saison
  • Soft reset en début de saison : Elo ramené vers 1000 (ex : nouvel Elo = (Elo + 1000) / 2)
  • Récompenses de fin de saison selon rang (cosmétiques, titres, TetardCoin)

Rangs de ligue (noms illustratifs) :

Rang Elo
Têtard < 800
Apprenti 800 1 000
Guerrier 1 000 1 200
Élite 1 200 1 500
Légendaire 1 500+

Classements complémentaires

En plus du classement PvP Elo, plusieurs axes de classement coexistent :

Classement Basé sur
XP globale Niveau + XP totale
Richesse Or accumulé
Contribution communautaire Dégâts GIGABOSS, chasses, événements
Hall of Fame mensuel Activité + performance du mois

Économie Twitch — Intégration enrichie (Direction A)

Enrichissement de l'expérience pour UN streamer et sa communauté. Développable en continuité directe de la v1.0.

Sources de TetardCoin via Twitch

Source Mécanisme Montant
Bits EventSub channel.cheer → conversion directe À définir
Abonnement Prime EventSub subscribe Bonus mensuel à définir
Abonnement Lv.1 EventSub subscribe Bonus mensuel à définir
Abonnement Lv.2 EventSub subscribe Bonus mensuel à définir
Abonnement Lv.3 EventSub subscribe Bonus mensuel à définir
Activité chat EventSub channel.chat.message À définir — ratio et anti-spam
Présence stream Token de présence côté serveur (pendant live) À définir — fréquence

Présence stream (Watch Time)

Le viewer s'authentifie une fois sur le site. Pendant que le stream est live (stream.online), le serveur lui crédite des TetardCoin passifs toutes les X minutes.

Twitch n'expose pas le watch time via API — la détection de présence se fait côté serveur (token actif + stream live). Le viewer n'a pas besoin de rester sur le site. Question ouverte : doit-il être connecté sur le site ou juste sur Twitch ? (impacte l'implémentation)

Activité chat

Récompenser la participation des viewers en direct.

  • Commandes dédiées (!combat, !quête, !statut) → déclencher des actions en jeu depuis le chat
  • Messages passifs → TetardCoin au message ou par tranche de X messages
  • Question ouverte : récompenser tout message ou uniquement les commandes ? (anti-spam à définir)

Événements Twitch → Événements en jeu

Événement Twitch Événement en jeu
Hype Train Boost communautaire temporaire (XP/loot doublés, boss surprise)
Sub Gift massif Événement spécial (drop de matériaux rares)
Raid entrant Accueil des raiders avec bonus temporaire
Autres à définir Session brainstorm événements

Portail multi-streamers (Direction B)

TetaRdPG comme service — héberger le jeu pour plusieurs streamers. Architecture distincte de la v1.0 — à traiter comme un projet parallèle.

Vision

Chaque streamer s'enregistre sur la plateforme et lie son compte Twitch. La plateforme gère son token, ses viewers jouent dans son royaume TetaRdPG. Le jeu grandit en réseau : plus de streamers = plus de joueurs = communauté étendue.

Modèle d'univers — question ouverte

Deux options architecturales non tranchées :

Modèle Description Avantage Inconvénient
Royaumes isolés Chaque streamer a son propre jeu indépendant Simple, streamer = maître de son univers Pas de communauté inter-streamers
Univers partagé Un compte joueur global, plusieurs streams rejoignables Réseau fort, croissance organique Équilibrage complexe, gouvernance

Question ouverte : univers partagé ou royaumes isolés ?

Modèle économique — question ouverte

Option Description
Freemium streamer Gratuit de base, fonctionnalités premium payantes
Abonnement streamer Mensuel fixe par streamer enregistré
% transactions Commission sur les achats TetardCoin des joueurs
Hybride Freemium + commission

Question ouverte : quel modèle économique pour les streamers ?

Ce que la plateforme gère par streamer

  • Token Twitch broadcaster (EventSub sur son channel)
  • Base de joueurs liée à son channel
  • Personnalisation : nom du royaume, lore local (optionnel)
  • Classements et événements propres à sa communauté

Roadmap Direction B

À ne pas démarrer avant que la v1.0 (Direction A) soit stable en production.

v1.0 stable → extraire l'architecture multi-tenant → onboarding premiers streamers partenaires

Intégration Twitch

Authentification

  • Connexion via OAuth Twitch → lien compte Twitch ↔ compte site

Données récupérées

  • Statut live du stream
  • Points de chaîne
  • Bits (conversion en TetardCoin)
  • Abonnements (bonus TetardCoin mensuel)

Extension Twitch (panel viewer)

  • Statut du personnage
  • Actions rapides depuis le stream
  • Affichage des succès et classements

Actions spéciales via récompenses personnalisées Twitch

  • Exemples : boost XP, lancement de quête, défi communautaire

Monétisation (valeurs à définir — session dédiée)

Source Mécanisme Valeur
Bits 1 Bit → X TetardCoin À définir
Abonnement Prime Bonus mensuel TetardCoin À définir
Abonnement Lv.1 Bonus mensuel TetardCoin À définir
Abonnement Lv.2 Bonus mensuel TetardCoin À définir
Abonnement Lv.3 Bonus mensuel TetardCoin À définir
Achat direct TetardCoin Recharge endurance / objets À définir

Lore & Univers (illustratif — à redéfinir)

Ce qui suit est une base d'inspiration, pas un canon définitif. Tout peut être réinventé lors d'une session lore dédiée.

Monde aquatique régi par la mythologie du Têtarastafarisme et du Têtard Prophétique.

Exemples de zones : marais, forêt brumeuse, grottes, ruines, temple. Exemples de PNJ : sage, alchimiste, forgeron, guide mystérieux.


Roadmap v1.0

Phase Durée Livrables clés
Pré-production Sem. 14 Stack validé, wireframes, systèmes formalisés
Sprint 1 — Auth + Backend Sem. 56 Auth Twitch, création personnage, API core
Sprint 2 — Combat + UI Sem. 78 Combat PvE, interface joueur
Sprint 3 — Artisanat Sem. 910 Forge, craft, recettes
Sprint 4 — Succès + HoF Sem. 1112 Succès, classements, Hall of Fame
Bêta fermée Mois 4 Tests communauté, feedback, équilibrage
Lancement v1.0 Mois 5 Extension Twitch + Site Web en prod

Post-lancement (v1.1+)

Trimestre Contenu
T1 Guildes v1.1, premier GIGABOSS rotatif, boutique de succès
T2 PvP v1.2, personnalisation joueur, marché communautaire étendu
T3 Nouvelles zones & lore avancé v1.3, événements saisonniers
T4 Alliances de guildes v1.4, GIGABOSS légendaires, personnalisation Twitch avancée

Fréquence de mises à jour :

  • Patchs : toutes les 2 semaines (bugfix, équilibrage)
  • Contenu : mensuel (zones, quêtes, objets, événements)

Points ouverts

Point État
Stack technique TypeScript partout — NestJS (backend) + React (frontend) + PostgreSQL + Redis
Monétisation — valeurs exactes (Bits, abos) Session dédiée
Présence stream — détection côté site ou Twitch ? À trancher — Direction A
Chat rewards — tout message ou commandes seulement ? À trancher — Direction A
Direction B — univers partagé ou royaumes isolés ? À trancher — Direction B
Direction B — modèle économique streamers À trancher — Direction B
Durée des saisons PvP À définir
Niveau Beta (post-100) À préciser
Lore & univers Redéfinition libre lors d'une session dédiée
Zones et contenu v1.0 À définir selon le scope MVP