在当今快速发展的技术环境中,人工智能工具正逐步渗透到软件开发领域的各个角落。然而,当这些工具进入具有深厚历史和文化传统的开源社区时,往往会引发意想不到的冲突。最近,有着二十多年历史的开源游戏引擎GZDoom社区就因AI代码的使用问题而经历了前所未有的分裂,这一事件不仅反映了开源社区内部治理模式的争议,也揭示了技术发展与传统开发理念之间的深刻矛盾。
GZDoom:开源Doom社区的基石
GZDoom作为一款开源的Doom引擎重制项目,其历史可以追溯到1998年ZDoom的首次发布。这个项目为原始Doom游戏(约翰·卡马克于1997年发布源代码)添加了现代图形渲染、生活质量改进和极其深入的模组功能,成为Doom粉丝开发社区的基石。
近年来,如果你曾偶然关注过Doom粉丝开发的繁荣世界,你很可能遇到过基于GZDoom的数百种游戏模组、WAD文件或整个商业游戏。这个开源项目不仅保留了经典游戏的怀旧魅力,还通过现代技术使其焕发新生,吸引了全球范围内的开发者和玩家。
分裂的导火索:AI代码的引入
然而,这个有着二十多年历史的社区近期却公开分裂,大部分开发者团结起来支持一个名为UZDoom的新分支。这一举动明显是对GZDoom创建者和维护者Christoph Oelckers(又名Graf Zahl)领导方式的抗议,Oelckers最近承认在GZDoom代码库中插入了未经测试的AI生成代码。
"由于在协作方式上存在一些分歧——一些是最近的;一些已被容忍了近20年——我们决定最好的行动方案是分叉这个项目,"开发者Nash Muhandes周三在DoomWorld论坛上写道。"我不想看到GZDoom的消亡,我们大多数人都不想,因此我认为最好的做法是通过分叉继续开发,同时引入一种高度 favors 多人之间透明协作的不同开发模式。"
"AI之路或走人":争议的核心
多年来,Zahl的项目领导在GZDoom开发社区内部产生了大量摩擦——Reddit上的这个线程简要回顾了一些戏剧性事件。但导致本周UZDoom分裂的直接事件似乎主要围绕Zahl在最近的GZDoom更新中公开使用AI生成代码。
虽然AI编码工具的使用从外部往往难以识别(正如Zahl自己在GitHub帖子上所指出的),但这一特定实例被Zahl自己的注释代码片段所突出:"这是ChatGPT告诉我的检测Linux深色模式的方法。"

GZDoom开发者各自创建分支的艺术家构想。图片来源:Prodigal's GZDOoom WADs
这条评论引发了开发者之间的 lengthy 讨论,讨论内容关于使用"我们无法验证其与GPL兼容性的偷取的抓取代码",正如一位开发者所描述的那样。虽然Zahl最终删除了有问题的代码,但他还被指控试图通过强制推送更新来删除讨论的全部证据,以证明它曾经存在过。
c // 这是ChatGPT告诉我的检测Linux深色模式的方法。
Zahl为使用AI生成的代码片段进行辩护,称这些代码"不是底层游戏功能关键的基础代码"。"我当然对使用AI进行项目特定代码持保留态度,"他写道,"但这里只是对系统配置设置的表面检查,可以在各种网站上找到——只是需要10倍的努力。"
然而,社区中的其他人坚决认为,像这样的开源项目的工作流程中没有AI工具的一席之地。"如果使用ChatGPT或任何其他生成式AI聊天机器人生成的代码泥是这个项目的未来,很抱歉,但我将退出,"GitHub用户Cacodemon345写道,总结了其他许多开发者的感受。
分叉之路:新项目的诞生
在周二发布的一个GitHub错误报告中,用户the-phinet列出了对AI生成代码的分歧,以及其他有关Zahl自上而下推出GZDoom更新的问题。作为回应,Zahl邀请开发社区"如果他们不满意,可以随意分叉这个项目"。
许多GZDoom开发者很快将这种有些任性的回应当真了。"你用这堆狗屎彻底搞砸了GZDoom,"开发者Boondorl写道。"享受你死掉的项目吧,我相信你会很高兴一个人在那里敲打它,人们终于可以停止对你大喊大叫让你做事了。"

