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

Flutter for OpenHarmony:io 跨平台输入输出工具库,进程管理与 ANSI 终端美化(Dart 官方工具箱) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:io 跨平台输入输出工具库,进程管理与 ANSI 终端美化(Dart 官方工具箱) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 Dart 原生提供了 dart:io 库,包含了 File, Socket, Process, HTTP 等基础功能。但在编写复杂的命令行工具(CLI)或者需要跨平台处理文件路径、进程信号时,原生 API 往往显得过于底层且繁琐。 io (pkg:io) 是 Dart 官方维护的一个辅助库。它并不是 dart:io 的替代品,而是它的扩展包。它提供了: * 更健壮的进程管理器 (ProcessManager)。 * ANSI 转义码支持(让你的终端输出彩色文字)。 * 共享标准输入输出的工具(shared_stdin)。 * 跨文件系统的复制/多级创建操作。 对于 OpenHarmony 开发者,如果你正在为鸿蒙生态编写构建脚本、

By Ne0inhk
Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案

Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案

目录 * Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案 * 一、问题现象 * 二、运行环境(典型触发条件) * 三、错误信息解读:关键在这一句 * 四、为什么升级 Mesa 也没用? * 五、真正的根因:Snap 版 VLC 自带“老 Mesa” * 六、正确解决方案(核心) * 1. 移除 Snap VLC * 2. 安装 APT 版 VLC * 3. 首次启动(可选) * 七、一个常见小坑:bash 路径缓存 * 八、最终验证 * 九、

By Ne0inhk

Windows 11 + Ubuntu 20.04 双系统安装教程

一、风险提前规避(核心前提) 潜在风险规避措施误格式化 Windows 分区提前备份桌面、文档、项目代码等重要文件到移动硬盘分区 / 安装时断电操作全程保持笔记本插电,或电量≥80%安全启动阻止安装提前在 BIOS 中关闭 Secure Boot 二、前期准备 1. 物料与软件准备 物品 / 软件要求 / 说明空白 U 盘≥8G,数据会清空,需提前备份Ubuntu 镜像推荐 20.04 LTS(适配 ROS Noetic),从 Ubuntu 官网下载启动盘工具Rufus(免费无广告),从 Rufus 官网下载 2. 关闭 Windows 安全启动(必做) 1. Win+I

By Ne0inhk
Flutter for OpenHarmony:stop_watch_timer 简单高效的秒表与倒计时器(毫秒级高精度计时) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:stop_watch_timer 简单高效的秒表与倒计时器(毫秒级高精度计时) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在健身 App、游戏倒计时、验证码重发等场景中,我们经常需要一个精确的计时器。虽然 Dart 的 Timer 可以实现,但要处理暂停、恢复、重置、毫秒格式化等逻辑并不轻松,稍有不慎还会导致内存泄漏或 UI 卡顿。 stop_watch_timer 封装了这些常见需求,提供了一套流式 API 来驱动 UI 更新,支持正向计时(秒表)和反向计时(倒计时),且性能优异。 一、概念介绍/原理解析 1.1 基础概念 * Mode: 计时模式,StopWatchMode.countUp (秒表) 或 StopWatchMode.

By Ne0inhk