我经常和你们谈论这一点,《毁灭战士》,这款 1993 年推出的热门游戏,享有盛誉:它几乎可以在所有设备上玩。从怀孕测试等不可思议的设备到 ATM 屏幕,《毁灭战士》已被移植到多种媒体上。这份长长的清单中的最新创新是什么? PDF 文件。是的,您现在可以在 PDF 文档中玩《Doom》,这要归功于绰号为 ading2210 的业余开发人员创建的 DoomPDF 项目。

惊人的技术适应
这个不太可能的移植利用了 PDF 文件的一个经常被忽视的功能:JavaScript 支持。现代基于 Chromium 的浏览器(如 Chrome 或 Edge)包含一个特定的库来解释此代码。这就是让热爱编程的高中生 ading2210 将 PDF 变成游戏平台的原因。
为了突破格式的限制,开发者采用了一个巧妙的方法:屏幕的每一行都由显示 ASCII 字符的文本字段表示。结果:六种单色图像,可读性足以运行游戏,尽管刷新率限制为每秒 13 帧,但效果却很惊人。

它是如何运作的?
该项目基于引擎的简化版本,使用名为 Emscripten 的编译工具进行改编。这会将游戏代码转换为 asm.js,这是 JavaScript 的优化版本,能够在受限环境中工作。一旦代码就位,控制就通过输入字段进行处理,玩家可以在其中输入命令来移动角色或射击。

好吧,我们不会太得意忘形,有一些限制。此端口不适用于所有 PDF 阅读器。它需要 Chrome 或 Edge 等浏览器,谁使用 PDFium 引擎,并且不允许同时进行复杂的动作,例如射击和移动(啊我对你有点不满)。
这并不是第一次将游戏嵌入到 PDF 文件中。在 DoomPDF 之前,其他类似的项目,例如俄罗斯方块的一个版本,最近已经探索了这条道路。但设法运营如此复杂的游戏仍然是一项令人印象深刻的技术壮举。当然,在有限的图形和不直观的控制之间,体验远非最佳,但它清楚地显示了开发人员的聪明才智。