Moteur RPG C++

Jeu 2D avec SFML 3 et Architecture Orientée Objet

Le Contexte

Ce projet est un moteur de jeu RPG en 2D, fortement inspiré de l'univers de Pokémon. Développé de A à Z en C++ natif en s'appuyant sur la bibliothèque multimédia SFML 3, l'objectif était de créer une base technique solide et évolutive.

Au-delà de l'aspect ludique, ce développement m'a permis de mettre en pratique des concepts d'architecture logicielle complexes : la gestion rigoureuse de la mémoire, l'implémentation de Game States (États de jeu), un système Entity-Component rudimentaire, et la gestion des événements asynchrones.

Moteur d'Exploration

  • Tile Engine : Système de rendu basé sur des grilles. Chargement dynamique des calques (Sol & Décor) depuis des fichiers .csv.
  • Caméra Dynamique : Algorithme de suivi fluide du joueur avec Clamping (verrouillage de la caméra sur les bordures de la carte).
  • Collisions : Système de détection des obstacles physiques (arbres, eau, bords de carte).
  • Hautes Herbes & RNG : Déclenchement de rencontres aléatoires basé sur le mouvement du joueur.

Stack Technique

  • C++ C++ 17 : Langage principal
  • SFML SFML 3.0 : Rendu Audio/Vidéo
  • CSV : Maps Data
  • Make Make : Compilation

Système de Combat & Audio

⚔️ Logique Tour par Tour

Le jeu intègre un système de combat complet avec interface graphique (GUI). Le joueur peut naviguer dans les menus via les touches directionnelles (ou Q/D) pour choisir entre attaquer ou se soigner. Les barres de vie s'actualisent en temps réel, complétées par un log de combat textuel. L'intelligence artificielle gère quant à elle un bestiaire de 4 ennemis aux statistiques uniques via des choix aléatoires.

🎵 Transitions Audio & Secrets

Pour renforcer l'immersion, un système de Crossfade (transition fluide) gère le passage entre la musique d'exploration et la musique de combat. J'ai également caché un Easter Egg interactif : un événement spécial se déclenche uniquement si le joueur marche sur la tuile n°102 de la carte... 🕺

Aperçu du Jeu

Quelques images du moteur en action (Exploration & Combat) :