Le Labyrinthe des Dys-Parus

Jeu de labyrinthe avec algorithme de génération procédurale

Novembre 2025 Java JavaFX Algorithmes

Aperçu du projet

Le Labyrinthe des Dys-Parus est un jeu de labyrinthe innovant développé en Java avec JavaFX. Le joueur progresse à travers plusieurs étapes qui changent la manière de voir et d'interagir avec le jeu, offrant une expérience immersive unique. Le projet propose un mode coopératif et un mode libre pour une expérience de jeu diversifiée, tout en intégrant des mécaniques de jeu progressives qui évoluent au fil de la partie.

Au cours de ce projet, j'ai été responsable de la conception de l'architecture globale du jeu, de l'implémentation des algorithmes de génération procédurale des labyrinthes, ainsi que du développement de l'interface graphique avec JavaFX. J'ai également travaillé sur la gestion des différents modes de jeu et la synchronisation des actions en mode coopératif.

Contexte

SAÉ réalisée en équipe dans le cadre du BUT Informatique à l'IUT de Lille. Le projet vise à approfondir la génération procédurale, le développement d'interfaces graphiques JavaFX et la conception de systèmes de jeu modulaires.

Objectifs

  • Concevoir un moteur de gĂ©nĂ©ration de labyrinthes paramĂ©trable et performant.
  • Proposer plusieurs modes de jeu (progression, coopĂ©ratif, libre) autour d'un mĂŞme cĹ“ur logique.
  • Livrer une interface graphique JavaFX claire et jouable de bout en bout.

Mon rĂ´le

Au sein de l'équipe, j'ai pris en charge l'architecture globale (patterns Observateur et Factory), l'implémentation des algorithmes de génération et une partie de l'interface JavaFX. J'ai également contribué à la synchronisation des actions en mode coopératif et à la coordination des points d'intégration entre les modules.

Fonctionnalités principales

  • GĂ©nĂ©ration procĂ©durale Algorithme de gĂ©nĂ©ration de labyrinthes paramĂ©trables avec diffĂ©rents niveaux de complexitĂ©
  • Interface graphique moderne DĂ©veloppĂ© avec JavaFX pour une expĂ©rience visuelle fluide et immersive
  • Plusieurs modes de jeu Mode histoire avec Ă©tapes progressives, mode coopĂ©ratif et mode libre
  • MĂ©caniques Ă©volutives La perception du jeu change selon les Ă©tapes franchies
  • Système de progression DĂ©blocage progressif de nouvelles fonctionnalitĂ©s et dĂ©fis

Technologies utilisées

Java

Langage principal du projet, pour la logique de jeu et les algorithmes

JavaFX

Framework pour l'interface graphique et les animations

Algorithmes de génération

Génération de labyrinthes parfaits par parcours en profondeur randomisé (DFS) et labyrinthes imparfaits par densité de murs

POO avancée

Architecture orientée objet avec patterns Observateur (AbstractModele) et Factory (MazeFactory)

Défis techniques

Algorithme de génération performant

Conception d'un algorithme de génération de labyrinthes efficace et paramétrable, capable de créer des parcours variés et équilibrés en termes de difficulté.

Gestion de l'affichage dynamique

Mise en place d'un système d'affichage qui s'adapte selon les étapes du jeu, modifiant la perception du joueur de manière fluide.

Mode coopératif

Implémentation d'un système de jeu à plusieurs joueurs avec synchronisation des actions et gestion des interactions.

Compétences développées

Compétences techniques

  • Conception et implĂ©mentation d'algorithmes complexes
  • DĂ©veloppement d'interfaces graphiques avec JavaFX
  • Architecture logicielle avec patterns Observateur et Factory
  • Gestion d'Ă©vĂ©nements et interactions utilisateur
  • Optimisation de performances pour le rendu graphique
  • Tests et dĂ©bogage d'applications complexes

Compétences transversales

  • Travail d'Ă©quipe : dĂ©coupage des modules entre dĂ©veloppeurs et intĂ©gration continue des contributions.
  • Rigueur : maintien d'une architecture cohĂ©rente malgrĂ© l'ajout progressif de modes de jeu.
  • RĂ©solution de problèmes : debug de cas limites de gĂ©nĂ©ration et de synchronisation coopĂ©rative.

Résultats obtenus

Livrable fonctionnel intégrant les trois modes de jeu prévus, accompagné des diagrammes UML (classes, cas d'utilisation) et d'une démonstration jouable. Le moteur de génération supporte labyrinthes parfaits (DFS) et imparfaits, avec des paramètres ajustables (taille, densité).

Bilan & recul

  • Ce que j'ai appris : appliquer concrètement des patterns POO Ă  un projet de taille moyenne, plutĂ´t que les voir uniquement en cours.
  • DifficultĂ© surmontĂ©e : la synchronisation du mode coopĂ©ratif a nĂ©cessitĂ© de revoir le modèle d'Ă©vĂ©nements ; la sĂ©paration modèle/vue via Observateur a dĂ©bloquĂ© la situation.
  • Ce que je referais autrement : Ă©crire les tests unitaires plus tĂ´t et figer l'API du modèle avant de coder les modes de jeu, pour limiter les refontes.

Captures du projet

Explorez le code

Le code source complet est disponible sur GitHub. N'hésitez pas à explorer l'implémentation, cloner le projet et proposer des améliorations !

Voir le repository GitHub →