Hack’n’slash roguelite avec narration IA, romance otome LGBTQ+ et esthétique dark fantasy pop cute manga.
Combats. Survie. Tombe amoureux·se. L’IA écrit ton histoire.
Umbra est un hack’n’slash roguelite où chaque run est générée par une IA narrative (LLM). Le Void corrompt le monde — tu explores des donjons procéduraux, tu forge des runes maudites, tu invoques des entités oubliées, et tu construis des liens profonds avec 5 compagnons romançables. Chaque personnage utilise des pronoms inclusifs (il/lui, elle/la, iel/ellui) et chaque relation évolue en fonction de tes choix. L’IA adapte la narration, les dialogues et les scènes romantiques en temps réel. Aucune run ne se ressemble.
|
🔮 Corruption Runes — #68 7 sets · 6 slots · Tainted → Abyssal · +15 · Corruption Seals 🌀 Void Summoning — #71 4-step ritual · Convergence pity (soft 70, hard 90) · AI Arrival Scene 🌙 Shadow Vigil — #78 3 companions patrol offline (12h cap) · AI narrative report |
⚔️ Void Arena — #80 Async PvP · AI opponent teams · 5 ranks (Shadow Initiate → Void Sovereign) · weekly seasons 🔨 Void Forge — #105 3 pillars: Rune Reforging, Equipment Awakening, Corruption Infusion · unlocked via Kaelan affinity 💜 Resonance Bond — #104 15 levels · Echo Fragments · True Name · Void Form |
Void Hierarchy — 5 Tiers d’Ennemis #76
| Tier | Nom | Niveaux |
|---|---|---|
| I | Shades | 1–3 |
| II | Wraiths | 4–6 |
| III | Sentinels | 7–9 |
| IV | Arbiters | 10–12 |
| V | Echoes | 13+ |
11 types d’ennemis : Hollow Shade, Whispering Wraith, Umbral Stalker, Void Sentinel, Crimson Arbiter, Gilded Revenant, Abyssal Behemoth, Thorn Weaver, Eclipse Herald, Rift Colossus, The Nameless.
| Personnage | Rôle | Orientation | Pronoms | Couleur |
|---|---|---|---|---|
| Kaelan | Forgeron Maudit | Hétérosexuel | il/lui | #ff6b35 🟠 |
| Lyra | Archiviste Spectrale | Bisexuelle | elle/la | #b39ddb 🟣 |
| Nyx | Marchand du Vide | Pansexuel·le | iel/ellui | #ffe135 🟡 |
| Seraphina | Paladine Déchue | Lesbienne | elle/la | #ff2d78 🔴 |
| Ronan | Barde Itinérant | Gay | il/lui | #00bcd4 🟢 |
Affinity 0–100 · Resonance 1–15 · Relationship Preference (joueur·se choisit)
Direction Artistique #102
| Aspect | Détails |
|---|---|
| Palette | Gothic Candy — #ff2d78 #b39ddb #ffe135 #00bcd4 sur fonds sombres |
| Typographie | Cinzel Decorative (titres) · Inter (corps) · JetBrains Mono (code/stats) |
| UI | Manga panels · clip-path · particules · curseur custom |
| Principes | Menacing silhouette / welcoming detail · sincérité > ironie · found family > blood family |
| Service | Port(s) | Rôle |
|---|---|---|
| Client | 3000 |
Frontend React 18 + Phaser 3 |
| Nginx | 8080 |
API Gateway |
| Nakama | 7350 7351 |
Auth, storage, realtime, leaderboards |
| AI Director | 8001 |
Génération narrative et contenu (LLM) |
| Game Logic | 8002 |
Combat, gacha, progression, anomalies |
| Payment | 8003 |
Stripe checkout, webhooks, battle pass |
| PostgreSQL | 5432 |
Données paiements |
| CockroachDB | 26257 |
Données Nakama |
| Redis | 6379 |
Cache + broker Celery |
| Prometheus | 9090 |
Metrics |
| Grafana | 3001 |
Dashboards |
| Flower | 5555 |
Monitoring tâches Celery |
flowchart LR
C[Client React + Phaser] --> NGINX[Nginx Gateway]
NGINX --> NK[Nakama]
NGINX --> GL[Game Logic API]
NGINX --> AD[AI Director API]
NGINX --> PAY[Payment API]
AD --> R[(Redis)]
CW[Celery Worker] --> R
FL[Flower] --> CW
NK --> CR[(CockroachDB)]
PAY --> PG[(PostgreSQL)]
PR[Prometheus] --> AD
PR --> GL
PR --> PAY
GF[Grafana] --> PR
# 1. Configuration
cp .env.example .env # Éditer les clés (IA, Stripe, etc.)
# 2. Lancement
make dev # Build + démarrage de toute la stack
# 3. Vérification
make health| Service | URL |
|---|---|
| Client | http://localhost:3000 |
| Gateway | http://localhost:8080 |
| Prometheus | http://localhost:9090 |
| Grafana | http://localhost:3001 |
| Flower | http://localhost:5555 |
| Commande | Description |
|---|---|
make dev |
Démarre tous les services en mode développement |
make stop |
Arrête tous les services |
make clean |
Arrête + supprime les volumes |
make test |
Lance tous les tests Python |
make test-nakama |
Vérifie les types du runtime Nakama |
make test-client |
Build le client |
make lint |
Ruff sur les services Python |
make format |
Black sur les services Python |
make build |
Build toutes les images Docker |
make logs |
Affiche les logs de tous les services |
make health |
Vérifie la santé de tous les services |
make seed |
Injecte les données de test |
umbra-platform/
├── client/ # Frontend React 18 + Phaser 3
│ ├── public/ # Assets statiques
│ └── src/ # Composants, scènes, hooks
├── data/ # Assets partagés (gacha pools, traductions)
├── docs/ # Documentation
│ ├── api/ # Specs API (OpenAPI)
│ ├── architecture/ # Diagrammes et ADR
│ ├── game-design/ # GDD, systèmes, économie
│ └── guides/ # Guides d’onboarding
├── infrastructure/ # Infra & ops
│ ├── monitoring/ # Prometheus, Grafana
│ ├── nginx/ # Config reverse proxy
│ └── scripts/ # Scripts de déploiement
├── nakama/ # Nakama server + runtime TypeScript
├── services/
│ ├── ai-director/ # Génération IA + workers Celery
│ ├── game-logic/ # Combat, progression, gacha
│ ├── payment/ # Paiements Stripe + battle pass
│ └── shared/ # Modules partagés entre services
├── tests/ # Tests cross-service (intégration, charge)
├── scripts/ # Scripts utilitaires
├── docker-compose.yml
└── Makefile
Phase 2 — Vertical Slice #8
| Issue | Système | Statut |
|---|---|---|
| #68 | Corruption Runes | 🟡 En cours |
| #69 | Boss Encounters | 🟡 En cours |
| #70 | AI Narrative Pipeline | 🟡 En cours |
| #71 | Void Summoning (Gacha) | 🟡 En cours |
| #72 | Anomaly System | 🟡 En cours |
| #106 | Dungeon Run Loop | 🟡 En cours |
Phase 3 — Closed Alpha #9
| Issue | Système |
|---|---|
| #73 | Talents & Skill Trees |
| #74 | Achievement System |
| #75 | Daily Login & Rewards |
| #76 | Void Hierarchy (Ennemis) |
| #77 | Guild System |
| #78 | Shadow Vigil (Idle) |
| #79 | Weekly Events |
| #80 | Void Arena (PvP) |
| #81 | Crafting System |
| #82 | Housing & Decoration |
| #83 | Expedition System |
| #84 | Mount System |
| #85 | Transmog & Fashion |
| #86 | Photo Mode |
| #87 | Codex & Lore Archive |
| #98 | Otome / Romance Core |
| #99 | LGBTQ+ Romance Extension |
| #100 | AI Romance Narrative |
Phase 4 — Beta & Launch #10
| Issue | Système |
|---|---|
| #104 | Resonance Bond System |
| #105 | Void Forge |
| #102 | Style Guide Pop Cute Manga |
| #103 | Landing Page |
| #101 | Premium Login Screen |
| #88 | Monetization & Battle Pass |
| Boucle | Durée | Activités |
|---|---|---|
| Micro | 1–5 min | Combat, loot, rune drops |
| Quotidienne | 15–30 min | Shadow Vigil collect, daily login, forge |
| Hebdomadaire | 1–2h | Void Arena season, weekly events, guild raids |
| Long terme | Semaines | Resonance Bond progression, Void Form unlock, collection complète |
Le projet utilise detect-secrets pour éviter les commits accidentels de credentials.
pip install pre-commit detect-secrets
pre-commit install
detect-secrets scan > .secrets.baselineUMBRA — Build fast. Ship dark. Scale live ops.
Pop Cute Manga · Dark Fantasy · LGBTQ+ Friendly · AI-Powered