Hacker News 中文摘要

RSS订阅

复兴经典Unix游戏:软件考古学的二十年之旅 -- Reviving Classic Unix Games: A 20-Year Journey Through Software Archaeology

文章摘要

作者花费20年时间追寻1987年USENET游戏《征服》的创作者,在过程中学习了现代软件打包技术。这款中土世界多人策略游戏通过新闻组分发,展现了前开源时代的软件传播方式,对后世游戏产生深远影响。

文章总结

复兴经典Unix游戏:一场历时20年的软件考古之旅

缘起:1987年的数字时间胶囊

1987年10月26日,柏林墙尚未倒塌,互联网还停留在纯文本时代。Edward Barlow在USENET新闻组comp.sources.games发布了一款名为Conquer(最初命名"conquest")的多人在线策略游戏。玩家可操控中土世界的国家,管理资源、军队与外交系统。这款游戏的特殊性在于其诞生时"开源"概念尚未成形,却已具备开放共享的精神。

寻根之旅:跨越20年的法律解谜

  • 2006年困境:作者发现这款承载90年代大学回忆的游戏面临失传风险——源代码散落在USENET存档中,但缺乏明确授权。
  • 数字侦探工作:通过追踪80年代的电子邮件碎片、大学档案和论坛线索,最终联系到原作者Ed Barlow,并获得其口头授权。但另一位创作者Adam Bryant却杳无音信。
  • 五年等待:2011年转机出现,Adam Bryant主动联系并签署GPL授权协议,促成V4版本合法重生。

意外发现:2025年的版本进化

2025年,作者得知Adam Bryant曾开发过Conquer V5——一个具有自动数据转换、增强稳定性等功能的完全重制版。经沟通,Adam同样同意将其GPL化。此外还追踪到贡献PostScript地图工具的开发者MaF,他也爽快签署了协议。

未竟的遗憾:Richard Caley的故事

另一位贡献者Richard Caley的踪迹终止于2005年——他的个人网站保留着讣告,记载这位41岁离世的程序员幽默犀利的"Caleyisms"网络语录。因无法联系继承人,其代码未能重新授权,但项目文档中保留了对这位FreeBSD贡献者的人文纪念。

技术复兴:从USENET到现代CI/CD

  • 原始形态(1987):通过USENET分卷发布,需手动编译
  • 现代重构(2025)
    • 代码升级至ANSI C99标准
    • 实现Debian/APK双平台打包
    • 通过GitHub Actions自动化构建
    • 利用ttyd技术实现终端游戏网页化

启示录

  1. 历史价值:这些代码承载着互联网前夜的协作精神
  2. 法律意识:清晰的授权协议是软件长寿的关键
  3. 技术传承:现代工具能让古董代码重获新生
  4. 人文温度:每个代码片段背后都是活生生的创造者

目前Conquer全系列已通过GPL v3授权,成为研究软件考古学、法律框架和技术演变的活标本。这场跨越代际的对话证明:尖端技术的最佳应用场景之一,正是对计算历史的虔诚保存。

(全文完)

本文西班牙语版包含更多文化背景细节:阅读西语版本

评论总结

评论总结:

  1. 怀旧游戏回忆
  • 多位用户分享早期文字游戏的回忆,如Empire、hunt、Conquer等
  • 关键引用:"Empire has the concept of a 'Bureaucratic Time Unit'..." (spacedcowboy)
  • 关键引用:"Before xtrek and eventually netrek, there was hunt..." (spot)
  1. 游戏考古与保存
  • 讨论老游戏代码的保存和现代系统兼容性问题
  • 关键引用:"The legal reality was harsh: Richard's contributions..." (cbm-vic-20)
  • 关键引用:"I often find the historical and archaeological aspects..." (halffast)
  1. 技术挑战
  • 提到在老系统上运行游戏的困难,如XENIX端口问题
  • 关键引用:"PAIN!...trying to compile a System V-era game on Linux..." (xenophonf)
  • 关键引用:"Comp.souces.games was a source of delight and pain..." (tahoemph999)
  1. 游戏保存建议
  • 建议建立类似scummvm的保存项目
  • 关键引用:"it should all be bundled into scummvm..." (shevy-java)
  • 关键引用:"Conquer was an amazing game, I hope someone puts it online..." (basedrum)
  1. 特定游戏寻找
  • 多位用户寻找记忆中的老游戏,如universe、vtrek等
  • 关键引用:"There was a Curses version of Trek called 'universe'..." (QuesnayJr)
  • 关键引用:"Stories like these make me want to give modernizing vtrek..." (xenophonf)