Godot被AI代码“围攻”!维护者崩溃发声:“不知道还能坚持多久”

Godot被AI代码“围攻”!维护者崩溃发声:“不知道还能坚持多久”

整理 | 郑丽媛

出品 | ZEEKLOG(ID:ZEEKLOGnews)

当大模型能在几秒钟内生成一段“看起来像那么回事”的补丁时,开源社区却开始付出另一种代价。

最近,开源游戏引擎 Godot 的核心维护团队公开吐槽:他们正被大量“AI 生成的低质量代码”淹没。那些代码往往结构完整、注释齐全、描述洋洋洒洒,但真正的问题是——提交者可能并不理解自己交上来的内容。

这件事,并不是简单的“有人偷懒用 AI 写代码”。它正在触及开源协作最核心的东西:信任。

一场悄无声息的“AI 洪水”

事情的导火索来自一条 Bluesky 讨论帖。

Godot 主要维护者之一、同时也是 Godot 商业支持公司 W4 Games 联合创始人的 Rémi Verschelde 表示,所谓的“AI slop”(AI 生成的低质量内容)正在持续涌入项目仓库,Pull Request 数量和审查压力都在飙升。

对不了解开源流程的人来说,PR(Pull Request)只是“提交代码”的按钮;但对维护者而言,每一个 PR 都意味着阅读、理解、测试、回溯架构影响、评估兼容性、讨论修改方向……这是一整套严肃的工程流程。

过去,新贡献者提交的代码即便有问题,维护者也能通过交流判断:对方是否理解架构、是否认真测试、是否真心想参与项目建设——而现在,问题变得复杂了。

当“像人写的”≠“是人写的”

Verschelde 直言,如今他们每天都要反复怀疑新贡献者的 PR。

描述部分通常是典型的大模型风格:长篇解释、逻辑完整、语气自信。但真正棘手的是代码本身——它未必有明显错误,却也未必真正合理有效。

基于此,项目维护者不得不开始问自己一连串问题:

● 这段代码是不是至少部分由人类写的?

● 提交者真的理解自己改动的逻辑吗?

● 是否做过真实测试?

● 测试结果会不会也是 AI 编的?

更微妙的是,即便识别出 AI 参与,也无法简单定性:代码出错,是因为 AI 写的?还是一个经验不足的新手开发者犯了错?

如果你出于怀疑,直接询问对方是否使用了 AI,对方回答:“我只是用 AI 帮我写 PR 描述,因为我英文不好。”——那你又该如何处理?

很显然,这已经不是代码质量的问题了,而是因AI参与造成了协作信任的“灰色地带”。

“我也不知道我们还能坚持多久”

作为一个完全开源的游戏引擎,其实Godot 一直强调“欢迎任何人参与”。它没有商业巨头背书,也不像某些主流引擎那样高度封闭。任何用户,都可以尝试为自己使用的引擎做出贡献。

正因为这种开放性,Godot 才拥有活跃的社区生态。

但问题也随之而来:当生成式 AI 降低了“提交代码”的门槛,贡献数量被放大,维护者的时间却没有被同步放大。

Verschelde 表示,维护者本来就需要花大量时间帮助新贡献者,把 PR 调整到可合并状态;而现在,在 AI 生成内容泛滥的情况下,这种辅导成本正在急剧增加。对一个核心团队规模有限的项目来说,这种压力无疑是实打实的消耗。

他甚至无奈说道:“我也不知道我们还能坚持多久。”

用 AI 打 AI?听起来就很讽刺

Verschelde 透露,其团队内部正在讨论解决方案,包括自动检测机制,比如考虑使用 AI 来识别 AI 生成内容。但这本身就带着黑色幽默意味——为了检测 AI 生成的“垃圾代码”,不得不再运行一套 AI 系统。

Verschelde 公开表示,他并不愿意继续“给 AI 机器喂数据”。在他看来,这种循环有些荒诞。

与此同时,Godot 也在评估是否需要迁移代码托管平台。当前该项目托管在 GitHub 上,而 GitHub 的母公司是微软,它正是全球最积极推进 AI 产品化的科技公司之一。

现如今,部分开发者利用 AI 批量生成 PR,目的并不一定是改善项目,而是为了“刷贡献记录”,为自己的履历增加筹码。因此Godot 团队考虑,迁移到更小众的平台,也许能减少这类动机——但风险也同样明显:曝光度下降、真实贡献者流失、生态割裂。

真正的解法,可能很现实

在所有讨论之后,Verschelde 给出的答案其实非常务实:资金支持。

如果能有更多资金,就能雇佣更多维护者,承担审核与指导成本。否则,少数核心成员很难长期承受这种“被 AI 放大”的工作量。

换句话说,AI 提高了代码生成效率,却没有自动生成对应的“审核人力”。

然而,Godot 的困境并非孤例。越来越多开源项目都在面对类似问题:PR 数量增长、质量参差不齐、审查压力倍增。或许未来会出现更严格的 AI 使用标记制度,或者贡献者信誉分层机制,甚至付费维护体系成为常态。

但在这些制度成熟之前,像 Godot 这样的项目只能在理想主义与现实压力之间继续平衡。

