A clone of the famous retro arcade game Space Invaders, developed in C using the SDL2 graphics library.
- Smooth ship movement (with collision detection and screen boundaries).
- Alien swarms with progression and animation systems.
- Shooting mechanics (player missiles and enemy bombs).
- Destructible shields.
- Damage and destruction animations.
- Gamepad (Plug & Play) and keyboard support.
- Victory and Game Over screens with an interactive menu.
This project is designed to be compiled in a Linux environment. It requires the gcc compiler, make, and the SDL2 development libraries.
Installing dependencies:
Arch Linux / Manjaro:
sudo pacman -S base-devel sdl2 sdl2_ttfDebian / Ubuntu:
sudo apt update
sudo apt install build-essential libsdl2-dev libsdl2-ttf-devFrom the root of the project directory, run:
make clean && makeThe game is playable with both a keyboard and a controller (automatically detected at launch).
| Action | Keyboard | Controller (feature) |
|---|---|---|
| Move left | Q |
Left Joystick |
| Move right | D |
Right Joystick |
| Shoot | P |
- |
| Start game | S |
- |
| Main Menu | M |
- |
| Quit | W |
- |
This project is open to customization. Here are the planned improvements:
- Add support for popular controllers (PlayStation, Xbox, etc.).
- Add activatable power-ups via drops (e.g., falling from defeated invaders).
- Create an interactive menu with viewable game statistics.
- Create a portable
.AppImagefor Linux. - Cross-compile a
.exeversion for Windows. - Add sound effects and background music (via SDL_mixer).
- Add a scoring system with a saved High Score accessible from the menu.
- Add different enemy types and a final boss.
This project was developed in an academic context. Feel free to fork the repository, explore the code, and submit Pull Requests for improvements.
