El reciente lanzamiento de Pdftris inspiró al desarrollador de DoomPDF.
Un estudiante de secundaria creó un port de Doom (1993) dentro de un archivo PDF. Ading2210 ha creado DoomPDF, inspirado por el reciente lanzamiento de Pdftris-Tetris (1985) en un PDF y una versión de Breakout (1976) portado a un contenedor PDF hace ya varios años.
Al igual que PDFtris, DoomPDF se basa en el soporte del formato de archivo de documentos para Javascript. Aun así, en esta ocasión, los interesados en probarlo deberán utilizar un navegador basado en Chromium para satisfacer su curiosidad.
Ading2210 comenta que la especificación JS para Adobe Acrobat es extensa, soportando cosas que uno esperaría que estuvieran mucho más allá de su alcance, como el renderizado 3D y la detección de monitores. Puede que los navegadores modernos sólo soporten un subconjunto de funciones por seguridad, pero aún hay formas de portar y ejecutar juegos.
En el caso de DoomPDF, Ading2210 explica que el código C se compiló para ejecutarse dentro de un PDF utilizando una «versión antigua de Emscripten que apunta a asm.js en lugar de WebAssembly». Esto significa que el código puede ejecutarse en el limitado entorno JS de un motor PDF de navegador. Las entradas se detectan a través del soporte del motor Chromium PDF para campos de texto y botones, con controles de movimiento, mapa y armas. No obstante, la implementación de este port fuente de doomgeneric ha supuesto algunos retos visuales y de framebuffer.
En nuestra captura de pantalla, tomada poco después de iniciar DoomPDF, los efectos visuales del renderizador de PDF son moderadamente detallados, pero adolecen de poca profundidad de color y falta de contraste. El desarrollador explica que los anteriores juegos de PDF utilizaban campos de texto individuales más sencillos que podían activarse y desactivarse para crear píxeles individuales. Sin embargo, 320 x 200 píxeles requerirían el control rápido de 64.000 campos de este tipo, lo que resultaba inviable.
En lugar de cuadros de campo de texto para los píxeles, Ading2210 utilizó un campo de texto independiente para cada fila de la pantalla del juego, con caracteres ASCII utilizados para crear seis tonos de gris. Se afirma que el rendimiento de este método de renderizado es jugable a unos 80 ms por fotograma (aprox. 12,5 FPS).
DoomPDF es software libre con licencia GNU GPL v2. Doom ha sido portado a muchos dispositivos/plataformas extraños y maravillosos, incluyendo cortadoras de césped, mesas de air hockey, teclados e incluso el Bloc de Notas.