Bem... tinha que acontecer, né? Depois que «adding2210» criou um port para rodar Doom dentro de um PDF, agora é a vez de «wojciech-graj», que desenvolveu o «DooM-docm», um port de Doom que funciona no Microsoft Word. Apesar de não ter som e de ter alguns glitches visuais, o framerate é aceitável e os controles não são um pesadelo...
Acho que ninguém na equipe original de desenvolvimento imaginaria que o Doom acabaria sendo adaptado a tantas plataformas. O resultado é um desafio técnico muito popular, um «Hello World» sem precedentes, e múltiplos projetos que continuam modificando, adaptando e otimizando boa parte do seu código. Obviamente, os arquivos .WAD são (mais ou menos) intocáveis por questões de copyright, mas tudo o que envolve o Doom clássico é realmente impressionante, e não vejo isso parar, pelo menos no curto prazo. O que vem a seguir? Alguém colocou o Doom em um documento do Word. Sim.
«DooM-docm»: Doom dentro do Word
Considerando o estado atual do Word e de todo o pacote Office, acho que até o próprio Doomguy vai precisar de ajuda para escapar desse inferno, mas foi o usuário do GitHub «wojciech-graj» quem o colocou lá em primeiro lugar.
Os detalhes técnicos confirmam que «DooM-docm» é um source port do projeto doomgeneric. O documento do Word contém uma cópia do módulo doomgeneric_docm.dll, e o DOOM1.WAD pertencente à versão shareware do Doom. Os dados do jogo são codificados em base64, que uma macro de VBA extrai para o disco e depois carrega. A cada "tick", o módulo cria uma imagem BMP do frame atual e usa a função GetAsyncKeyState para ler o estado do teclado. A macro vai substituindo a imagem do documento com o último frame disponível, e o processo se repete.
«DooM-docm» requer a última versão do Microsoft Word em uma edição do Windows compatível com x64, mas como era de se esperar, o Windows Defender não gosta muito da ideia de carregar documentos que guardam arquivos dll estranhos em seu interior. Talvez seja necessário adicionar o documento à lista de exceções antes de fazer qualquer teste. Link abaixo!
Site oficial: Clique aqui
Como baixar do GitHub: Clique aqui