在开源软件的世界里,社区分裂并不罕见,但当分裂的导火索是AI生成代码的使用时,这一事件就具有了特殊的意义。近日,有着数十年历史的开源游戏引擎GZDoom社区因创始人克里斯托弗·奥克尔茨(Christoph Oelckers,网名Graf Zahl)在代码库中引入未经测试的AI生成代码而陷入严重危机,导致大量开发者集体出走,创建了名为UZDoom的新分支项目。这一事件不仅关乎一个游戏引擎的未来,更折射出AI技术在开源社区中引发的深刻分歧与挑战。
GZDoom:开源Doom社区的基石
GZDoom是一个开源的Doom游戏引擎,其历史可以追溯到1998年ZDoom的首次发布。这个项目为原始Doom游戏(约翰·卡马克于1997年发布源代码)添加了现代图形渲染、生活质量改进和极其深入的模组功能。在过去的二十多年里,GZDoom发展成为Doom模组社区的核心基础设施,催生了数百个游戏模组、WAD文件,甚至基于其引擎的完整商业游戏。
GZDoom开发者分道扬镳创建自己分支的艺术构想。图片来源:Prodigal's GZDoom WADs
作为这一项目的长期维护者,Zahl在GZDoom的发展中扮演了核心角色。然而,他的领导方式多年来一直存在争议。正如一位开发者所言,"Zahl的领导方式多年来在GZDoom开发社区中产生了不少摩擦"。这种紧张关系最终在最近一次关于AI生成代码的争议中达到了顶点。
AI代码争议的爆发
事件的核心在于Zahl在最近的GZDoom更新中公开使用了AI生成的代码。虽然AI编程工具的使用通常难以从外部识别(正如Zahl自己在GitHub上指出的那样),但这次的特殊之处在于Zahl自己留下的代码注释:"这是ChatGPT告诉我的检测Linux深色模式的方法。"
javascript // This is what ChatGPT told me for detecting dark mode on Linux.
这条注释引发了一场关于"我们无法验证其是否与GPL兼容的被窃取的抓取代码"的漫长讨论。尽管Zahl最终删除了有问题的代码,但他据称还试图通过强制推送更新来删除讨论的全部证据,这进一步激怒了社区成员。
社区反应与分歧
Zahl为自己使用AI生成代码片段的行为辩护,称这些代码仅用于"非底层游戏功能的基础代码"。他在GitHub上写道:"我当然对使用AI处理项目特定代码持保留意见,但这里只是系统配置设置的表面检查,可以在各种网站上找到——只是需要10倍的努力。"
然而,GZDoom社区中的许多人对这种说法并不买账。GitHub用户Cacodemon345代表了许多开发者的观点:"如果使用ChatGPT或任何其他生成式AI聊天机器人生成的代码渣是这个项目的未来,很抱歉,我要退出。"
这种分歧反映了开源社区对AI工具使用更广泛的担忧。开源软件的核心价值之一是透明度和可验证性,而AI生成代码的引入挑战了这些原则。正如一位开发者所表达的,"如果使用ChatGPT或任何其他GenAI/AI聊天机器人生成的代码渣是这个项目的未来,很抱歉,我要退出。"
UZDoom的诞生:新分支的愿景
面对日益增长的分歧,GZDoom社区的一部分开发者决定采取行动。在GitHub上发布的bug报告中,用户the-phinet详细说明了关于AI生成代码的分歧,以及其他与Zahl自上而下更新方式相关的 alleged 问题。作为回应,Zahl邀请开发社区"如果他们不满意,可以随时分叉项目"。
这一看似轻率的回应被许多GZDoom开发者认真对待。开发者Boondorl写道:"你用这些狗屎完全毁了GZDoom。享受你死掉的项目吧,我确信你会很高兴独自一人敲打它,人们终于可以停止对你大喊大叫让你做事了。"
像Selaco这样的完整商业游戏都是基于GZDoom的开源引擎构建的。图片来源:Altered Orbit Studios
正是在这种背景下,UZDoom项目应运而生。在发布到ZDoom Discord的社区更新中,版主Agent_Ash承诺,新的UZDoom将保持与旧GZDoom存档和模组的兼容性,同时未来添加新的计划功能。但新项目还将提供"更稳定的开发结构,促进健康协作,减少给予单个'项目负责人'的权力"。
在讨论UZDoom分支的Reddit线程中,开发者Muhandes详细阐述了UZDoom如何摆脱"一个人决定一切"/"我的方式或走人"的开发模式。"每个人都必须提出拉取请求,这些请求必须经过彻底的同行评审,一切都将透明——不允许任何人直接提交到主分支。"
Muhandes在Bluesky上补充道:"我从未见过我过去2+多年如此努力工作的东西——可以说是我毕生的热情——如此剧烈地崩塌。"
分裂后的未来
尽管GZDoom将继续存在,但Agent_Ash写道:"可以合理地假设,UZDoom将成为未来引擎的'主要'旗舰版本。"虽然Zahl将欢迎继续为新项目做出贡献,但"UZDoom不会由他领导,他对新功能和变更没有最终决定权。"
这一关于32岁游戏现代源端口的内部争论,充分说明了Doom对多代粉丝的深远文化影响。展望未来,很难说这种戏剧性的分裂将如何影响已成为游戏持续遗产重要组成部分的引擎的持续开发。目前,这一举动突显了AI编码工具的使用已成为开源游戏开发世界中许多人的不可谈判的引爆点。
更广泛的启示
GZDoom社区的分裂不仅仅是一个孤立的技术争议,它反映了更广泛的行业趋势和价值观冲突。随着AI工具在软件开发中的普及,开源社区面临着前所未有的挑战:如何在拥抱新技术的同时保持开源的核心价值?
这一事件也引发了关于AI生成代码质量、版权和许可问题的深入讨论。开源软件依赖于共享和协作,而AI生成代码的模糊来源可能与此相悖。正如一位开发者所表达的,"如果使用代码渣(由ChatGPT或任何其他生成式AI聊天机器人生成)是这个项目的未来,很抱歉,我要退出。"
结语
GZDoom社区的分裂是开源软件发展史上的一个重要时刻,它不仅关乎一个游戏引擎的未来,更关乎开源社区如何应对AI技术带来的挑战。随着UZDoom的诞生,我们看到了一个更加协作、透明的开发模式的可能。这一事件提醒我们,技术进步必须与社区价值观和伦理考量相协调,才能实现真正的创新和可持续发展。
在未来的软件开发中,如何平衡技术创新与开源原则,如何建立既拥抱AI又保持透明度的开发流程,将是所有开源社区需要共同面对的课题。GZDoom的经验教训,将为这些讨论提供宝贵的参考。