Skip to content

decarvalhoe/umbra-platform

Repository files navigation

UMBRA

Dark Fantasy · Pop Cute Manga · Roguelite · AI-Powered · LGBTQ+

Frontend Backend AI Infra

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.


Le Jeu

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.


Systèmes de Jeu

🔮 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.


Compagnons Romançables #98 #99 #100

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

Architecture

Services & Ports

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

Diagramme

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
Loading

Démarrage Rapide

# 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

Endpoints

Service URL
Client http://localhost:3000
Gateway http://localhost:8080
Prometheus http://localhost:9090
Grafana http://localhost:3001
Flower http://localhost:5555

Commandes

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

Structure du Projet

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

Roadmap

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

Boucles d’Engagement

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

Sécurité

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.baseline

UMBRABuild fast. Ship dark. Scale live ops.

Pop Cute Manga · Dark Fantasy · LGBTQ+ Friendly · AI-Powered

About

Project Umbra - Isometric Hack n slash RPG Platform (Monorepo)

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors