Skip to content

ibrahimoxx/Super-Mario

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍄 Super Mario Engine - JavaFX 2D Platformer

Java JavaFX Maven Architecture

Un moteur de jeu de plateforme 2D complet et performant, développé en Java 17 et JavaFX. Ce projet va bien au-delà d'un simple clone en intégrant une architecture moderne Entity Component System (ECS), un moteur physique robuste, et une intelligence artificielle avancée.


✨ Fonctionnalités Principales

  • 🏗️ Architecture ECS (Entity Component System) : Conception hautement modulaire qui sépare strictement les données (Components) de la logique métier (Systems). Cela permet une extensibilité maximale et d'excellentes performances.
  • 🚀 Moteur Physique Avancé : Gestion complète de la gravité, de l'inertie, des forces cinétiques de saut et détection précise des collisions avec des boîtes englobantes (AABB).
  • 🧠 Intelligence Artificielle (IA) : Ennemis dotés de comportements dynamiques (PatrolAI pour les rondes, ChaseAI pour la poursuite du joueur de manière réactive).
  • 🎮 Système de Gestion d'États : Transition fluide entre les différentes phases du jeu (Boot, Menus, Play, Pause, Game Over) via un StateManager robuste.
  • Event-Driven Architecture : Utilisation d'un EventBus personnalisé pour une communication asynchrone et découplée entre les différents modules du jeu (calcul du score, événements de collision, notifications de mort).
  • 🎵 Système d'Assets et Audio : Intégration sonore spatiale via JavaFX Media et rendu optimisé des sprites.

🛠️ Stack Technique & Patterns

  • Langage : Java 17
  • Framework UI : JavaFX 17
  • Gestion de dépendances et Build : Maven
  • Design Patterns Utilisés :
    • Entity-Component-System (ECS)
    • Observer (via EventBus)
    • State Pattern (pour les phases du jeu et l'IA)
    • Singleton (pour les gestionnaires d'assets)

🚀 Installation & Lancement

Prérequis

  • JDK 17 (ou supérieur)
  • Maven 3.6+

Étapes d'installation

  1. Cloner le dépôt

    git clone https://github.com/votre-username/Super-Mario-JavaFX-ECS.git
    cd Super-Mario-JavaFX-ECS
  2. Compiler le projet via Maven

    mvn clean install
  3. Lancer le jeu

    mvn javafx:run

🕹️ Contrôles du Jeu

Action Touche(s)
Se déplacer / Courir Flèches directionnelles ou Q / D
Sauter Espace ou Z / Flèche Haut
Mettre en pause P
Recommencer R

📂 Architecture du Code Source

src/main/java/com/mariofx/
├── engine/       # Cœur du moteur (GameLoop, StateManager, ECS, EventBus)
├── game/         # Logique spécifique au jeu (ScoreSystem, TimerSystem)
├── input/        # Gestionnaires d'entrées clavier
├── level/        # Génération et gestion des niveaux
├── model/        # Modèles de données métier
├── physics/      # Moteur de collisions et de gravité
├── util/         # Outils et constantes globales
└── view/         # Rendu graphique sur le Canvas JavaFX

🤝 Contact

Développé pour démontrer des compétences avancées en ingénierie logicielle et développement d'architecture de jeux vidéo orientée objet en Java.

About

Un moteur de jeu de plateforme 2D performant développé en Java 17 et JavaFX, utilisant une architecture ECS (Entity Component System) personnalisée, un moteur physique avancé et une IA ennemie réactive.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages