Een ontwikkelaar is erin geslaagd om de klassieke first-person shooter DOOM werkend te krijgen binnen een pdf-bestand, door slim gebruik te maken van de ingebouwde JavaScript-mogelijkheden van het bestandsformaat.
De ontwikkelaar zette een oude versie van Emscripten in om de C-code naar asm.js te compileren, in plaats van WebAssembly. Voor de weergave van het spel gebruikt het project een techniek waarbij elk van de 200 beeldschermregels in Ascii-karakters wordt weergegeven in een apart tekstveld. Dit levert een monochrome weergave op in zes kleuren, wat volgens de maker net genoeg is om dingen van elkaar te kunnen onderscheiden.
De implementatie haalt een frametime van ongeveer 80 milliseconden door het intensieve updaten van de tekstweergave. Voor debugging is er een scrollende tekstconsole toegevoegd die bestaat uit 25 gestapelde tekstvelden, omdat de reguliere console.println-functie niet beschikbaar is in Chrome's pdf-engine.
Hoewel het pdf-formaat oorspronkelijk uitgebreide JavaScript-functionaliteit ondersteunde in Adobe Acrobat, waaronder 3d-rendering en HTTP-requests, hebben moderne browsers zoals Chrome en Firefox deze mogelijkheden om veiligheidsredenen grotendeels uitgeschakeld. De maker wist binnen deze beperkingen toch een werkende game te realiseren, al is het resultaat misschien niet de meest praktische manier om een potje DOOM te spelen.
Het project is vrijgegeven onder de GNU General Public License en geïnspireerd door eerdere experimenten met interactieve pdf-bestanden. De broncode is beschikbaar op GitHub voor wie het zelf wil proberen.