从 DOOM 到 PDF:游戏移植的艺术极限
游戏行业见证了无数的技术奇迹,但很少有一款游戏能像《毁灭战士》(DOOM)令人难以置信的可移植性一样令人印象深刻。自 1993 年发布以来,id Software 的这款开创性第一人称射击游戏已被移植到几乎所有可以想象到的平台上。从科学计算器到 ATM 机,从打印机显示屏到冰箱屏幕--只要有显示屏和基本处理能力,就可能有人设法在上面运行 DOOM。
在这份令人印象深刻的 DOOM 移植列表中,最新增加的内容可能是最吸引人的:在 PDF 文档中运行 DOOM。这不仅仅是一个简单的嵌入式视频或一系列屏幕截图;这是一个在主要用于静态内容显示的文档格式中运行的全功能游戏版本。
这一壮举背后的技术成就是非凡的。它充分利用了 PDF 经常被忽视的 JavaScript 功能,将其发挥到了极致。开发人员必须克服众多挑战,包括
- 内存管理:PDF 在设计时并没有考虑到 3D 游戏对内存的要求
- 输入处理:在文档查看器中捕捉键盘和鼠标输入
- 显示渲染:在 PDF 有限的图形处理能力范围内实现可接受的帧速率
- 声音实现:绕过 PDF 的音频限制
这个端口的特别之处在于,它挑战了我们对不同文件格式所能实现的基本理解。Adobe 公司于 1993 年创建的 PDF 规范(巧合的是,DOOM 也是在同一年发布的),已经远远超出了其最初可靠显示文件的目的。
该项目还证明了 DOOM 令人难以置信的精心设计架构。游戏的源代码于 1997 年在 GPL 许可下发布,具有出色的模块化和可移植性。由约翰-卡马克(John Carmack)和团队确立的引擎设计原则一直影响着现代游戏开发实践。
这个 PDF 端口是一个很好的例子,说明技术边界往往比我们想象的要灵活。它提醒我们,限制往往只是变相的创新机会。