O Doom já foi apresentado como galeria de arte, convertido em Captcha, proibido por corporações, rodando em cortadores de grama, em blocos de Lego, até em teletexto e até mesmo dentro de si próprio. As razões técnicas ficam de lado, e a única resposta válida é «porque podemos». O que vem a seguir? Durante anos, usuários injetaram todo tipo de elemento (alguns bem maliciosos) em documentos PDF, mas o usuário do GitHub «adding2210» criou um port que apresenta o Doomguy dentro do sistema de PDF do Google Chrome.

Doom em um PDF? Sim, Doom em um PDF
Doom em um PDF? Sim, Doom em um PDF

Quando pensamos em documentos PDF, automaticamente vem à cabeça um formato rígido, com conteúdo difícil de alterar sem ajuda externa. No entanto, nem todo mundo sabe que o PDF suporta JavaScript. O único programa a implementá-lo por completo foi o Adobe Acrobat, com recursos como renderização 3D e solicitações HTTP. Já o suporte em navegadores como Chrome e Firefox é bem mais limitado (por questões de segurança)... mas isso não é suficiente para deter «adding2210» no GitHub. O que ele fez? Executar Doom em um PDF.

DoomPDF: «Rip and tear» em um documento PDF

Doom em um PDF? Sim, Doom em um PDF
Havia um vídeo disponível, mas ele não está carregando corretamente. É assim que Doom aparece dentro de um PDF no Chrome/Chromium (não funciona com outros leitores).

Como isso funciona exatamente? «adding2210» explica que o código C pode ser compilado para funcionar dentro de um PDF usando uma versão antiga do Emscripten que aponta para asm.js em vez de WebAssembly. O resto é questão de desenvolver um caminho que registre comandos de entrada e um framebuffer para a saída. As entradas são simples, já que o motor de PDF do Chromium suporta campos de texto e botões. O framebuffer é uma história bem diferente, mas «adding2210» conseguiu apresentar uma saída de seis tons monocromáticos em ASCII puro, e cada frame tem uma latência média de 80 milissegundos..

Em resumo, fica feio, mas não importa. A única forma de executar o DoomPDF corretamente é usando alguma variante do Chromium, e para controlar o Doomguy é preciso «digitar» em uma pequena seção do documento. Obviamente, os problemas de framerate tornam quase impossível jogar, mas imagino que mais de um audaz no passado aceitou um desempenho parecido para «aproveitar» em um 386.

Sites oficiais: Aqui e aqui