Hacker News 中文摘要

RSS订阅

让我们像1997年那样编译《雷神之锤》 -- Let's compile Quake like it's 1997

文章摘要

这篇文章介绍了如何在现代环境下重现1997年编译《雷神之锤》游戏的过程,包括原始开发使用的HP和DEC Alpha硬件、后来转向Windows NT和Visual C++的历史,以及四种不同还原度的实现方案,从寻找原始Intergraph工作站到使用虚拟机等不同方法。

文章总结

《让我们像1997年那样编译Quake!》

本文详细介绍了如何在复古开发环境中重现1997年编译Quake Win32版本的全过程。主要内容包括:

开发环境搭建: 1. 原始开发环境:早期Quake可执行文件是在NeXT系统上开发,使用HP 712-60工作站和DEC Alpha 2100A服务器交叉编译 2. 后期迁移:1996年6月后,id Software将开发环境迁移至Windows NT系统,使用Intergraph硬件

历史还原方案: - 提供四种不同还原程度的方案,从最原教旨的Intergraph RealizM工作站到虚拟机方案 - 作者测试了在"Quake PC"和Virtualbox虚拟机(运行Windows 98SE/NT 4.0)上的编译过程

详细步骤指南: 1. Windows NT 4安装: - 强调其极简主义启动界面特点 - 特别说明多CPU支持需要重新安装HAL

  1. Visual C++ 6环境配置:
  • 安装过程展示(包含原始产品密钥验证界面)
  • 特别注意事项:必须使用原始q1source.zip压缩包(来自Quake官方档案库)
  • 文件传输建议使用Quick 'n Easy FTP Server或虚拟机拖放功能
  1. 编译问题解决:
  • 首次编译会因缺少汇编器失败
  • 需要安装VC++6 Processor Pack(包含ml.exe汇编器)
  • 详细记录了安装MDAC 2.5和Visual Studio 6.0 SP5的曲折过程

成果展示: - 成功编译出可运行的QuakeWorld版本 - 展示了VC++6强大的调试功能(断点、堆栈跟踪等),虽然缺少现代IDE的智能提示

技术细节: - 对比了现代.sln/.vcxproj与传统的.dsp/.dsw文件格式差异 - 解释了Michael Abrash手工优化的汇编代码在编译过程中的作用

文末评价VC++6在1996年堪称革命性的开发体验,并附有完整的参考链接和过程截图。

(注:原文中大量图片链接和部分技术细节已精简,保留了核心编译流程和关键历史信息)

评论总结

以下是评论内容的总结,平衡呈现不同观点并保留关键引用:

  1. 对VC++6的怀旧与赞美

    • 多位用户认为VC++6在1990年代非常强大且影响深远 关键引用
    • "VC++6 is remarkably powerful for 1996...must have felt like a dream at the time" (kristopolous)
    • "VC++ 6 was awesome, I wouldn't have a career if I didn't have pirated copies" (elpocko)
  2. 对早期开发工具的欣赏

    • 用户称赞其简洁高效的界面设计 关键引用
    • "It was so fast and super clear" (jbverschoor)
    • "Every pixel has a purpose" (elpocko)
  3. 对Quake游戏的影响

    • 有用户分享Quake如何激发了对网络技术的兴趣 关键引用
    • "I credit this game for my interest in understanding LAN topologies" (johnnythunder)
    • "The whole thing compiles with 2 warnings. Incredible codebase" (ggambetta)
  4. 关于FTP传输模式的讨论

    • 有用户指出ASCII模式默认设置的问题 关键引用
    • "ASCII mode was a nifty feature, but it never should have been the default" (jandrese)
  5. 其他技术讨论

    • 包含对早期开发实践的评论和代码质量的赞赏 关键引用
    • "Back when I was making videogames I followed a similar philosophy" (ggambetta)
    • "Nothing makes sense. We are definitely deeeep into the 90s" (kleiba2)

注:所有评论均未显示评分(None),主要反映用户对90年代开发工具和游戏的怀旧之情。