2 puntos por GN⁺ 2025-01-14 | 1 comentarios | Compartir por WhatsApp
  • DoomPDF es una implementación creada para ejecutar Doom (1993) dentro de un PDF, e incluye en el documento la pantalla del juego y la guía de controles
  • Los controles se centran en moverse con WASD; q corresponde a esc, z a enter, e a use y space a fire
  • Con shift+WASD se puede correr, con m abrir el mapa y con 1-7 hacer selección de armas
  • En una página web aparte se pueden subir custom WAD files, y el código fuente está publicado en un repositorio de GitHub
  • El entorno de ejecución está limitado a navegadores basados en Chromium, por lo que es difícil esperar que funcione en otros visores de PDF

Doom ejecutándose dentro de un PDF

  • DoomPDF es una versión ejecutable de Doom (1993) ofrecida en formato de documento PDF
  • Dentro del documento se incluyen la guía de controles de teclado y los indicadores de dirección
  • El entorno compatible está limitado a navegadores basados en Chromium

Teclas de control y archivos de expansión

  • Controles básicos
    • WASD: mover
    • q: esc
    • z: enter
    • e: use
    • space: fire
  • Controles adicionales
    • shift+WASD: correr
    • m: map
    • 1-7: weapons
  • Subir custom WAD files: permite subir archivos WAD desde una página aparte
  • Source code: repositorio del código fuente de DoomPDF

1 comentarios

 
GN⁺ 2025-01-14
Opiniones en Hacker News
  • Soy la persona que hizo "PDF Tetris". ¡Excelente trabajo! Se me ocurrió la misma idea por la misma época, y también tengo mi versión de PDF Doom
    Fuente: https://github.com/thomasRinsma/pdfdoom
    Jugable: https://th0mas.nl/downloads/doom.pdf
    Aun así, esta implementación es más limpia en varios aspectos
    • Me aparece "Hay un problema con este documento", pero no sé si el problema soy yo o el documento
  • El runtime JS limitado del motor PDF
    La humanidad llegó demasiado lejos

    • Hablando en serio, ¿hay algún otro formato que cumpla con estas condiciones? Que permita compartir gratis y fácilmente por email o unidades en la nube recursos, imágenes y fuentes; que pueda incluir entradas de formularios y guardado directamente dentro del archivo sin envío HTTP; que permita al usuario final verificar de forma fácil y segura las firmas criptográficas incluidas en el documento; y que además tenga fidelidad de impresión perfecta.
      En la UE esto es especialmente importante porque las firmas electrónicas se basan en criptografía, no en algo estilo DocuSign de "juro que soy John Smith". Nos seguimos quejando de PDF, pero en realidad no hay un formato que lo reemplace. Lugares como W3C / WHATWG podrían crear algo basado en tecnologías web, pero todavía no existe, y EPUB solo resuelve el caso limitado de distribución de ebooks, no los usos "de oficina".
    • No entiendo muy bien por qué se dice esto. El scripting integrado es útil para muchos usos, como la validación de formularios, y un sistema de validación suficientemente complejo termina siendo Turing completo.
      Entonces conviene más usar JavaScript que crear un lenguaje dedicado, y si tienes JavaScript, entradas y una forma de actualizar una cuadrícula de píxeles gráficos, ya estás en el punto en que puedes correr Doom. Me parece más algo genial que terrible que el cómputo y la programabilidad se hayan vuelto tan baratos que estén ampliamente incorporados incluso en las apps más comunes.
    • Es la única forma que tenemos de avanzar
  • Se abrió la caja de Pandora
    El siguiente paso es meter JSLinux de Bellard (https://bellard.org/jslinux/), para tener dentro de un PDF un sistema operativo completo con entorno de desarrollo y suite de oficina
  • Portable Doom Format
    • Solo es posible cuando está dentro de Chrome
    • Como solo funciona en un único motor PDF, no es tan portable
  • Una de mis experiencias formativas como estudiante de primer año de CS fue abrir por accidente un PDF en Emacs y ver que no mostraba datos binarios raros, sino el PDF realmente renderizado
    Me dejó con la duda de qué otras cosas hacía por detrás sin que yo lo supiera. Lamentablemente no logré correr Doom en el PDF dentro de Emacs. Creo que sería más fácil reimplementar una técnica parecida a la de aquí con funciones básicas de Emacs y caracteres ASCII, o usar una técnica similar a la del post de Bad Apple en vim[1], que estaba en el puesto 1 cuando este estaba en el 2.
    [1]: https://news.ycombinator.com/item?id=42674116
    • Hace unas semanas abrí por accidente un PDF con less y descubrí pdftotext y varios programas que, bien configurados, un paginador puede usar para mostrar documentos arbitrarios.
      Me recordó cómo las distribuciones modernas de Linux deciden la forma de ejecutar archivos. Después de enterarme de eso hace unos años, pasé demasiado tiempo intentando que en mi máquina los archivos .exe se ejecutaran con wine o mono. Fue un ejercicio divertido, pero no valía la pena.
  • Hay que hacer clic en el área que dice 'type here for keyboard controls'
    Para empezar, presiona z varias veces; para moverte usa w/a/s/d; para usar, e; para disparar, space; z es enter
  • En el top 4 de la portada de HN están tanto Doom como Bad Apple. La semana arranca bien
  • ¡Genial! Lo siguiente es un lector de PDF que corra dentro de Doom
    • Eso es un poco trampa. Los lectores de PDF tienen tantas vulnerabilidades de ejecución remota de código que al final se vería como /XObject <> /Invoke RCE
    • Es una estructura infinita de lectores de PDF y Doom
  • Como PDF soporta compresión DEFLATE, creo que se podría reducir bastante el tamaño del documento PDF
    • Sí. Serviría para enviar el PDF más rápido por la red y guardar archivos más pequeños en caché.
      ¿Se podrá hacerlo tan pequeño como el archivo DOOM1.WAD? Son 4 MB
  • Esto está bastante prolijo, y me parece creativo porque se ve un uso práctico posible: mostrar trabajos de ingeniería directamente dentro de un CV al buscar empleo.
    Pero ¿habrá otros usos para esta tecnología? Por ejemplo, ¿se podrían distribuir apps en PDF para dispositivos muy restringidos como iPhone, o dispositivos administrados como PlayStation, Xbox o kioscos? Cuando probé Adobe Reader, parecía que dentro de un PDF se podían meter películas e incluso personalizar la barra de menú. Parece un formato bastante más flexible de lo que uno pensaría