Case Study

Zelda Like

Développement d'un jeu 2D avec déplacements, combats et boss.

JavaJavaFX

01 — Le défi graphique

Ce projet universitaire (2024) avait pour but de franchir un cap important : passer des applications consoles purement textuelles au développement d’une application fenêtrée avec rendu graphique dynamique.

L’objectif était de réaliser un Action-RPG en vue de dessus, s’inspirant des classiques “Zelda”, en utilisant la bibliothèque JavaFX pour dessiner l’interface et animer des “Sprites” 2D.

[IMAGE_PLACEHOLDER: zelda-game]

L’implémentation d’une “Game Loop” (boucle de jeu à 60 images par seconde) a été nécessaire pour gérer la fluidité des déplacements et le taux de rafraîchissement des animations, ce qui est le cœur de tout moteur graphique temps réel.

02 — Le système de navigation et l'univers

L’exploration étant essentielle à ce type de jeu, nous avons dû concevoir un système de Map composé de “Tuiles” (Tiles).

Le personnage principal répond dynamiquement aux entrées clavier (Touches Z,Q,S,D). La difficulté technique majeure a été d’implémenter les masques de collisions (Hitboxes) pour empêcher le joueur de traverser les décors solides.

[IMAGE_PLACEHOLDER: zelda-map]

Le chargement des cartes gère la transition spatiale, calculant la position relative du joueur à chaque instant.

03 — Les combats et la gestion d'état

La dynamique du jeu repose sur l’interaction avec des entités hostiles. Nous avons programmé une intelligence de base pour le ciblage et la détection d’impact.

Le système de combat gère les calculs de points de vie et d’invincibilité temporaire, culminant avec l’intégration de Boss possédant leurs propres patterns d’attaques.

[IMAGE_PLACEHOLDER: zelda-combat] [IMAGE_PLACEHOLDER: zelda-boss]

04 — L'inventaire et la persistance

Pour la dimension RPG, le joueur peut ramasser des objets et posséder un équipement varié.

L’interface graphique superposée (HUD) permet de visualiser les objets possédés. La mécanique de sélection permet d’équiper différentes armes qui modifient alors directement les statistiques de combat ou le rayon d’attaque.

[IMAGE_PLACEHOLDER: zelda-inventory]

Enfin, le jeu ne serait pas complet sans un système de sauvegarde. L’état complet de la partie (position, points de vie, inventaire) est sérialisé pour permettre de recharger sa session.