

I made Freedoom playable directly inside Reddit
I’ve been working on this for the past few days and finally feel like it’s polished enough to share here.
PlayDOOM runs directly inside a Reddit post, and now includes the full 32-map Freedoom Phase 2 campaign.
It uses Freedoom’s free/libre assets, so the project doesn’t distribute the proprietary DOOM.WAD or DOOM2.WAD.
Current features:
- MAP01 to MAP32
- Campaign progression
- Campaign + Weekly leaderboards
- Speed leaderboard for every map
- Keyboard, mobile dual-stick and controller support
- Persistent scores tied to your Reddit account
You can play any map directly or work through the campaign.
Play it here:
https://www.reddit.com/r/playdoom/
Would love feedback from actual Doom players, especially on controls, later maps and anything that feels broken.
Apparently Reddit can run Freedoom.
I got DOOM running inside a Reddit post
I wanted to see if Reddit itself could actually run DOOM, so I built a Devvit Web Custom Post that runs a DOOM-compatible engine directly inside Reddit.
This isn't a video or remote stream — the game runs client-side in the Reddit webview using WebAssembly/Emscripten + SDL, with Freedoom Phase 2 as the game data.
One of the fun problems was the WAD: it's roughly 30 MB, while Devvit Web has request/response constraints, so I split it into smaller chunks, load them separately, rebuild the WAD in memory and mount it into Emscripten's virtual filesystem before starting the engine.
I also added:
- keyboard + mouse controls
- mobile touch controls
- Gamepad API support
- browser audio handling
- MAP01 completion detection
- persistent speedrun leaderboard using Devvit Redis
You can play it here:
Rodei DOOM em um post do Reddit
Esses dias comecei a mexer com Devvit e fui testar até onde dava pra levar um post interativo do Reddit.
Acabei fazendo o Freedoom rodar dentro do próprio post usando WebAssembly.
O engine é baseado em Emscripten/SDL e deu um pouco mais de trabalho do que parecia. O WAD tem quase 30 MB, então precisei quebrar ele em chunks menores, baixar as partes no browser, reconstruir tudo em memória e só depois montar no filesystem virtual do engine.
Também teve umas dores com input e áudio. No desktop ficou WASD/mouse, e no mobile fiz controles touch que simulam as teclas que o jogo espera.
Além disso coloquei um ranking de tempo do MAP01 usando o Redis do Devvit. Quando termina a fase, pego o evento do próprio engine e salvo o melhor tempo do usuário.
No fim ficou um Doom-like rodando dentro do Expanded Mode do Reddit, sem download e sem abrir site externo.
Pra quem quiser testar:
https://www.reddit.com/r/playdoom/
Se alguém aqui já mexeu com WASM/Emscripten e tiver alguma ideia de melhoria, aceito sugestões.
EDIT: tá funcionando com controle USB/Bluetooth
PlayDOOM. Doom-compatible FPS running directly inside a Reddit post [FPS]
A browser-playable Doom-compatible FPS built as an interactive Reddit post.
No install or download required just press PLAY and the game runs directly inside Reddit.
Features
Desktop + mobile controls
Freedoom Phase 2
MAP01 speedrun challenge
Persistent global leaderboard
Your best completion time is saved and ranked against other players.
I got a Doom-compatible WASM FPS running inside a Devvit Web Custom Post
I've been experimenting with how far Devvit Web Custom Posts can go, and this turned into a pretty fun proof of concept: a complete Doom-compatible FPS running directly inside a Reddit post.
Stack:
- Devvit Web
- TypeScript
- WebAssembly
- Emscripten/SDL Doom-compatible runtime
- Freedoom Phase 2
- Devvit Redis for the leaderboard
One interesting problem was the IWAD size. Freedoom Phase 2 is around 28 MB, so I built a small pipeline that splits it into chunks, loads them individually, reconstructs the WAD in memory and mounts it into the Emscripten virtual filesystem.
I also had to deal with some legacy SDL/Emscripten assumptions around the canvas, keyboard events and AudioContext.
It now works on desktop and mobile, has a proper loading flow, and when MAP01 finishes the engine's completion event feeds a persistent speedrun leaderboard.
I'd love feedback from other Devvit developers, especially around the runtime architecture and mobile UX.
Playable post: https://www.reddit.com/r/playdoom/comments/1vklq2f/can_reddit_run_doom/
I got a Doom-compatible FPS running entirely inside a Reddit post! desktop, mobile and a global leaderboard
I wanted to see how far a Reddit Custom Post could be pushed, so I built a full Doom-compatible FPS that runs directly inside Reddit.
No download, no external launcher just open the post, press PLAY, and you're in.
It uses a WebAssembly Doom-compatible engine with Freedoom Phase 2, and I added:
- desktop keyboard/mouse controls
- mobile touch controls
- sound
- proper loading screen
- MAP01 speedrun mode
- persistent global leaderboard using Reddit/Devvit Redis
The goal is simple: finish MAP01 as fast as possible and beat the other Redditors.
I'd really like feedback on the mobile controls, loading experience and whether the leaderboard makes it replayable.
Playable post: https://www.reddit.com/r/playdoom/comments/1vklq2f/can_reddit_run_doom/