«

用PDF玩《毁灭战士》,高中生发明的黑科技

一把老骨头 发布于 阅读:362 推荐工具


最新版本的《毁灭战士》(Doom)现在可以在PDF文档中运行,尽管性能受到限制。这一令人惊叹的技术突破来自一名对编程和网络安全感兴趣的高中生开发者“Ading2210”。他通过利用PDF标准对JavaScript的支持,成功将这款经典游戏移植到了看似静态的文档格式中。

自1993年id软件发布以来,《毁灭战士》作为第一人称射击游戏的开山之作,已经激励了无数开发者尝试将其代码运行在各种意想不到的计算环境中。如今,PDF文档也被加入到这份“毁灭清单”中,成为又一个承载这款经典游戏的平台。

Ading2210解释说,PDF标准支持完整的JavaScript规范,而Adobe Acrobat实现了这一功能,允许开发者实现诸如3D渲染、硬件检测等复杂操作。然而,由于现代浏览器中的PDF引擎和API支持较为有限,他的项目依赖于浏览器中的JavaScript实现。尽管如此,基于Chromium内核的浏览器(如Chrome及其衍生版本)仍然能够执行几乎任何计算任务,只需少量输入/输出交互即可完成。

为了实现这一目标,Ading2210编辑了《毁灭战士》的原始C代码,并使用了一个针对asm.js而非WebAssembly的老版本Emscripten进行编译。虽然输入可以通过文本字段和按钮读取,但要实现流畅的游戏画面仍是一项极具挑战性的任务。最终,DoomPDF实现了六色单色输出,足以提供清晰可辨的游戏内表示。

尽管性能有限,但这一版本的《毁灭战士》依然可以被视为“可玩”的,尤其是对于那些对复古游戏充满热情的玩家而言。值得注意的是,《毁灭战士》早已被正式移植到游戏主机、PC系统、移动设备以及几乎所有自上世纪90年代以来开发的新计算平台上。甚至连最新的《永恒的毁灭战士》也包含了原版游戏的“wad”文件,供玩家下载体验。

自从id Software在1997年公开了《毁灭战士》的源代码后,程序员们便掀起了一场类似迷因的文化运动,试图在各种深奥的设备上运行这款游戏。从验证码到闹钟,从图形处理器到人工智能模型,《毁灭战士》已经证明了它无处不在的适应能力。

下载地址:
https://pan.baidu.com/s/1WvuKF9ylJ65BIrVi0fT25Q?pwd=bk4c