📜 Description
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.
🌟 Supported Platforms
🎮 Features
- ✅ 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.
📦 Prerequisites
- C++20
- Allegro 5
- g++
- make
- cmake
🚀 Installation
🐧 Linux (Debian-based)
- Install dependencies:
- Compile the project:
sudo apt install g++ make cmake liballegro5-dev
make
🐧 Linux (Arch Linux)
- Install dependencies:
- Compile the project:
sudo pacman -S gcc make cmake allegro
make
🍎 macOS
- Install Allegro using Homebrew:
- Compile the project:
brew install allegro
make
🪟 Windows
🎲 Usage
After compiling, run the game:
Linux/macOS
./raquette-baballe
Windows
raquette-baballe.exe
🎮 Controls
- `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.
🎁 Bonuses
- 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.
🛠️ Create Your Levels
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.).
📖 Documentation
For detailed guides and insights, visit the Raquette Baballe Wiki.