DoomMe: Running DOOM from a GitHub Readme
Yes, this is literally the game. You can click it to start playing.
What Is This?
DoomMe is Doom's E1M1 level running entirely inside GitHub's markdown viewer. Without using any javascript or a backend server, it's just 4,340 pre-rendered screenshots linked together with hyperlinks.
Every position × every angle = a unique markdown file. Click a direction, load a new file. That's the whole "engine."
📖 Full story: How I Made DOOM Run Inside a GitHub Readme
Gameplay
Here's some gameplay I captured locally
Repo Structure
DoomMe/
├── assets/ # 4,340 WebP screenshots (doom_x_y_angle.webp)
├── game/ # 4,340 navigation markdown files
├── menu/ # Episode & difficulty selection screens
├── static/ # Banner GIF, map image, menu assets
├── linker.py # Generates the markdown graph from map_data
├── gridmapper.py # VizDoom capture script
├── omgi_mapper.py # WAD parser using Omgifol
├── map_data.json # Valid (x, y) coordinates for E1M1
└── README.md # You are here
How It Works (TL;DR)
- Parse the WAD —
omgi_mapper.pyuses Omgifol to extract E1M1 geometry - Generate the grid — Point-in-Polygon filtering on a 64-unit grid → 1,085 valid spots
- Capture screenshots —
gridmapper.pyteleports a VizDoom agent to each spot, 4 angles each - Link it all —
linker.pybuilds the navigation graph as interlinked.mdfiles
License
MIT - feel free to tweak around and play with the code Feel free to raise issues and PRs too
Credits
- ID Software for DOOM 1993 and the WAD file
- Omgifol - WAD parser
- VizDoom - Doom AI
- Ultimate DOOM Builder - WAD editor
Made with <3 by Kuber Mehta
