Raquette Baballe is a game inspired by the classic brick-breaking arcade game Arkanoid. Developed in C++ using the Allegro graphics library, it adheres to the Model-View-Controller (MVC) design pattern for clear separation of logic, rendering, and control. The project is fully open-source.
- ✅ Dynamic Gameplay: Racket movement using the mouse, with responsive ball physics.
- ✅ Challenging Levels: Multiple levels loaded from `.txt` files, featuring unique designs.
- ✅ Score Tracking: Tracks your score and saves the best score locally.
- ✅ Diverse Bricks: Various brick colors with different point values.
- ✅ Special Bricks: Silver and gold bricks with unique properties.
- ✅ Game Bonuses: Collect bonuses to gain extra lives, expand the racket, and more.
- 🔹 C++20
- 🔹 g++
- 🔹 make
- 🔹 cmake
-
Install dependencies:
sudo apt install g++ make cmake
-
Compile the project:
make
-
Install dependencies:
sudo pacman -S gcc make cmake
-
Compile the project:
make
-
Install MinGW:
-
Compile the project:
make
After compiling, run the game:
-
Linux/macOS:
./raquette-baballe
-
Windows:
raquette-baballe.exe
r: Reset the best score and current score.←: Move to the previous level.→: Move to the next level.a: Replay the current level.q: Quit the game.Spacebar: Shoot lasers or release the ball when stuck to the racket.
Collect bonuses by catching them with your racket. Each bonus is marked with a letter inside the corresponding brick:
- S: Slow down the ball.
- E: Gain an extra life.
- W: Expand the racket width.
- L: Shoot lasers.
- T: Make the ball stick to the racket.
- B: Split the ball into three.
Design custom levels in the ressources/levels directory using .txt files. Name your files numerically (e.g., 1.txt, 2.txt). Format each line as follows:
- X-coordinate: Horizontal position of the brick.
- Y-coordinate: Vertical position of the brick.
- Color: Brick color (e.g.,
red,blue). - Bonus: (Optional) Specify a bonus (
SlowDown,ExtraLife, etc.).
This project use cpp-make-cmake-template (by @Evr5) that provides a cross-platform CMake + Make integration, a support for static and dynamic linking and a modular structure.
For detailed guides and insights, visit the Raquette Baballe Wiki.
