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
🚀 Getting Started
Installation, controls, and first steps to run the game.
🗺️ Map Creation Guide
Learn how to create custom maps with ASCII and add them to the game.
⚔️ Weapons & Enemies
Tweak weapons, ammo, enemy behavior and AI to your liking.
🤝 Contributing
Guidelines for contributing to the project.
Quick Start
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