像Selaco这样的整个商业游戏都是基于GZDoom的开源引擎。图片来源:Altered Orbit Studios
在发布到ZDoom Discord的社区更新中,版主Agent_Ash承诺新的UZDoom将保持与旧GZDoom存档和模组的兼容性,同时未来添加新的计划功能。但新项目还将提供"更稳定的开发结构,健康的协作,减少给予个人'项目负责人'的权力,"Agent_Ash写道。
在讨论UZDoom分叉的Reddit线程中,Muhandes详细说明了"UZDoom摆脱了'一个人决定一切'/'我的方式或走人'的开发模式。每个人都必须提出拉取请求,这些请求必须经过彻底的同行评审,一切都将透明——不允许任何人直接提交到主分支。"
"我从未见过我过去2+年如此努力工作的事情——可以说是我生命中的热情——如此彻底地崩溃,"Muhandes在Bluesky上补充道。
未来的影响:开源社区的抉择
虽然GZDoom将继续存在,但Agent_Ash写道,"合理地假设UZDoom将成为未来引擎的'主要'旗舰版本。"而且,虽然Zahl将被欢迎继续为新项目做出贡献,但"UZDoom不会由他领导,他对新功能和变更不会有最终决定权,"Agent_Ash补充道。
为一款32岁游戏的现代源端口进行的内部争吵,高度说明了Doom继续对多代粉丝产生的深远文化影响。展望未来,很难说这种戏剧性的分裂将如何影响已成为游戏持续遗产中承重部分的继续发展。不过,此举突显了AI编码工具的使用已成为开源游戏开发世界中许多人不可妥协的引爆点。
技术与传统的冲突:开源社区的十字路口
GZDoom社区的分裂不仅仅是一个关于AI工具使用的孤立事件,它反映了更广泛的技术与社区传统之间的冲突。开源软件的核心价值之一是透明度和协作性,而AI代码的引入——尤其是未经充分测试和验证的代码——与这些价值观形成了鲜明对比。
在开源社区中,代码审查是确保质量和安全性的关键机制。每个提交的代码都经过同行评审,这种过程不仅有助于发现错误,还促进了知识共享和技能提升。然而,AI生成的代码绕过了这一传统流程,因为它可能缺乏人类开发者的上下文理解和创造力,同时也带来了版权和许可方面的复杂问题。
此外,Zahl在争议中的处理方式——包括删除讨论记录和拒绝接受批评——进一步加剧了社区的不满。这种行为与开源社区中通常期望的开放和透明的文化背道而驰,最终导致了开发者的集体出走。
开源治理模式的反思
UZDoom的创建不仅是对AI代码使用的抗议,也是对GZDoom现有治理模式的挑战。在传统的开源项目中,项目负责人通常拥有较大的决策权,这种模式在项目初期可能有效,但随着社区的发展,可能会导致权力集中和决策不透明的问题。
UZDoom提出的替代方案是更加去中心化的治理结构,强调团队协作和透明决策。这种模式可能更适合大型开源社区,因为它能够确保更多的声音被听到,减少单点故障的风险,并促进更可持续的发展。
然而,完全消除个人领导也可能带来新的挑战,例如决策效率降低和方向不明确。因此,开源社区需要在集中式和分布式治理之间找到平衡,根据项目的规模、性质和社区文化选择最适合的治理模式。
AI在软件开发中的角色
GZDoom事件引发了一个更广泛的问题:AI工具在软件开发中应该扮演什么角色?AI代码生成工具如ChatGPT可以加速开发过程,特别是在处理重复性任务时。然而,它们也带来了质量、安全性和伦理方面的挑战。
对于AI在软件开发中的使用,社区内部存在不同的观点。一些人认为AI应该被视为辅助工具,帮助开发者提高效率,但不应该替代人类判断和创造力。另一些人则更加谨慎,担心AI可能引入难以察觉的错误和安全漏洞,尤其是在复杂系统中。
无论立场如何,AI工具的使用都需要明确的指南和最佳实践。这包括:
- 透明度:明确标识AI生成的代码,并记录其来源和用途。
- 验证:对AI生成的代码进行严格的测试和审查,确保其质量和安全性。
- 合规性:确保AI生成的代码符合项目的许可证要求和法律规范。
- 教育:帮助开发者了解AI工具的局限性和最佳使用方法。
开源社区的韧性
尽管GZDoom社区经历了分裂,但这一事件也展示了开源社区的韧性。分裂往往被视为负面事件,但它也可以是社区自我更新和适应变化的一种方式。通过创建新的分支和项目,开发者能够坚持自己的价值观和愿景,同时保持对原始项目的贡献和尊重。
在GZDoom的案例中,UZDoom的创建不仅解决了当前的争议,还为未来的开发提供了新的可能性。新项目有机会尝试不同的开发模式、治理结构和工具使用方法,这些经验可能对整个开源社区产生积极影响。
结语:技术变革与社区适应
GZDoom社区的分裂是技术变革与社区传统碰撞的一个典型案例。它提醒我们,技术创新不仅仅是关于新工具和算法的开发,还包括如何将这些工具整合到现有的工作流程和社区文化中。
对于开源社区而言,这一事件提供了一个宝贵的机会来反思和改进其治理模式、开发实践和价值观。通过开放对话、相互尊重和共同学习,社区可以更好地适应技术变革,同时保持其核心精神和原则。
最终,GZDoom和UZDoom的故事告诉我们,开源软件的成功不仅依赖于技术的先进性,还依赖于社区的凝聚力和适应性。在快速变化的技术环境中,能够平衡创新与传统的社区,才能真正实现长期的成功和影响力。



