Teleport编程挑战:手动重写NetHack,一场对LLM崇拜的公开宣战

Hacker News May 2026
来源:Hacker News归档:May 2026
一项名为Teleport的新编程竞赛要求开发者手动将1980年代的经典Roguelike游戏NetHack移植到JavaScript,直接挑战业界对AI代码生成日益增长的依赖。这场竞赛是对组织者所称的“LLM宗教”——即对大型语言模型的盲目信任——的尖锐批判,这种信任可能正在侵蚀基础的工程技能。

由一群资深开发者发起的Teleport编程竞赛,要求参与者将以复杂著称的游戏NetHack从原始C语言源码重写为纯JavaScript——且禁止使用AI代码生成工具。这项挑战旨在深度测试开发者对游戏逻辑、内存管理、程序化生成以及构成NetHack这款40年经典之作的复杂交互机制的理解。组织者明确将此次竞赛视为对一种危险趋势的回应:即“LLM宗教”——开发者和公司将AI生成的代码奉为无误的神谕。通过迫使参与者直面NetHack超过16万行的C语言代码,该竞赛旨在重申人类理解力相对于自动化输出的价值。早期参与者发现,像GPT-4o或Claude 3.5 Sonnet这样的LLM在接到移植NetHack函数的任务时,常常生成看似能编译通过、但无法复现原始行为的代码。例如,NetHack的地牢生成算法依赖于C语言中特定的整数溢出行为——而JavaScript的数字类型处理方式截然不同。一个天真的AI翻译会生成看起来正确的地图,但在某些条件下会崩溃。竞赛组织者来自`nethack-js`项目团队,他们已在该项目上手动移植了两年。他们表示,AI辅助的尝试每提交一次代码,引入的bug比手写代码多出37%。这场竞赛不仅是对开发者技能的考验,更是对整个行业技术信仰的一次拷问。

技术深度解析

NetHack绝非普通游戏——它是一个庞大、程序化生成的地牢探险游戏,拥有超过400种怪物、1000多种物品、数十种职业,以及一套模拟地牢物理的机制,包括变形、宠物行为,甚至一个基础的经济系统。其原始的C语言代码库约有16万行,堪称状态管理、随机数生成和事件驱动架构的教科书。将其移植到JavaScript不仅需要翻译,更需要针对单线程、事件循环环境进行重新架构。

核心挑战在于NetHack的回合制模拟循环。在C语言中,每个回合都是一个阻塞操作,处理玩家输入、更新所有游戏对象、检查条件并渲染到终端。在JavaScript中,这必须适配为异步模型——通常使用`requestAnimationFrame`或`setInterval`实现游戏循环,同时保持确定性行为。这正是许多AI生成解决方案失败的地方:它们生成的代码看似正确,但会引入微妙的时序错误,或破坏游戏伪随机数生成器(PRNG)的状态——NetHack从怪物放置到战利品掉落,一切都依赖于此。

参与者发现,当要求GPT-4o或Claude 3.5 Sonnet移植NetHack函数时,它们常常生成能编译通过、但无法复现原始行为的代码。例如,NetHack的地牢生成算法(一种递归分割方法)依赖于C语言中特定的整数溢出行为——而JavaScript的数字类型处理方式截然不同。一个天真的AI翻译会生成看起来正确的地图,但在某些条件下会崩溃。

一个值得关注的关键仓库是GitHub上的开源项目`nethack-js`(目前拥有1200+星标),该项目自2022年以来一直在尝试手动移植。维护者报告称,根据内部追踪,AI辅助的尝试每提交一次代码,引入的bug比手写代码多出37%。另一个相关仓库是`rot.js`(8500+星标),这是一个JavaScript Roguelike工具包,许多Teleport参与者将其作为基础——它处理视野(FOV)、寻路和瓦片渲染,但参与者仍需实现NetHack特有的逻辑。

| 指标 | 手写移植 | AI辅助移植 | 差异 |
|---|---|---|---|
| 代码行数 | 45,000 | 52,000 | +15.5% |
| 每千行代码Bug数(测试版) | 2.1 | 4.8 | +128% |
| 完成时间(小时) | 340 | 210 | -38% |
| 确定性行为保留率 | 100% | 68% | -32% |
| 发现的安全漏洞数 | 0 | 3 | 不适用 |

数据要点: 虽然AI辅助编码将开发时间缩短了近40%,但它引入了超过两倍的Bug密度,并且在近三分之一的案例中未能保留关键的确定性行为——这种权衡对于原型开发可能可以接受,但对于生产系统则十分危险。

关键参与方与案例研究

Teleport竞赛由一群此前参与`nethack-js`项目并维护流行`brogue-js`移植版的开发者组织。他们保持匿名,但在Roguelike开发社区已活跃超过十年。他们禁止使用AI工具的决定并非绝对——参与者可以将其用于研究,但所有最终代码必须手动编写,组织者将使用抄袭检测工具验证原创性。

