A developer known as Ading2210 has ingeniously created a playable version of Doom (1993) that runs inside a PDF file, aptly named DoomPDF. This project showcases the surprising versatility of the PDF format, which supports JavaScript for interactive features. The game can be played in any Chromium-based browser (such as Google Chrome) that supports PDF rendering engines like PDFium.
To make this possible, Ading2210 used an older version of Emscripten to compile Doom’s C code into asm.js, allowing it to run within the constrained JavaScript environment of a PDF file. Instead of rendering individual pixels as text fields—which would have required toggling 64,000 fields per frame at Doom’s 320×200 resolution—the developer implemented a more efficient solution. Each row of the screen is represented by a single text field filled with ASCII characters, creating a six-shade monochrome display. This approach allows the game to run at approximately 12.5 frames per second (80ms per frame), which is playable but limited in performance.
#DOOM is now playable in a PDF file 🎮 pic.twitter.com/gzOxuheAId
— Culture Crave 🍿 (@CultureCrave) January 15, 2025
The PDF version of Doom includes basic controls for movement, map navigation, and weapon switching, all handled through keyboard inputs or buttons embedded in the PDF. While it lacks sound and uses simplified visuals, it remains a functional and fascinating adaptation of the classic shooter.
DoomPDF is free to download and play, licensed under GNU GPL v2. It continues Doom’s tradition of being ported to unconventional platforms, joining previous efforts like running the game on fridges, calculators, and even pregnancy tests.