Doom ganha versão que roda dentro de um arquivo PDF
Um estudante do ensino médio criou um port de Doom (1993) dentro de um arquivo PDF. O projeto foi inspirado pelo recente lançamento de Pdftris,Tetris (1985) em PDF e uma versão de Breakout (1976) portada para um contêiner PDF há vários anos.
Assim como Pdftris, DoomPDF depende do suporte do formato de arquivo PDF para Javascript. No entanto, desta vez, aqueles interessados em jogar devem usar um navegador baseado em Chromium para satisfazer sua curiosidade.
Notícias Relacionadas:
Veja as notas de Donkey Kong Country Returns HD pela imprensa mundial
Path of Exile 2 segue liderando entre os mais vendidos da semana na Steam; veja TOP 10
Until Dawn: veja primeiro teaser do novo filme da Sony baseado no game
Como a aplicação funciona
O criador comenta que a especificação JS para o Adobe Acrobat é extensa, suportando coisas que você esperaria estar bem além de seu escopo, como renderização 3D e detecção de monitor. Navegadores modernos podem suportar apenas um subconjunto de recursos por segurança, mas ainda existem maneiras de portar e executar jogos.
No caso do DoomPDF, ele explica que o código C foi compilado para rodar dentro de um PDF usando uma “versão antiga do Emscripten que tem como alvo asm.jsem vez de WebAssembly.” Isso significa que o código pode rodar no ambiente JS limitado de um mecanismo PDF de navegador.
Créditos: Future.
As entradas são detectadas através do suporte do mecanismo PDF do Chromium para campos de texto e botões, com movimento, mapa e controles de armas todos presentes. No entanto, a implementação deste port doomgeneric envolveu alguns desafios visuais e de framebuffer.
Sobre o port
Os visuais do renderizador PDF são moderadamente detalhados, mas sofrem de baixa profundidade de cor e falta de contraste. O desenvolvedor explica que jogos PDF anteriores usaram campos de texto individuais mais simples que podem ser alternados para criar pixels individuais.
Créditos: Future.
Uma resolução de 320 x 200 pixels, no entanto, exigiu o controle de alternância rápida de 64.000 desses campos, o que foi considerado inviável.
Em vez de caixas de campo de texto para pixels, o desenvolvedor usou um campo de texto separado para cada linha na tela do jogo, com caracteres ASCII usados para criar seis tons de cinza. A performance desse método de renderização é considerada jogável em cerca de 80ms por frame (aproximadamente 12,5 FPS).
Outros ports de Doom
Créditos: Guilherme Rauch.
DoomPDF é um software livre licenciado sob a GNU GPL v2 e mais um dos muitos ports que Doom recebeu nos últimos anos.
Outros ports recentes incluem:
Rodar direto na GPU, ignorando a CPU.
Doom rodando em IA generativa.
Hacker no Nintendo Alarmo (para rodar Doom).
Programador fez Doom rodar em Fortnite.
Oficialmente disponível num cortador de gramas.
Fonte: Github.