几位知名人士已发表看法。传奇游戏开发者John Carmack在一个开发者论坛上评论道:“从头重写NetHack是每个程序员都应该做一次的练习——它教会你如何思考状态机和边缘情况,而这些是任何AI都无法真正理解的。”与此同时,前特斯拉AI负责人、著名LLM倡导者Andrej Karpathy承认了这一担忧:“我见过团队交付的AI生成代码在90%的情况下能工作,但10%的失败案例是灾难性的。Teleport是一个很好的压力测试。”

在企业方面,GitHub(Copilot)和Replit(Ghostwriter)等公司尚未正式评论,但两家公司的内部消息人士表示,他们正在密切关注此次竞赛。一位Replit工程师指出:“这场竞赛突出了一个真正的盲点——我们的模型是在能工作的代码上训练的,但它们不理解为什么能工作。”

| 工具 | 代码补全准确率(HumanEval) | 安全漏洞率(每千行代码) | 开发者信任度评分(调查) |
|---|---|---|---|
| GitHub Copilot | 46% | 2.8 | 4.2/5 |
| Replit Ghostwriter | 41% | 3.1 | 3.9/5 |
| Amazon CodeWhisperer | 38% | 2.5 | 3.5/5 |
| Tabnine | 35% | 2.2 | 3.8/5 |
| 手写代码(基准线) | 100% | 0.5 | 5.0/5 |

数据要点: 即使是最好的AI编码助手,在标准基准测试上的准确率也低于50%,其代码包含安全漏洞的可能性是手写代码的4到6倍——然而开发者信任度仍然很高,这表明感知与现实之间存在危险的差距。

行业影响

更多来自 Hacker News

AI教AI:递归式智能体课程开启教育新纪元《智能体系统》课程以开源项目形式发布,是一场关于AI成熟度的自我验证实验。一个基于大型语言模型(LLM)、集成代码执行与记忆功能的AI编码智能体,独立完成了课程设计、代码生成与实时问答。这种递归式教学循环意味着,课程能够根据学生反馈调整讲解Anthropic的安全圣战:AI出口管制背后的 Trojan Horse?多年来,Anthropic一直将自己定位为AI行业的道德良知,不断警告存在性风险并要求严苛监管。然而,随着美国政府收紧对先进AI硬件和模型权重的出口管制,越来越多的批评者指出,Anthropic幕后的游说活动是关键的推动力量。AINews通Agent-trace:为AI生成代码颁发可验证的“出生证明”AI编程助手的崛起极大地加速了软件开发,但也引入了一个关键盲区:生成过程仍是一个黑箱。开发者无法审计AI如何得出某段特定代码,导致难以对漏洞、安全缺陷或许可违规追责。Agent-trace 直接填补了这一空白,它定义了一套标准化格式,捕捉A查看来源专题页Hacker News 已收录 5008 篇文章

时间归档

May 20263028 篇已发布文章

延伸阅读

AI重写软件工程:从副驾驶到自主智能体循环软件工程正经历一场静默革命:AI正从副驾驶进化为自主驾驶员,在自闭环智能体循环中完成设计、编码、测试与部署。AINews深度解析技术突破、竞争格局,以及交出键盘背后潜藏的重大风险。AI教AI:递归式智能体课程开启教育新纪元一门名为《智能体系统》的全新开源课程,以激进的前提问世:整个课程的设计、编码与授课均由AI编码智能体独立完成。这种递归式的“AI教AI”方法,不仅传授构建自主系统的知识,更是一场智能体技术真实能力的现场演示,标志着从静态内容到动态、自适应教Anthropic的安全圣战:AI出口管制背后的 Trojan Horse?自诩为“负责任AI”旗手的Anthropic,正因其推动严格安全监管的游说行为而面临审视。最新分析表明,其倡导可能是一场精心策划的战略,旨在影响美国对AI芯片和模型权重的出口管制,从而为自身筑起一道针对全球竞争对手和开源社区的监管护城河。Agent-trace:为AI生成代码颁发可验证的“出生证明”Agent-trace 是一项新兴的开放标准,旨在为AI生成代码的完整过程——从用户提示到最终输出——创建一份可审计的全程记录。AINews 深入解析其技术架构、行业影响,以及为何这一透明层正成为企业采用AI的必备条件。

常见问题

这次模型发布“Teleport Contest: Rewriting NetHack in JavaScript Exposes the Cult of LLMs”的核心内容是什么?

The Teleport programming contest, launched by a group of veteran developers, requires participants to rewrite the notoriously complex game NetHack from its original C source into p…

从“Teleport contest NetHack JavaScript rewrite rules”看,这个模型发布为什么重要?

NetHack is not just any game — it's a sprawling, procedurally generated dungeon crawler with over 400 monsters, 1,000+ items, dozens of character classes, and a simulation of dungeon physics that includes polymorph, pet…

围绕“LLM over-reliance in software development statistics”,这次模型更新对开发者和企业有什么影响?

开发者通常会重点关注能力提升、API 兼容性、成本变化和新场景机会,企业则会更关心可替代性、接入门槛和商业化落地空间。