📖 Présentation du Projet
PFE-Roguelike est un projet de fin d'études qui combine développement de jeu vidéo et intelligence artificielle. Le projet implémente un jeu de type roguelike avec génération procédurale de cartes et des ennemis contrôlés par des algorithmes d'apprentissage par renforcement.
Objectifs principaux
- Créer un système de génération procédurale de donjons
- Implémenter des ennemis intelligents utilisant le Q-learning
- Développer un système de combat et d'inventaire
- Intégrer une base de données pour la persistance
⚡ Fonctionnalités
✅ Implémentées
- Génération procédurale de cartes avec salles et couloirs
- Système de déplacement du joueur (ZQSD)
- Portes et téléportation entre salles
- Ennemis avec déplacement IA (Q-learning)
- Système de projectiles
- Brouillard de guerre et découverte progressive
- Système d'items (armes, potions)
- Gestion de la base de données (PostgreSQL, MongoDB)
🚧 En cours / À venir
- Amélioration de l'équilibrage du jeu et de la difficulté.
- Ajout de nouveaux types d'ennemis et de comportements IA.
- Extension du système d'inventaire avec plus d'objets et d'effets.
- Implémentation de boss et de niveaux spéciaux.
- Refonte graphique de l'interface utilisateur (GUI).
- Optimisation des performances.
🛠️ Technologies Utilisées
Langages & Frameworks
- Python 3.x (langage principal)
- Pygame / Arcade (moteur de jeu)
- TensorFlow (IA)
- FastAPI (API backend)
Bases de données
- PostgreSQL (données structurées)
- MongoDB (logs et données flexibles)
- psycopg2 (connexion PostgreSQL)
- pymongo (connexion MongoDB)
Outils de développement
- Git & GitHub (versioning)
- VSCode (éditeur)
- pytest (tests unitaires)
- colorama (affichage console)
🤖 Intelligence Artificielle
Les ennemis du jeu utilisent un algorithme de Q-learning pour apprendre à se déplacer intelligemment et poursuivre le joueur.
Caractéristiques du système RL
- Apprentissage par renforcement (Reinforcement Learning)
- Algorithme Q-learning avec mise à jour progressive
- Récompenses basées sur la distance au joueur
- Décroissance epsilon pour équilibrer exploration/exploitation
- Évitement des collisions entre monstres
📊 Espace réservé pour : futurs graphiques de performance, métriques d'apprentissage et comparaisons de stratégies de l'IA.
🚀 Installation et Démarrage
Prérequis
- Python 3.8 ou supérieur
- pip (gestionnaire de paquets Python)
- Git
Installation (Windows)
# 1. Cloner le dépôt
git clone https://github.com/RaykeshR/PFE-Roguelike.git
cd PFE-Roguelike
# 2. Créer un environnement virtuel
python -m venv .venv
# 3. Activer l'environnement
.venv\Scripts\activate
# 4. Installer les dépendances
python -m pip install --upgrade pip
pip install -r requirements.txt
# 5. Lancer le jeu
python main.py
Installation (Linux/Mac)
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python main.py
📈 Suivi du Projet
Statistiques
Voir les statistiques du projet
Raykesh :
Chrisphen :
Maxence :
Coumba :
Sabri :
Roadmap
La feuille de route du projet sera bientôt disponible, détaillant le calendrier et les jalons importants.
Documentation
La documentation technique, incluant les diagrammes UML et l'architecture du projet, sera accessible prochainement.
🎯 Contributions & Tests
Le projet utilise pytest pour les tests unitaires.
# Lancer tous les tests
python run_tests.py
# Lancer des tests spécifiques
PYTEST_K=map python run_tests.py
📝 Un guide de contribution détaillé sera fourni pour aider les développeurs à participer au projet.