游戏
morning
让我们像 1997 年一样编译 Quake
2026-05-29
1 阅读
goranmoomin
FABIEN SANGLARD 的网站 联系方式 RSS 捐赠 2026 年 2 月 5 日 让我们像 1997 年一样编译 Quake!第一批 Quake 可执行文件 quake.exe 和 vquake.exe 在运行 NeXT 的 HP 712-60 上进行编程,并与在 DEC Alpha 服务器 2100A 上运行的 DJGPP 进行交叉编译。 1996 年 6 月,id Software 发布了他们的游戏,但担心 NeXT 停滞不前,因此改变了他们的开发堆栈。在发布 Quake 后,我们立即转向运行 Windows NT 的 Intergraph 硬件。 - John Carmack [1] Quake、winquake.exe、glquake.exe 和 QuakeWorld(qwcl.exe 和 qwsv.exe)的下一个版本都是在 Windows NT 上使用 Visual C++ 4.X 开发和编译的。本文描述了重新创建 1997 年构建 Quake win32 二进制文件的体验的步骤。 纯粹主义者的角落 根据您想要达到的历史准确性级别,您可以在四种环境中遵循这些步骤。找到一个 Intergraph RealizM Dual P6-200MHz 工作站(祝你好运)。找到一台双 Pentium Pro 机器(再次祝你好运,但找到 W6-LI 是可行的)。使用 90 年代末的常规 PC,例如 Quake PC。下载 Oracle 的 Virtualbox 并创建虚拟机。我在运行 Windows 98SE 或 Windows NT 4.0 的 Quake PC 和 Virtualbox 上测试了这些步骤。安装Windows NT 4 安装Windows NT 4 非常简单,因为CD 是可引导的。安装耗时 30 分钟。我喜欢极简的 Windows NT 启动屏幕。它自豪地显示了检测到的 CPU 数量(Windows 95/98 仅支持 1 个 CPU)以及有多少 RAM。没有愚蠢的动画。 Windows NT 不会自动检测到向系统添加第二个 CPU。您需要重新安装才能获得 HAL 处理 SMP 系统。双 CPU 主板也是如此。在W6-LI上,不仅需要添加另一个Pentium Pro,还需要添加一个调节器! Windows NT 4 使用与 Windows 9X 相同的 UI 主题。第一个版本 Windows NT 3 使用与 Windows 3.1 相同的 UI 元素。看起来很糟糕。安装 Visual C++ 6 Quake 的 Win32 版本是在 Visual C++ 4.X 上编码的,因为它是 96 年中期可用的 Microsoft IDE 的最新版本。然而,到 1999 年,该项目已迁移到 Visual C++ 6。如果您手边没有 CD,您可以在 Internet Archive 或 winworldpc.com 上找到它。在互联网“永远在线”之前的时代,大多数软件都有一个产品 ID 来打击盗版。安装屏幕还带来了下一个“Visual Studio”,结合了许多开发环境。它很快就会成为统治它们的 Microsoft IDE。安装屏幕看起来关闭了。有很多空白,进度条的位置也很尴尬。这是因为微软没想到它会以 1280x1024 的疯狂高分辨率运行(id 开发人员可能在他们的 21" 显示器上使用该分辨率)。它只能在 640x480 或 800x600 下看起来像预期的那样。安装了 VC++6 后,我们现在需要获取源代码。不要从 github 获取它或通过 FTP 传输文件。这会弄乱工作区 .dsw 文件。然后 VC++6 将无法使用它甚至不会给你一条错误消息,它只会打开并显示没有关联的文件/项目。相反,你需要获取 q1source.zip 。它曾经在 id Software 的 FTP 服务器上可用,但现在你可以从 Jason Brownless 维护的很棒的 Quake 官方存档中获取它。或者,你可以使用 Quick ‘n Easy FTP 服务器。要解压缩 q1source.zip ,您需要 WinRar。现在启动 VC++6,然后选择“WinQuake.dsw”。现代版本的 Visual Studio 使用 .sln(解决方案)和 .vcxproj,但 dsp 包含单个项目。使用“Rebuild All”启动构建将失败,因为 VC6++ 无法编译包含 Michael Abrash 手动优化的程序集的所有 .s 文件。该 .s 文件是使用依赖于 ml.exe 汇编器的“mycoolbuild”步骤构建的。首先安装 Visual Studio 6.0 Service Pack 5。 (vc6sp5.exe),这是因为您需要安装 MDAC 2.5,您只需运行 vs6spp5.exe 解压时创建的同一文件夹中的 mdac_typ.exe 即可。现在您应该可以按照 Monkey Island 的解决方案进行操作了。我们已经进入了 90 年代。安装 VC++6 处理器包 (vcpp5.exe) 仍然是进度条。现在您应该在 VC++6 bin 文件夹中看到 ml.exe,然后再次运行“Rebuild All”。是的,您需要构建它了。