参考链接:https://www.pcgamer.com/software/platforms/open-source-game-engine-godot-is-drowning-in-ai-slop-code-contributions-i-dont-know-how-long-we-can-keep-it-up/

推荐阅读:

Agent取代App、机器人“盲区”、RAG成本失控……2026 奇点智能技术大会首批议题发布

万人大厂一夜裁员4000+人!她拼命用AI提效,却在凌晨12:30等来解雇通知

岗位一朝被Meta砍掉,工程师转头训练小狗敲键盘,竟靠Claude把乱码做成了游戏,还开源了!

未来没有前后端,只有 AI Agent 工程师。

这场十倍速的变革已至,你的下一步在哪?

4 月 17-18 日,由 ZEEKLOG 与奇点智能研究院联合主办「2026 奇点智能技术大会」将在上海隆重召开,大会聚焦 Agent 系统、世界模型、AI 原生研发等 12 大前沿专题,为你绘制通往未来的认知地图。

成为时代的见证者,更要成为时代的先行者。

奇点智能技术大会上海站,我们不见不散!

Read more

Microsoft Visual C++ 运行库安装教程(2025 最新版全版本修复指南)

Microsoft Visual C++ 运行库安装教程(2025 最新版全版本修复指南)

前言 在使用大型软件、开发工程项目或玩 3A 游戏时,很多人都遇到过这样的报错: “缺少 msvcp140.dll” “无法继续执行代码,因为系统找不到 vcruntime140_1.dll” “程序无法启动,因为计算机中丢失了 MSVCR100.dll” 这些提示看似复杂,其实本质是 Microsoft Visual C++ 运行库(VC++ Redistributable)缺失或损坏 所致。 本文将带来 2025 年最新版 Microsoft Visual C++ 运行库安装教程,无论你是游戏玩家、开发者还是普通用户,都能找到最合适的解决方案。内容涵盖: * 一键修复方法(适合新手,快速解决 DLL 报错) * 手动下载安装方案(适合专业或开发用途) * 常见 DLL 报错与完整修复思路 * 系统维护与预防技巧

By Ne0inhk
C++11新特性(下)----《Hello C++ Wrold!》(26)--(C/C++)

C++11新特性(下)----《Hello C++ Wrold!》(26)--(C/C++)

文章目录 * 前言 * lambda表达式 * 可变参数模板 * 展开参数包的方法 * 应用 * 包装器 * fiction包装器 * bind函数 * 作业部分 前言 在 C++11 标准带来的诸多革命性特性中,“简化代码编写” 与 “统一可调用对象管理” 是两大核心目标。lambda 表达式解决了传统仿函数 “定义繁琐、复用性低” 的痛点,让局部场景下的自定义逻辑(如排序规则、回调函数)能以更简洁的匿名函数形式实现;可变参数模板则打破了模板参数数量固定的限制,为 STL 容器(如emplace_back)和通用函数设计提供了灵活的参数处理能力;而 function 包装器与 bind 函数,则进一步整合了函数指针、仿函数、lambda 等不同类型的可调用对象,实现了统一管理与参数适配,甚至让可调用对象存储到容器中成为可能。 这些特性并非孤立存在 ——lambda 的底层依赖仿函数实现,可变参数模板为emplace系列接口提供了技术支撑,

By Ne0inhk

JAVA八股学习笔记-类加载机制

类加载机制是把类加载到JAVA虚拟机(JVM)中的一种机制。         类加载机制分为装载,链接,初始化三个部分。         其中链接又分为验证,准备以及解析三个阶段。 装载:查找和导入class文件         (1)通过一个类的全限定名获取定义此类的二进制字节流。                 全限定名是指在编程中,用于唯一标识一个类或接口的完整名称。如java.util.class。         (2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。                 静态存储结构是指在程序编译期间为变量分配固定的存储单元,并在整个程序运行期间保持不变,直到程序结束后释放。这种存储方式适合全局变量和静态局部变量。                 运行时数据结构是程序在执行期间用于存储和管理数据的区域。         (3)在JAVA堆中生成一个代表这个类的java.util.class对象,作为对方法区中这些数据的访问入口。 链接-验证         验证这个文件(格式、数据等)是完全正确的。

By Ne0inhk
【Java】从树形结构到二叉树:一篇搞懂数据结构里的“家族树”

【Java】从树形结构到二叉树:一篇搞懂数据结构里的“家族树”

🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:Java.数据结构 【前言】 你有没有想过,电脑里的文件分类、通讯录的层级关系,其实都藏着“树”的影子?树形结构是数据结构里最像“现实家族关系”的存在,而二叉树更是其中的“明星选手”——它规则清晰、操作灵活,是很多复杂数据处理的基础。这篇文章会从树形结构的概念入手,一步步拆解二叉树的类型、性质、存储和操作,帮你把这些抽象的结构变成能上手用的知识~ 文章目录: * 一、树形结构 * 1.树形结构的概念 * 2.树的表示形式 * 二、二叉树 * 1.概念 * 2.二叉树类型 * 2.1 满二叉树 * 2.2 完全二叉树 * 3.

By Ne0inhk