Doom compiled to Brainfuck and playable in a small desktop window.
npx @jasperdevs/bfdoomOr install it:
npm install -g @jasperdevs/bfdoom
bfdoomFrom a clone:
git clone https://github.com/jasperdevs/BFDoom.git
cd BFDoom
npm run play:windowThe main Brainfuck program is programs/bfdoom-linked.bf.gz. On first run it expands to programs/bfdoom-linked.bf; the raw file is about 518 MB, so only the compressed artifact is committed.
| Key | Action |
|---|---|
W / S, Up / Down |
Move |
A / D, Left / Right |
Turn |
Space / F |
Fire |
E |
Use |
Tab |
Automap |
1-7 |
Switch weapons |
Esc |
Menu |
Q |
Quit |
Requires Node.js 20+. On Windows, install WSL. On Linux/WSL, install basic build tools:
sudo apt update
sudo apt install -y build-essential make gzipnpm run test:bfdoom-host
npm testBFDoom is playable and still being brought closer to Doom. The biggest unfinished pieces are sound, menus, and full engine/rendering parity. Technical notes live in docs/brainfuck-doom-port.md.
GPL-2.0-only. Doom and DoomGeneric are GPL-2.0; ELVM is MIT. See the vendor license files for upstream details.


