Objectif
À quoi sert le projet ?
Pac-Man Shattered World est une revisite du jeu Pac-Man classique. L’objectif était de développer
un jeu fonctionnel en C# tout en intégrant des mécaniques plus avancées : plusieurs mondes,
des objectifs différents selon les niveaux, une logique d’ennemis et des algorithmes de graphes.
Le concept “Shattered World” repose sur l’idée de traverser plusieurs univers inspirés de jeux vidéo.
Chaque monde possède son ambiance, ses règles, ses ennemis et ses objectifs.
Fonctionnalités
Ce que permet le jeu
Déplacements
Déplacement du joueur sur la carte avec gestion des directions et des contraintes du labyrinthe.
Collisions
Détection des collisions avec les murs, les éléments de jeu, les ennemis et les objectifs.
Score & vies
Système de score, gestion des vies et conditions de défaite ou de réussite.
États du jeu
Gestion du menu, de la pause, de la partie en cours et de la fin de partie.
Plusieurs mondes
Chaque monde possède sa propre logique, ses éléments visuels et ses objectifs.
Ennemis
Gestion des comportements ennemis, déplacements et interactions avec le joueur.
Algorithmique
Pathfinding et graphes
Une partie importante du projet repose sur la modélisation de certains déplacements sous forme de graphe.
Cette approche permet de calculer des chemins et d’améliorer la logique de déplacement des ennemis.
- Utilisation de l’algorithme de Dijkstra pour le pathfinding.
- Utilisation du parcours eulérien dans la logique de graphe.
- Modélisation de la carte sous forme de nœuds et de connexions.
- Gestion des chemins selon la position du joueur et des ennemis.
- Application concrète de notions théoriques dans un jeu vidéo.
Architecture
Organisation technique
Le projet est structuré autour d’une logique orientée objet : séparation des responsabilités,
gestion des entités, des états du jeu, des cartes, des collisions et des déplacements.
Joueur
Carte / Monde
Graphes
Ennemis
Mondes
Timeline des mondes
01
Minecraft
Collecte de ressources pour fabriquer une hache et débloquer la sortie du labyrinthe.
02
Sonic
Collecte des émeraudes du chaos avec une logique de vitesse et de bonus de déplacement.
03
FIFA
Récupération de ballons pour débloquer l’objectif final : le ballon d’or.
04
Mario
Collecte de fragments de clé et utilisation de bonus inspirés de l’univers Mario.
05
Zelda
Recherche de morceaux de Triforce et de la Master Sword pour progresser.
06
Doom
Ambiance plus rapide et hostile, avec fragments d’arme et ennemi bloquant la sortie.
Compétences mobilisées
Ce que ce projet démontre
Développement C#
.NET 8
WinForms
POO
Algorithmes de graphes
Dijkstra
Pathfinding
Gestion de collisions
Projet en équipe
Apports
Ce que ce projet m’a apporté
Ce projet m’a permis de renforcer mes compétences en C#, en programmation orientée objet
et en structuration d’un projet applicatif. Il m’a aussi permis de relier des notions
algorithmiques à un cas concret, notamment avec les graphes et le pathfinding.
La dimension jeu vidéo a également demandé une réflexion sur la gestion des états,
des interactions utilisateur, des collisions et du comportement des ennemis.