Don't Look Up - Server
Backend du jeu "Don't Look Up", un jeu narratif post-apocalyptique généré par IA.
🛠️ Installation
- Assurez-vous d'avoir Python 3.10+ et Poetry installés
- Clonez le repository
- Installez les dépendances :
cd server
poetry install
- Créez un fichier
.env
à la racine du dossierserver
avec :
MISTRAL_API_KEY=votre_clé_api_mistral
🚀 Lancement du serveur
poetry run dev
Le serveur démarrera sur http://localhost:8000
🎮 Tests du jeu
Le projet inclut un script de test qui permet de jouer au jeu en mode console et de tester la génération d'histoire.
Modes de lancement
- Mode interactif (normal) :
poetry run test-game
- Mode automatique (pour les tests) :
poetry run test-game --auto
- Mode automatique avec nombre de tours personnalisé :
poetry run test-game --auto --max-turns 20
- Mode automatique avec affichage du contexte complet :
poetry run test-game --auto --show-context
Codes de retour
En mode automatique, le script retourne :
- Code 0 : Victoire
- Code 1 : Défaite, erreur ou timeout (> 15 tours par défaut)
Exemple d'utilisation dans un script
# Lancer 5 tests automatiques d'affilée
for i in {1..5}; do
echo "Test run $i"
poetry run test-game --auto || echo "Test $i failed"
done
📚 Structure du projet
server/
├── api/ # Routes et modèles FastAPI
├── core/ # Logique métier et générateurs
│ ├── generators/ # Générateurs (histoire, univers, etc.)
│ └── prompts/ # Templates de prompts pour l'IA
├── scripts/ # Scripts utilitaires
└── services/ # Services externes (Mistral, etc.)
🔄 Workflow de génération
Génération de l'univers (
UniverseGenerator
)- Style graphique
- Genre
- Époque
- MacGuffin
- Histoire de base
Génération des segments d'histoire (
StoryGenerator
)- Texte narratif
- Choix
- Prompts d'images
- Métadonnées (temps, lieu)
Gestion de l'état du jeu (
GameState
)- Progression de l'histoire
- Historique des choix
- État du monde