Skip to main content

Top-down zombie survival game built with pygame.

Project description

Zombie Escape

The city is overrun with zombies! You fled the horde, taking refuge in an abandoned factory.

Inside, it's a maze. They won't get in easily. But you have no weapons. Night has fallen. The power's out, plunging the factory into darkness.

Your only tool: a single flashlight. A car... somewhere inside... it's your only hope.

Pierce the darkness and find the car! Then, escape this nightmare city!

Overview

This game is a simple 2D top-down action game where the player aims to escape by finding and driving a car out of a large building infested with zombies. The player must evade zombies, break through walls to find a path, and then escape the building in a car.

Controls

  • Player/Car Movement: W / (Up), A / (Left), S / (Down), D / (Right)
  • Enter Car: Overlap the player with the car.
  • Quit Game: ESC key
  • Restart: R key (on Game Over/Clear screen)
  • Window Scale (title/settings only): [ to shrink, ] to enlarge

Settings (Title Screen)

Open Settings from the title to toggle gameplay assists:

  • Footprints: Leave breadcrumb trails so you can backtrack in the dark.
  • Fast zombies: Allow faster zombie variants; each zombie rolls a random speed between the normal and fast ranges.
  • Car hint: After a delay, show a small triangle pointing toward the fuel (Stage 2 before pickup) or the car.
  • Flashlight pickups: Enable flashlight spawns that expand your visible radius when collected.
  • Steel beams: Adds tougher single-cell obstacles (5% density) that block movement; hidden when stacked with an inner wall until that wall is destroyed.

Game Rules

Stages

At the title screen you can pick a stage:

  • Stage 1: Find the Car — locate the car and drive out.
  • Stage 2: Fuel Run — find a fuel can first, pick it up, then find the car and escape.

An objective reminder is shown at the top-left during play.

Characters/Items

  • Player: A blue circle. Controlled with the WASD or arrow keys.
  • Zombie: A red circle. Will chase the player (or car) once detected.
    • When out of sight, the zombie's movement mode will randomly switch every certain time (moving horizontally/vertically only, side-to-side movement, random movement, etc.).
  • Car: A yellow rectangle. The player can enter by making contact with it.
    • The car has durability. Durability decreases when colliding with internal walls or hitting zombies.
    • If durability reaches 0, the car is destroyed, and the player is ejected.
    • When the car is destroyed, a new car will respawn at a random location within the stage.
    • After roughly 5 minutes of play, a small triangle near the player points toward the objective: fuel first (Stage 2 before pickup), car after fuel is collected (Stage 2), or car directly (Stage 1).
  • Walls: Outer walls are gray; inner walls are beige.
    • Outer Walls: Walls surrounding the stage that are nearly indestructible. Each side has at least three openings (exits).
    • Inner Walls: Beige walls randomly placed inside the building. Inner wall segments each have durability. The player can break these walls by repeatedly colliding with a segment to reduce its durability; when it reaches 0, the segment is destroyed and disappears. The car cannot break walls.
  • Fuel Can (Stage 2): A yellow jerrycan. Pick it up before driving the car.
  • Flashlight: Picking one up boosts your visible radius by 35%.
  • Steel Beam (optional): A square post with crossed diagonals; same collision as inner walls but with triple durability. Spawns independently of inner walls (may overlap them). If an inner wall covers a beam, the beam appears once the wall is destroyed.

Win/Lose Conditions

  • Win Condition: Escape the stage (level) boundaries while inside the car.
    • Stage 2 also requires that you have collected the fuel can before driving out.
  • Lose Condition:
    • The player is touched by a zombie while not inside a car.
    • (Note: In the current implementation, the game does not end immediately when the car is destroyed. The player can search for another car and continue trying to escape.)

How to Run

Requirements: Python 3.10 or higher

Install using pipx:

pipx install zombie-escape

Alternatively, you can install using pip in a virtual environment:

pip install zombie-escape

Launch using the following command line:

zombie-escape

License

This project is licensed under the MIT License - see the LICENSE.txt file for details.

Acknowledgements

Significant assistance for many technical implementation and documentation aspects of this game's development was received from Google's large language model, Gemini (accessed during development), and from OpenAI's GPT-5. This included generating Python/Pygame code, suggesting rule adjustments, providing debugging support, and creating this README. Their rapid coding capabilities and contributions to problem-solving are greatly appreciated.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zombie_escape-0.8.2.tar.gz (15.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zombie_escape-0.8.2-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file zombie_escape-0.8.2.tar.gz.

File metadata

  • Download URL: zombie_escape-0.8.2.tar.gz
  • Upload date:
  • Size: 15.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.1 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for zombie_escape-0.8.2.tar.gz
Algorithm Hash digest
SHA256 4356743bd38a5b33a6e8ee1463661c4b46cd99863ddb2a748095dd4c2e9a999c
MD5 86fc0a3b647056e4f0a1ddd7729dcdbd
BLAKE2b-256 01d1299e870ee5d5a8e898c483333fea082c5104786f1d8b9893bbe789140111

See more details on using hashes here.

File details

Details for the file zombie_escape-0.8.2-py3-none-any.whl.

File metadata

  • Download URL: zombie_escape-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.1 cpython/3.12.3 HTTPX/0.28.1

File hashes

Hashes for zombie_escape-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 95ba3a0ba411482f0545da31129bb5cde08799e75d3a2bd66396c7508959e993
MD5 0c177d009674410077fc1a73e19cdde0
BLAKE2b-256 aa9cbce657816fa20c3d914552f95e366437b608308c21c4fe4d8ba8612d5137

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page