← Retour aux projets

SAE · Jeu vidéo C#

Pac-Man Shattered World

Jeu Pac-Man développé en C# avec WinForms et .NET 8 dans le cadre d’un projet universitaire. Le projet repose sur plusieurs mondes inspirés d’univers vidéoludiques, avec gestion des collisions, états de jeu, logique des ennemis et algorithmes de graphes pour le pathfinding.

Aperçu du projet Pac-Man Shattered World

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.

Aperçu du projet

Menu principal

Présentation du concept Pac-Man Shattered World

Menu Pause

Monde Minecraft du projet Pac-Man Shattered World

Monde Minecraft

Monde Sonic du projet Pac-Man Shattered World

Monde Sonic

Monde FIFA du projet Pac-Man Shattered World