A Classic Maze-Chase Game built with C++ and OpenGL
This project is a 2D maze game developed as a final project for a 3rd-year Computer Graphics course. It's a modern take on classic arcade maze games, built from scratch using C++ and the OpenGL Utility Toolkit (GLUT). The game demonstrates core concepts of 2D graphics rendering, game loop management, state machines, and basic pathfinding AI.
The player controls the Mouse, whose goal is to collect all the cheese in the maze. However, an intelligent Cat is constantly hunting the player using a Breadth-First Search (BFS) algorithm to find the shortest path. Can you clear all three levels before you're caught?
- Classic Arcade Gameplay: Simple to learn, but challenging to master.
- Intelligent Enemy AI: The cat doesn't just wander randomly; it actively hunts you using a BFS pathfinding algorithm.
- Dynamic Difficulty: The cat gets faster as you collect more cheese, increasing the tension.
- Power-Ups: Grab the blue sparkle to temporarily slow the cat down and make your escape!
- Multiple Levels: Three unique, hand-designed mazes to conquer.
- Polished User Experience: Features an animated intro, clear menus, and full support for window resizing.
For a detailed breakdown of the project's design, implementation choices, and algorithms, please see the full documentation:
-> View the ChasingGame Documentation PDF
Playable versions for both Linux and Windows are available.
- Go to the Releases Page of this repository.
- Download the appropriate file for your operating system (
.tar.gzfor Linux,.zipfor Windows).
- Extract the archive:
tar -xzvf CatAndMouse-Linux.tar.gz - Navigate into the new folder:
cd CatAndMouse-Linux - Run the launch script:
./run.shThe script will automatically check if you have thefreeglut3library. If not, it will give you the command to install it.
- Extract the
.zipfolder. - Double-click the
ChasingGame.exefile to play. The requiredfreeglut.dllis included.
This project is licensed under the MIT License - see the LICENSE file for details.

