Un jeu de tower defense dans l'esprit de Plants vs Zombies, écrit en C avec la bibliothèque raylib. On place des canons le long du terrain pour arrêter des vagues d'ennemis de plus en plus coriaces, jusqu'aux boss.
- Plusieurs types de canons à poser et à améliorer (quatre niveaux de puissance)
- Des vagues d'ennemis variés : slimes, gobelins, golems, et des boss de fin
- Plusieurs décors de carte (plage, montagne, neige, mer)
- Une pelle pour retirer un canon et réorganiser sa défense
- Un tutoriel intégré (« Guide de défense ») et une vague finale à la défaite
- Bande-son et effets sonores
Il faut un compilateur C, make et raylib installés (voir plus bas selon ton système).
make # compile le jeu
make run # compile puis lance
make clean # supprime les fichiers de compilationL'exécutable produit s'appelle game (Linux/macOS) ou game.exe (Windows).
├── src/ Code source (main.c, game.c)
├── include/ En-têtes (game.h)
├── assets/ Images et sons du jeu
├── Makefile Règles de compilation
└── .vscode/ Tâches de build et de debug pour VS Code
xcode-select --install # outils de compilation Apple
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Homebrew si besoin
brew install raylib pkg-configVérifie avec pkg-config --libs raylib (une ligne de librairies doit s'afficher), puis make.
Installe MSYS2, ouvre le terminal UCRT64 ou MINGW64, mets-le à jour avec pacman -Syu (deux fois), puis installe la chaîne de compilation :
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-raylib mingw-w64-x86_64-pkg-config makeEnsuite make dans le dossier du projet, et ./game.exe pour lancer.
Installe l'extension C/C++ de Microsoft. Le projet fournit déjà .vscode/tasks.json (compilation) et .vscode/launch.json (exécution et debug).
| Action | Raccourci |
|---|---|
| Compiler | Ctrl + Shift + B |
| Lancer et debugger | F5 |
Si VS Code souligne #include "raylib.h" alors que la compilation passe, c'est normal : IntelliSense ne connaît pas les chemins de pkg-config. Ajoute-les dans .vscode/c_cpp_properties.json, dans includePath, par exemple /opt/homebrew/include sur macOS ou C:/msys64/mingw64/include sur Windows, puis redémarre l'éditeur.
Si le jeu ne semble pas refléter tes derniers changements, fais un make clean avant de recompiler.
Projet étudiant réalisé en C avec raylib, pour apprendre la programmation de jeux (rendu, boucle de jeu, gestion des entités et des collisions).
