A top-down zombie survival game built with Go and Raylib.
Survivor is a 2D top-down shooter where you must fight off endless waves of zombies. The difficulty increases with each level as more zombies spawn with increased health and damage. How long can you survive?
- Fast-paced zombie survival gameplay
- Multiple weapons: Pistol, Shotgun, Mitra, and Minigun
- Grenade throwing mechanics
- Progressive difficulty with increasing enemy counts
- Resource management (ammo, health, grenades)
- Dynamic blood effects and impact animations
- Game statistics tracking (kills, shots fired, damage dealt, etc.)
- Go 1.20 or higher
- Raylib graphics library
-
Clone the repository:
git clone https://github.com/yourusername/survivor.git cd survivor -
Build the game:
make build -
Run the game:
make run
- WASD: Move the player
- Mouse: Aim
- Left Click: Shoot
- E: Throw grenade
- R: Reload weapon
- ESC: Pause/Resume game
- Pistol: Unlimited ammo, moderate fire rate
- Mitra: High damage, moderate fire rate
- Shotgun: Multiple projectiles, slow fire rate
- Minigun: Very fast fire rate, low damage per bullet
- Defeat zombies to progress through levels
- Collect weapon pickups and ammo
- Manage your health and position to avoid being overwhelmed
- Strategic use of grenades for crowd control
- Navigate around obstacles in the environment
This game is built with Go and uses the Raylib library for graphics and input handling.
main.go: Game loop and core functionalityplayer.go: Player movement, rendering, and combatenemy.go: Enemy AI, movement, and renderingprojectile.go: Bullet physics and collisiongrenade.go: Grenade mechanicsloot.go: Weapon and ammo pickupscollision.go: Collision detection systemassets/: Game sprites and textures
This project is licensed under the MIT License
