DOOM IN PYTHON

A fully playable Doom-style raycaster built from scratch with Pygame. Easy to hack, mod, and extend.

Features

🎮

True Raycasting

Classic first-person rendering with wall projection, sky/floor, and smooth movement.

👻

Pac-Man Ghosts

Four classic ghosts with unique AI - they hunt, wander, and sense your presence.

🔫

4 Weapons Arsenal

Pistol, Shotgun, Chaingun, and Plasma Rifle with ammo pickups and proper ballistics.

🗺️

Custom Maps

Design levels in simple ASCII format. Load instantly with the built-in map selector (TAB).

🖱️

Mouse Look

Full mouse control with configurable sensitivity. Feels smooth and responsive.

🧩

Modular Codebase

Cleanly split into modules - easy to understand, debug, and extend.

Documentation

Quick Start

terminal
$ pip install pygame-ce
$ git clone https://github.com/Xznder1984/DOOM-PYTHON.git
$ cd DOOM-PYTHON
$ python run.py

Create Your Own Maps

It's ridiculously easy

Maps are just ASCII grids. Add them to maps/custom_maps.py and they'll appear in the in-game map selector (press TAB).

  • # = Wall
  • . = Floor
  • S = Player Start
maps/custom_maps.py
from map_manager import register_map
# Add your maps here
register_map('arena', 'Death Arena', [
"##########",
"#S........#",
"#..####..#",
"#........#",
"##########",
])