用 Claude 从 1997 年的足球经理游戏中提取数据
文章摘要
作者 Ben Nuttall 记录了他如何借助 Claude,从 1997 年的老游戏《足球经理》(FIFA Soccer Manager 97 / FSM97)中提取出真实的足球数据。他先让 Claude 查看 Wine 安装目录中的游戏文件,并明确说明自己感兴趣的是球员、球队、球场这类真实世界数据,而非游戏内部机制。Claude 很快在二进制文件 SM97.DAT 中定位到了相关信息。
在二进制文件结构解析上,Claude 帮助破译了十六进制数据:游戏以 87 字节为一个区块存储每条球员记录——字节 0-6 与 24-30 存放球员的名与姓;字节 42 起是一个统计区块,包含国籍索引、位置和球衣号码;字节 47-69 存放 23 项技能属性(速度、敏捷、加速度等);而出生日期则通过 “stats[35] + stats[36] * 256” 计算,表示自 1899 年 12 月 30 日以来的天数。当 Claude 在确定列名上遇到困难时,Nuttall 亲自启动游戏,以门将 David Seaman 作为参照球员记录下所有球员属性字段,再把这份”校准数据”提供给 Claude 以提升提取准确度。
最终 Claude 成功提取出全部球员记录(含完整的传记与表现数据)、球队与球场信息(部分名称还做了修正)、教练名单以及球员兼教练角色,甚至还发现了 EA 专有 TGQ 格式的全动态视频文件。一些有趣的发现包括:47 岁的 Peter Shilton 作为 Leyton Orient 球员出现(这在 1997 年是史实准确的);”EA All Stars”揭示出开发者把自己作为虚构的高评分球员埋藏在游戏中;以及”2079 Bug”——日期以 16 位整数存储,会在 2079 年 10 月 5 日溢出,导致年龄计算错误;还有温布尔登与水晶宫共用 Selhurst Park 球场这类细节。Nuttall 最终生成了用于校验的 CSV 文件,搭建了一个数据互相链接的网站(fsm.bennuttall.com),并在 GitHub 上发布了可复现的 Python 提取代码。
HN 评论精华
该 HN 讨论帖热度较低,提交后几乎没有产生实质性的评论讨论,仅有标题与提交记录,未见有价值的技术或观点交流。
就文章本身而言,它展示了一个颇具启发性的工作流:用大语言模型来辅助逆向工程古老的二进制存档格式,把模型作为”逆向工程协作者”。Claude 擅长根据十六进制转储模式推断字段含义,而人类则负责提供领域知识和”基准真相”校准(比如进游戏对照真实球员的属性),两者结合显著提升了破译效率。这类把 AI 用于数字考古、复古游戏数据保存的实践,对游戏历史保存社区具有实际参考价值——这也是文章被归入”fun”分类却又不失技术深度的原因。