Choi Tsz Yin (3036259176)
Yau Tik Hang (3036262018)
🧟 Zombie Rush is an intense 2D survival shooter game written in C++ where you must defend against waves of undead!
🫨 Oh no! Zombies are invading the University of Hong Kong! Grab your weapon and defend your campus before it's overrun! Your goal is simple - survive wave after wave of relentless zombies to see tomorrow's dawn.
⚔️ Random power-ups will spawn throughout the map - grab them to upgrade your firepower, armor, or health. Think you're good? Try our brutal Hard mode where items don't spawn at all!
💥 With multiple difficulty levels and increasingly challenging waves, Zombie Rush offers endless undead-slaying action. If you love fast-paced shooting games with survival elements, this is your next addiction!
DEMO Video <==== Click me!
To compile and run the game:
make runTo clean up compiled files:
make clean-
W/A/S/D: Move your character -
E: Shoot in your facing direction -
1/2/3: Select menu options -
ENTER: Confirm selections -
Q: Open quit menu
-
Zombies spawn in random locations each wave
-
Zombie movement has random elements while still tracking player
-
Power-ups (health, armor, range) spawn randomly when:
-
Killing zombies (higher chance)
-
Moving around the map (lower chance)
-
-
Walls are procedurally generated in different configurations (Straight or horizontal)
-
Player struct stores all character stats (health, armor, money, position)
-
GameState struct manages:
-
Current map layout
-
Zombie positions (vector of pairs)
-
Coin positions (vector of pairs)
-
Wave progression
-
-
Vectors used for zombie and coin positions automatically handle dynamic memory
-
Efficient memory usage through proper data structure selection
-
Terminal state management for real-time input handling
-
Game state preserved during gameplay sessions
-
Clean separation of concerns across:
-
Core game logic (game.cpp/h)
-
Player mechanics (player.cpp/h)
-
Map generation (map.cpp/h)
-
Terminal handling (terminal.cpp/h)
-
Main entry point (main.cpp)
-
COMP2113_Group43/
├── Makefile # For code compilation
├── README.md # This file
├── game.cpp/h # Core game logic
├── player.cpp/h # Player mechanics
├── map.cpp/h # Map generation
├── terminal.cpp/h # Terminal handling
└── main.cpp # Entry point-
Three distinct levels:
Difficulty Health Armor Range Items available Easy 100 50 4 Yes Normal 80 30 3 Yes Hard 60 0 3 No Hard: Only for true zombie slayers!
This game uses only standard C++ libraries
- no external dependencies required!

