开源社区分裂:AI代码引发GZDoom项目内战

2

在开源软件开发的世界里,社区共识和透明协作往往是项目成功的关键。然而,最近一个拥有数十年历史的开源游戏引擎项目却因AI代码的使用而陷入前所未有的分裂,引发了关于AI工具在软件开发中角色的深刻讨论。

GZDoom:Doom社区的基石

GZDoom是一个开源的Doom游戏引擎端口,可以追溯到1998年ZDoom的首次发布。这个项目为原始Doom源代码添加了现代图形渲染、生活质量改进和极其深入的模组功能,使Doom能够在现代系统上运行并支持丰富的模组生态。如今,基于GZDoom的游戏模组、WAD文件甚至完整的商业游戏数以百计,形成了一个庞大而活跃的社区。

GZDoom引擎概念图

艺术家构想的GZDoom开发者创建自己分支的场景。图片来源:Prodigal's GZDOoom WADs

分裂的导火索:AI生成的代码

这场社区分裂的直接导火索是GZDoom的创建者和维护者Christoph Oelckers(网名Graf Zahl)在最近的更新中插入了未经测试的AI生成代码。这一行为在开发者社区中引发了强烈反应,尤其是当Zahl在自己的代码注释中明确指出"这是ChatGPT告诉我的检测Linux深色模式的方法"时,争议迅速升级。

"由于一些分歧——有些是最近出现的;有些已经容忍了近20年——关于协作应该如何进行,我们决定最好的行动方案是分叉这个项目,"开发者Nash Muhandes在DoomWorld论坛上写道。"我不希望看到GZDoom的传统消亡,所以我们大多数人认为,最好的做法是通过分叉来继续开发,同时引入一种不同的开发模式,这种模式高度 favor 多人之间的透明协作。"

AI工具在开源项目中的争议

Zahl为使用AI生成的代码片段进行了辩护,称这些代码只是"模板代码",对底层游戏功能并不关键。"我当然对使用AI进行项目特定代码持保留态度,"他写道,"但这里只是对系统配置设置的表面检查,可以在各种网站上找到——只是需要10倍的努力。"

然而,社区中许多人坚决认为,像GZDoom这样的开源项目中没有AI工具的位置。"如果使用ChatGPT或任何其他生成式AI聊天机器人生成的代码渣是这个项目的未来,很抱歉,我选择退出,"GitHub用户Cacodemon345写道,总结了许多开发者的感受。

争议的核心不仅在于AI代码本身,还在于其潜在的法律问题。一位开发者将其描述为"我们无法验证是否与GPL兼容的被窃取的抓取代码"。这引发了关于AI训练数据版权、开源许可证兼容性以及代码质量保证的更广泛讨论。

治理模式的根本分歧

除了AI代码的争议外,这次分裂也反映了更深层次的治理模式分歧。在GitHub的一个错误报告中,用户the-phinet列出了对Zahl自上而下推进GZDoom更新方式的诸多不满。作为回应,Zahl邀请不满意的发展社区"如果他们不高兴,可以随意分叉这个项目"。

"你用这些狗屎完全搞砸了GZDoom,"开发者Boondorl写道,"享受你死掉的项目吧,我敢肯定你会很高兴一个人继续敲打它,人们终于可以停止对你大喊大叫让你做事情了。"

基于GZDoom的商业游戏Selaco

完全基于GZDoom开源引擎的商业游戏示例。图片来源:Altered Orbit Studios

UZDoom:新的开发模式

作为回应,开发者们迅速创建了UZDoom分支,承诺保持与旧GZDoom存档和模组的兼容性,同时引入新的开发模式。在ZDoom Discord社区更新中,版主Agent_Ash写道,UZDoom将提供"更稳定的开发结构,健康的协作,减少赋予个人'项目负责人'的权力"。

在Reddit讨论UZDoom分叉的线程中,Muhandes详细说明了"UZDoom摆脱了'一个人决定一切'/'我的方式就是唯一方式'的开发模式。每个人都必须提交拉取请求,这些请求必须经过彻底的同行评审,一切都是透明的——不允许任何人直接提交到主分支。"

"我从未见过我过去2多年如此努力工作的事情——可以说是我毕生的热情——如此艰难地崩溃,"Muhandes在Bluesky上补充道。

分裂后的未来

尽管GZDoom将继续存在,但Agent_Ash写道,"合理地假设UZDoom将成为未来引擎的'主要'旗舰版本"。虽然Zahl将欢迎继续为新项目做出贡献,但"UZDoom将由他领导,他不会对新功能和变更拥有最终决定权"。

这场关于32岁游戏的现代源代码端口的内部争执,充分说明了Doom继续对多代粉丝产生的深远文化影响。目前尚难说这一戏剧性的分裂将如何影响已成为游戏持续遗产重要组成部分的引擎的继续开发。

更广泛的行业影响

这次分裂不仅仅是一个游戏引擎项目的内部问题,它反映了整个开源社区对AI工具使用的更广泛担忧。随着AI编程工具的普及,开发者社区正在努力确定这些工具在软件开发中的适当位置,以及如何确保它们不会损害开源项目的核心价值:透明性、可验证性和社区协作。

开源软件的未来可能需要新的治理模式,这些模式能够平衡技术创新与传统的开源价值观。UZDoom的尝试代表了这种探索,它试图创建一个既拥抱现代开发实践又保持开源社区核心原则的环境。

技术伦理的边界

这次事件也引发了关于AI在软件开发中伦理边界的讨论。虽然AI工具可以加速某些类型的开发工作,但它们也带来了关于作者身份、责任归属和代码质量的新问题。开源社区,尤其是那些有着长期历史和强大传统的社区,正在努力制定明确的指导方针,以确定AI工具的适当使用方式。

对于GZDoom和UZDoom来说,这场分裂可能最终导致两个不同方向的演进:一个坚持传统的开发方法和严格的代码控制,另一个则拥抱更协作的治理模式和对新技术的谨慎采用。无论结果如何,这次事件都将成为开源社区如何应对AI时代挑战的重要案例研究。