Skip to content

ShivamKR12/PyDOOM

Repository files navigation

Python Raycasting FPS (Doom-style)

A simple raycasting-based FPS game built with Pygame. The project demonstrates classic 2.5D rendering, sprite projection, basic AI, and pathfinding.

Screenshots

1 2 3 4

Features

  • Raycasting wall rendering
  • Sprite projection (NPCs, decorations, weapon)
  • Multiple enemy types with basic AI
  • BFS-based pathfinding
  • Health system and win/lose states
  • Sound effects and background music

Controls

  • W / A / S / D — Move
  • Mouse — Look around
  • Left Click — Shoot
  • ESC — Quit

Requirements

  • Python 3.9+
  • Pygame

Install dependencies:

pip install pygame

Run the Game

From the project root:

python main.py

Build (Windows Executable)

Using PyInstaller:

pip install pyinstaller
pyinstaller --onefile --windowed --add-data "resources;resources" --add-data "screenshots;screenshots" main.py

The executable will be inside the dist/ folder.

Project Structure

  • main.py — Game loop and initialization
  • raycasting.py — Core raycasting engine
  • npc.py — Enemy logic
  • object_renderer.py — Rendering system
  • pathfinding.py — BFS pathfinding
  • resources/ — Textures, sprites, sounds
  • screenshots/ — Gameplay images

This project is intended as a learning exercise in building a basic FPS-style engine using Python and Pygame.

About

The infamous first-person-shooter "Doom" made in python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages