Skip to content

Leto-D/powerquest

Repository files navigation

PowerQuest — Fiction Interactive PL-900

CI License: MIT Vite Vanilla JS

Apprends la certification Microsoft Power Platform PL-900 en jouant une fiction interactive rétrofuturiste dans un terminal CRT.


Le Concept

Tu es le premier homme-machine de l'humanité, recruté pour organiser la première mission interstellaire vers Alpha Centauri après la captation d'un signal mystérieux. Tu dois construire l'infrastructure de la mission dashboards, applis, workflows, sécurité tout en affrontant le sabotage d'un mouvement radical et en gérant Ekho, une IA soviétique fantôme logée dans tes systemes.

Les QCM PL-900 sont deguises en actions dans le monde : diagnostics, configurations, arbitrages. Les bonnes reponses font progresser l'histoire. Les mauvaises creent des dettes narratives qui reviennent plus tard.


Stack

Composant Detail
Bundler Vite
Langage JavaScript ES6+ (Vanilla, zero framework)
Rendu DOM + CSS (pas de Canvas/WebGL)
Layout Visual Novel ADV/NVL hybride (3 zones fixes)
Esthetique Terminal CRT retrofuturiste (scanlines, glow, typewriter)
Font IBM Plex Mono
Questions 130+ QCM PL-900 en JSON
Sauvegarde localStorage

Les 5 Actes

Acte Titre Domaine PL-900 Personnage cle
1 Le Signal Power BI Mika Lindgren
2 La Machine Power Apps Tomas "Patch" Ferreira
3 Le Flux Power Automate Noor Kahraman
4 La Forteresse Administration Dr. Elena Vasek
5 Le Lancement Mixte Tous

Les Personnages

Nom Role Couleur
Mika Lindgren Cartographe du Chaos (Power BI) Cyan
Tomas "Patch" Ferreira Le Bricoleur (Power Apps) Vert
Noor Kahraman Le Metronome (Power Automate) Violet
Youssef Darmon Le Cuistot (logistique) Orange
Dr. Elena Vasek La Gardienne (admin & securite) Rouge
Patriarche Zeron Antagoniste Blanc
Ekho IA fantome / guide Vert CRT

Structure du Projet

src/
├── main.js                    Point d'entree, cablage de tous les modules
├── config.js                  Constantes globales + flag DEV_FAST_FORWARD
├── engine/                    Moteur narratif (coeur du jeu)
│   ├── NarrativeEngine.js     Machine a etats : charge chapitre, execute, branche
│   ├── SceneRunner.js         Execute les scenes en mode ADV/NVL + quiz multi-etapes
│   ├── FlagManager.js         Variables narratives (flags, compteurs, conditions)
│   └── ChoiceHistory.js       Historique des 15 choix majeurs
├── data/
│   ├── gameConfig.json        Configuration personnages, progression, UI
│   ├── consequences.json      Registre des dettes narratives (6 entrees)
│   ├── chapters/              Arbre narratif par acte (JSON)
│   │   └── act1-signal.json   Acte 1 Le Signal (27 scenes)
│   └── questions/             130+ questions PL-900 par domaine
├── styles/
│   ├── main.css               Reset, layout, imports
│   ├── crt-design-system.css  Palette, tokens, effets CRT (scanlines, vignette)
│   ├── vn-layout.css          Layout VN + HUD + notifications + quiz feedback
│   └── typewriter.css         Animation typewriter + curseur
├── systems/
│   ├── EventBus.js            Pub/sub singleton vanilla JS
│   ├── QuestionManager.js     Tirage anti-repetition, chargement par domaine
│   ├── Progression.js         XP, niveaux (6 paliers), PV (ecoute QUIZ_CORRECT/WRONG)
│   ├── EkhoSystem.js          Indices sovietiques, confiance, max 2 par acte
│   └── ConsequenceTracker.js  Dettes narratives (ecoute FLAG_SET)
└── ui/
    ├── Terminal.js             Layout VN 3 zones + HUD dynamique (coeurs, XP, niveau)
    ├── Typewriter.js           Affichage caractere par caractere + skip + dev mode
    └── Notifications.js        Textes flottants (+XP, -PV, Niveau !)

public/assets/
├── portraits/                 Portraits personnages (generes par IA, Sprint 3+)
└── scenes/                    Decors des actes (generes par IA, Sprint 4+)

Lancer le projet

npm install
npm run dev

Le serveur demarre sur http://localhost:5173.

Mode dev rapide (test)

Pour tester le jeu rapidement sans cliquer a chaque scene :

  1. Lancer le serveur : npm run dev
  2. Ouvrir cette URL dans le navigateur : http://localhost:5173/?dev
  3. Le parametre ?dev a la fin de l'URL est obligatoire sans lui, le jeu tourne en mode normal

Ce que fait le mode dev :

  • Typewriter instantane (pas d'attente lettre par lettre)
  • Auto-continue (pas besoin d'appuyer sur Entree)
  • Choix automatiques (selectionne toujours la 1ere option)
  • Transitions accelerees (50ms au lieu de 800ms)
  • Un badge jaune "DEV FAST" s'affiche en haut a droite pour confirmer l'activation

Sans ?dev → mode joueur normal (typewriter, attente clic/Entree, choix manuels).

Ce mode est impossible en production (double verrou : Vite dev + parametre URL).


Mecaniques speciales

Progression Bonnes reponses : +XP, montee de niveau, soins. Mauvaises reponses : -1 PV par erreur. HUD dynamique avec coeurs, barre XP, niveau.

Dettes narratives Les mauvaises reponses creent des flags invisibles qui reviennent dans les actes suivants (6 consequences inter-actes).

Ekho Une IA fantome qui murmure des proverbes sovietiques cryptiques en guise d'indices. Bouton [E] pendant les quiz. Condition : confiance >= 30, max 2 indices par acte.

Notifications Textes flottants animes : +XP (vert), -PV (rouge), Niveau ! (ambre).

Doute Total Recall 2-3 moments dans le jeu, le terminal glitche. Le doute n'est jamais resolu.


Roadmap

  • Sprint 0 Prototype terminal CRT + typewriter + QCM test
  • Sprint 1 Moteur narratif (NarrativeEngine, SceneRunner, FlagManager, ChoiceHistory)
  • Sprint 1.5 Polish visuel (3 niveaux visuels, mode messagerie, choix joueur)
  • Sprint 1.5b Layout Visual Novel ADV/NVL hybride (mode VN, portraits placeholders, historique)
  • Sprint 2 QCM integres + progression (XP/PV/niveaux) + Ekho + dettes narratives + HUD + notifications
  • Sprint 3 Portraits + sauvegarde + menu titre
  • Sprint 4 Actes 2 a 5 + polish
  • Sprint 5 Mobile + deploiement

Licence

MIT — voir LICENSE.

Credits

  • Narration & game design : Leto-D
  • Portraits & decors : generes par IA (Midjourney / Stable Diffusion), retouches manuelles
  • Police : IBM Plex Mono (SIL Open Font License)
  • Inspirations : VA-11 HALL-A (terminal CRT), Disco Elysium (dettes narratives), Pony Island (4e mur)

Projet educatif Certification Microsoft PL-900, puis PL-200 (Acte II).

About

Fiction interactive educative pour la certification Microsoft Power Platform PL-900. Visual Novel CRT retrofuturiste, 130+ QCM integres, narration originale avec dettes inter-actes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors