在开源软件的世界中,社区共识和协作精神往往被视为项目成功的基石。然而,当一位备受尊敬的开源项目创始人决定采用人工智能工具生成代码时,却意外引发了社区的内部分裂。这一事件不仅关乎技术决策,更触及了开源文化中关于透明度、协作和代码质量的核心价值观。
经典引擎的现代争议
GZDoom作为一款运行了二十多年的开源Doom引擎,在游戏开发社区中享有盛誉。这款可以追溯到1998年ZDoom初代的项目,为原始Doom源码添加了现代图形渲染、生活化改进和极其深入的模组功能。基于GZDoom引擎开发的游戏、模组(WAD文件)和商业游戏不计其数,形成了一个庞大而活跃的生态系统。
然而,这个历史悠久的社区近期却公开分裂,大量开发者联合起来支持一个名为UZDoom的新分叉项目。这一举动明显是对GZDoom创始人兼维护者Christoph Oelckers(网名Graf Zahl)领导的抗议,后者最近承认在GZDoom代码库中插入了未经测试的AI生成代码。
"由于在协作方式上存在一些分歧——有些是近期的;有些已被容忍了近二十年——我们决定最好的行动方案是分叉这个项目,"开发者Nash Muhandes在本周三的DoomWorld论坛上写道。"我不想看到GZDoom的消亡,就像我们大多数人一样,因此我认为最好的做法是通过分叉继续开发,同时引入一种高度有利于多人之间透明协作的全新开发模式。"
AI代码引发的信任危机
Zahl的项目领导多年来在GZDoom开发社区中已引发诸多摩擦——Reddit上的一个线程简要回顾了部分历史。但导致本周UZDoom分裂的直接事件,似乎主要围绕Zahl最近在GZDoom更新中公开使用AI生成代码。
虽然AI编程工具的使用从外部往往难以识别(正如Zahl自己在GitHub帖子上指出的),但这一特定实例因其代码注释而受到关注:"这是ChatGPT告诉我的检测Linux深色模式的方法。"

GZDoom开发者创建自己分叉项目的艺术构想。图片来源:Prodigal's GZDoom WADs
这条注释引发了一场关于使用"我们无法验证其与GPL兼容性的偷窃抓取代码"的漫长讨论,正如一位开发者所描述的那样。尽管Zahl最终删除了有问题的代码,但他还被指控试图通过强制推送更新来删除讨论的全部证据,以证明它曾经存在。
Zahl为使用AI生成的代码片段"样板代码"辩护,这些代码对底层游戏功能并不关键。"我当然对将AI用于项目特定代码持保留态度,"他写道,"但这里只是对系统配置设置的表面检查,可以在各种网站上找到——只是需要10倍的努力。"
然而,社区中的其他人坚决认为,像这样的开源项目工作流程中不应该有AI工具的位置。"如果使用ChatGPT或任何其他生成式AI聊天机器人生成的代码渣滓是这个项目的未来,很抱歉,我要退出,"GitHub用户Cacodemon345写道,总结了许多其他开发者的感受。
分叉之路:新的开发模式
在周二发布的一个GitHub问题中,用户the-phinet概述了关于AI生成代码的分歧,以及对Zahl自上而下推出GZDoom更新方式的其他指控。作为回应,Zahl邀请开发社区"如果他们不满意,可以随时分叉这个项目"。
许多GZDoom开发者很快将这种有些任性的回应当真了。"你用这些狗屎彻底毁了GZDoom,"开发者Boondorl写道。"享受你死气沉沉的项目吧,我确信你会很高兴独自一个人在那里敲打它,人们终于可以停止对你大喊大叫让你做事了。"
在发布到ZDoom Discord的社区更新中,版主Agent_Ash承诺新的UZDoom将保持与旧GZDoom存档和模组的兼容性,同时未来添加新的计划功能。但新项目还将提供"更稳定的开发结构,促进健康协作,减少赋予个别'项目负责人'的权力",Agent_Ash写道。
在讨论UZDoom分叉的Reddit线程中,Muhandes详细说明了"UZDoom摆脱了'一个人决定一切'/'要么接受要么离开'的开发模式。每个人都必须提出拉取请求,这些请求必须经过彻底的同行评审,一切都将透明——不允许任何人直接提交到主分支。"
"我从未见过我过去二十多年如此努力工作的东西——可以说是我生命中的热情所在——如此彻底地崩溃,"Muhandes在Bluesky上补充道。

像Selaco这样的整个商业游戏都基于GZDoom的开源引擎。图片来源:Altered Orbit Studios
社区分裂的深远影响
尽管GZDoom将继续存在,但Agent_Ash写道,"合理地假设UZDoom将成为未来引擎的'主要'旗舰版本。"而且虽然Zahl将欢迎继续为新项目做出贡献,但"UZDoom将由他领导,他不会对新功能和变更拥有最终决定权",Agent_Ash补充道。
为32岁老游戏现代源端口引擎的内部纷争,充分证明了Doom对多代粉丝的深远文化影响力。展望未来,很难说这种戏剧性的分裂将如何影响已成为游戏持续遗产重要组成部分的引擎的持续开发。然而,此举突显了AI编程工具的使用已成为开源游戏开发世界中许多人不可妥协的引爆点。
开源社区与AI技术的碰撞
这一事件反映了开源社区中关于AI技术使用的更深层次辩论。一方面,AI工具可以提高开发效率,帮助开发者快速生成样板代码;另一方面,它们带来了关于代码质量、安全性和透明度的严重问题。
开源软件的核心价值在于代码的透明度和可审查性。当AI生成的代码被引入项目时,开发者面临着如何确保这些代码质量和安全性的挑战。正如一位开发者指出的,AI生成的代码可能包含"我们无法验证其与GPL兼容性的偷窃抓取代码",这引发了关于知识产权和许可合规性的担忧。
此外,AI代码的使用还引发了关于开发者角色和技能的讨论。随着AI工具能够生成越来越多的代码,开发者需要重新思考自己的价值主张和核心竞争力。这可能导致开发社区内部的紧张关系,特别是对于那些重视传统编程技能和深度技术理解的开发者而言。
开发模式的未来:协作与领导
UZDoom的分叉不仅是对AI代码使用的抗议,也是对传统开发模式的一种重新思考。Zahl的"一个人决定一切"的领导方式长期以来一直是社区摩擦的来源,而UZDoom承诺采用更加协作和透明的开发模式。
这种转变反映了开源社区中更广泛的趋势。随着项目规模和复杂性的增长,传统的自上而下的领导模式可能不再有效。越来越多的项目正在采用更加分布式和协作的领导结构,强调同行评审和透明决策。
UZDoom承诺的"每个人都必须提出拉取请求,这些请求必须经过彻底的同行评审"的模式,代表了这种转变的一个例子。这种方法不仅有助于提高代码质量,还能增强社区参与感和归属感。
经典游戏的持久影响力
Doom作为一款1993年发布的游戏,其持久的影响力令人瞩目。二十多年后,围绕其源代码的社区仍在蓬勃发展,这证明了经典游戏的持久魅力和文化意义。
GZDoom社区分裂的事件也凸显了开源软件在游戏生态系统中的重要性。像Selaco这样的商业游戏完全依赖于GZDoom这样的开源引擎,这表明开源软件不仅是一种开发哲学,也是游戏行业的技术基础设施。
这种持久的影响力也带来了责任。随着经典游戏的源代码被重新利用和扩展,开发者们面临着如何平衡创新与尊重原始愿景的挑战。同时,他们还需要考虑如何维持社区活力,确保项目能够适应不断变化的技术环境。
技术伦理与开源文化
GZDoom社区分裂的事件也引发了关于技术伦理和开源文化的更广泛讨论。当新技术(如AI)被引入传统环境(如开源开发)时,如何确保它们与现有价值观和规范兼容?
开源文化的核心原则包括透明、协作和社区参与。AI工具的使用必须与这些原则一致,否则就会引发像GZDoom这样的社区冲突。开发者需要仔细考虑如何整合这些工具,同时保持开源精神的完整性。
此外,这一事件还强调了技术决策过程中的包容性的重要性。当少数人的决定影响整个社区时,确保所有利益相关者都有发言权至关重要。UZDoom的分叉可以被视为社区寻求更大代表权和参与权的一种方式。
结论:变革中的开源社区
GZDoom社区分裂的事件是开源软件发展过程中的一个重要里程碑。它展示了新技术如何挑战传统实践,以及社区如何应对这些挑战。虽然这一事件最初是由AI代码的使用引发的,但它反映的是更深层次的关于领导、协作和技术伦理的辩论。
展望未来,开源社区可能会继续演变,以适应不断变化的技术环境。像UZDoom这样的新项目代表了这种演变的一种方向——更加协作、透明和包容。然而,无论社区如何变化,开源的核心价值观——透明、协作和共享——将继续指导其发展。
对于Doom粉丝和游戏开发者来说,这一事件提醒我们,即使是历史最悠久的开源项目也需要不断创新和适应。随着AI等新技术的出现,开源社区有机会重新思考开发模式,创造更加包容和可持续的未来。
最终,GZDoom和UZDoom的故事是关于技术、社区和价值观如何交织在一起的叙事。它提醒我们,软件不仅仅是代码,也是人、文化和价值观的体现。在这个快速变化的技术世界中,理解这些相互关系对于创建真正有意义的创新至关重要。




