← Tous les projets

Jeu vidéo

Pac-Man

Un vrai jeu vidéo, jouable en ligne : Pac-Man recréé à deux en Python. J'ai écrit le moteur : la simulation à 60 images par seconde, l'IA des quatre fantômes et les labyrinthes générés.

  • Python
  • Pygame
  • Moteur de jeu
  • IA de jeu
  • Graphes / BFS
  • PyInstaller
  • Travail en binôme

Le projet

Une recréation du Pac-Man de 1980, faite en binôme à l’École 42 : des labyrinthes générés, quatre fantômes avec chacun leur personnalité, un mode duo, des scores sauvegardés et des dessins faits à la main.

Le jeu est jouable sans rien installer : des versions Linux et Mac sont publiées sur itch.io.

Ma partie : le moteur de jeu

Nous avons séparé le projet en deux. Mon binôme a fait les écrans, le rendu, le son et les animations. J’ai fait le moteur du jeu :

  • la simulation (60 images par seconde) : déplacements, collisions, pac-gommes, vies, niveaux ;
  • l’IA des quatre fantômes, comme dans l’original. Chaque fantôme alterne des phases : dispersion (il rejoint son coin), poursuite (chacun a sa stratégie : Blinky fonce sur Pac-Man, Pinky vise devant lui, Inky le prend à revers, Clyde garde ses distances) et fuite après une super pac-gomme ;
  • le déplacement des fantômes : le labyrinthe devient un graphe (chaque case est un nœud relié à ses voisins), et chaque fantôme y fait un parcours en largeur (BFS) pour trouver le pas qui le rapproche de sa cible ;
  • la fabrique de labyrinthes, à partir d’un générateur imposé ou de labyrinthes classiques ;
  • la session de jeu : modes solo et duo (le joueur 2 contrôle un fantôme).

L’architecture

Le moteur ne sait pas dessiner, et le rendu ne sait pas jouer. À chaque image, le moteur écrit un état du jeu unique, et l’affichage se contente de le lire. Les deux parties ne partagent rien d’autre. Résultat : nous avons pu travailler en parallèle sans nous gêner, et tester le moteur sans écran.

Le jeu ne plante jamais au démarrage : il vérifie ses fichiers au lancement, et une configuration invalide est remplacée par des valeurs sûres.

Ce que j’ai appris

  • Découper un projet pour travailler à deux : un contrat clair entre les deux parties vaut mieux que du code partagé.
  • Livrer un vrai produit : packager le jeu en exécutable (PyInstaller) et le publier pour que n’importe qui puisse y jouer.