Um estudante do ensino médio chamou atenção na comunidade gamer ao criar um port de Doom (1993), o icônico jogo de tiro em primeira pessoa, dentro de um arquivo PDF. O projeto, batizado de DoomPDF, foi inspirado por iniciativas semelhantes, como Pdftris, uma versão de Tetris (1985) em PDF, e um port de Breakout (1976) para contêineres PDF desenvolvido anos atrás.

Assim como o Pdftris, o DoomPDF se baseia no suporte do formato PDF ao uso de Javascript, mas apresenta uma peculiaridade: ele só pode ser executado em navegadores baseados no Chromium, como Google Chrome e Microsoft Edge. A aplicação impressiona pela inovação e pelos desafios técnicos envolvidos, demonstrando o potencial criativo de portar jogos para ambientes inusitados.

Como DoomPDF funciona: desafios técnicos e renderização

O criador explica que a especificação Javascript do Adobe Acrobat permite funcionalidades avançadas, incluindo suporte a renderização 3D e até detecção de monitores. Embora navegadores modernos suportem apenas um subconjunto dessas funções por razões de segurança, ainda é possível utilizar o ambiente limitado do mecanismo PDF para rodar jogos.

Para viabilizar o port, o código original em C foi compilado usando uma versão antiga do Emscripten, que tem como alvo o asm.js em vez do WebAssembly. Esse método permite que o código rode dentro do ambiente Javascript restrito dos mecanismos PDF. Os comandos de jogo, como movimento e controle de armas, são detectados por meio de campos de texto e botões, uma característica específica do suporte ao formato PDF nos navegadores Chromium.

Um dos principais desafios enfrentados foi a renderização gráfica. Em jogos PDF anteriores, cada pixel era representado por um campo de texto individual. No caso do DoomPDF, com resolução de 320 x 200 pixels (64.000 pixels), essa abordagem tornou-se inviável devido ao alto número de campos necessários. O desenvolvedor optou por uma solução alternativa: usar um campo de texto por linha e caracteres ASCII para simular seis tons de cinza. Essa técnica resultou em uma performance jogável, com uma taxa de 12,5 FPS (80 ms por frame).

DoomPDF e outros ports de Doom: criatividade sem limites

O port DoomPDF é licenciado sob a GNU GPL v2, garantindo que outros desenvolvedores possam estudar e modificar o código. Ele se junta a uma longa lista de ports inusitados de Doom, que continuam a expandir os limites de onde o jogo pode ser executado.

Entre os ports mais curiosos de Doom nos últimos anos estão:

  • Doom rodando em um Captcha.
  • Execução direta na GPU, ignorando a CPU.
  • Uma versão criada para rodar em IA generativa.
  • Doom executado no sistema de alarme Nintendo Alarmo.
  • Modificação integrada ao jogo Balatro.
  • Doom portado para Fortnite.
  • Uma versão oficial disponível em um cortador de grama.
  • Doom rodando em um painel com 200 ventoinhas RGB.

Esses projetos não apenas mostram a popularidade duradoura de Doom, mas também destacam a inventividade da comunidade de desenvolvedores e entusiastas de tecnologia.

Mostrar menosContinuar lendo