A simple raycasting-based FPS game built with Pygame. The project demonstrates classic 2.5D rendering, sprite projection, basic AI, and pathfinding.
- 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
- W / A / S / D — Move
- Mouse — Look around
- Left Click — Shoot
- ESC — Quit
- Python 3.9+
- Pygame
Install dependencies:
pip install pygameFrom the project root:
python main.pyUsing PyInstaller:
pip install pyinstaller
pyinstaller --onefile --windowed --add-data "resources;resources" --add-data "screenshots;screenshots" main.pyThe executable will be inside the dist/ folder.
main.py— Game loop and initializationraycasting.py— Core raycasting enginenpc.py— Enemy logicobject_renderer.py— Rendering systempathfinding.py— BFS pathfindingresources/— Textures, sprites, soundsscreenshots/— Gameplay images
This project is intended as a learning exercise in building a basic FPS-style engine using Python and Pygame.



