
多年来,版本控制对许多游戏团队来说,往往只有在出问题时才会被想起。
设计师覆盖了一个蓝图。美术人员在共享场景中丢失了工作成果。外包人员等待数小时才能同步项目。构建流水线因仓库过于庞大而无法跟上制作节奏而变慢。这些不再是罕见的边缘情况。对许多工作室而言,它们已成为现代游戏制作日常摩擦的一部分。
这种摩擦是越来越多游戏团队开始质疑其制作流水线底层工具的原因之一。Git 仍是大多数软件开发中的默认选择。Perforce 仍深度嵌入大规模游戏制作中。但随着团队日益分散、项目愈发庞大、制作预算面临更大压力、创意工作流程变得更加复杂,这两套系统都被推向了它们最初并非为应对的领域。对于那些希望在无需增加更多基础设施、维护和许可开销的情况下进行扩展的工作室来说,问题不再仅仅是他们的版本控制是否有效,而是它是否仍然符合他们当今制作游戏的方式。
Diversion 正围绕这一转变进行构建。
该公司将其平台描述为适用于游戏开发、Unreal Engine、Unity、3D 和 AI 工作流程的可扩展版本控制。实际上,其论点很简单:游戏工作室不应被迫在难以处理大型二进制资产的代码优先工具与能够处理规模但往往带来运营开销的传统企业系统之间做出选择。
传统版本控制最初是作为工程解决方案出现的。代码是主要资产,文件相对较小,合并基于文本的更改是工作流程中可管理的一部分。游戏制作使这种模式复杂化。一个现代项目可能包含代码、3D 模型、纹理、动画、音频文件、地图、蓝图、Unity 预制体、配置数据以及无法像源代码那样合并的大型二进制资产。

“游戏开发中的版本控制不仅仅是代码问题。一个典型项目包含代码、3D 模型、纹理、音频、动画、关卡文件、配置以及蓝图或 Unity 预制体等引擎特定资产。这些文件通常很大、是二进制格式,并且由非工程师人员处理。
挑战在于,大多数版本控制工具是为源代码设计的。Git 假设的是小型文本文件、技术熟练的用户以及合并操作简单直接的工作流程。游戏项目打破了所有这些假设。
Perforce 能更好地处理游戏项目,但其部署和运营成本高昂,需要持续维护,并且限制了现代工作流程,如分支以及与现代化开发工具的集成。”
- Sasha Medvedovsky,Diversion 联合创始人兼首席执行官,接受 80 Level 采访
这种区别很重要,因为版本控制不再仅仅是工程问题。工程师、美术人员、设计师、音频团队、制作人以及外部合作伙伴都需要在同一个生产环境中工作。当版本控制系统只对程序员来说自然易用时,团队其他成员往往会绕过它。而这些变通方法可能变得危险。
Git 在处理文本文件、分布式工程工作流程以及可以干净合并的更改时最为强大。游戏项目通常涉及数十万个文件,其中许多是大型二进制文件。即使使用 Git LFS,随着项目增长,仓库也可能变得更慢、更复杂。
与此同时,Perforce 长期以来一直是大型游戏制作的主力,因为它能更有效地处理大文件和锁定工作流程。但它带来了另一种成本:基础设施、服务器管理、IT 支持、许可、维护以及内部专业知识。对某些团队来说,这是可控的。对另一些团队而言,这成了又一个制作负担。
Diversion 的赌注是,下一代工作室想要不同的东西:具备企业级版本控制相关的规模性和文件锁定纪律,但工作流程更接近现代团队实际构建方式。
该平台已被数万个项目使用,数百家商业工作室和数千名独立游戏开发者正在使用 Diversion。除游戏外,其客户群还包括虚拟制作工作室、建筑可视化团队、VR 和 3D 公司以及 AI 初创企业。
其中一位客户是 Creatures Inc.,该公司将 Diversion 作为其开发工作流程的一部分。
“Diversion 是一个基于 Git 和 Perforce 优势构建的版本控制系统,为现代分布式开发提供了强大的功能和安全性。其分支能力为我们提供了测试想法和并行工作的灵活性,而不会给我们的制作流水线增加额外负担。
我们非常重视 Diversion 团队在帮助我们简化工作流程和更高效构建方面所表现出的卓越响应速度和支持。”
- Oki Kotaro,Creatures Inc. 总经理兼高级技术总监

大文件问题是 Diversion 方法的核心。该公司表示,团队无需像在传统基于 Git 的工作流程中那样将“大文件”与“常规文件”分开、配置 LFS 或考虑特殊跟踪规则。在其基准测试中,Diversion 声称可以在 30 秒内提交 40 万个文件,并在 5 分钟内克隆包含 500 万个文件的仓库。
对游戏团队而言,这些数字不仅仅是技术声明。它们指向一个实际的生产问题:当同步、克隆或移动资产耗时过长时,人们会不再信任流水线。工作开始在系统之外进行。文件通过聊天工具、驱动器或手动导出传递。这种情况发生得越多,生产就越脆弱。
冲突预防是 Diversion 定位的另一个主要部分。在游戏开发中,许多最重要的文件无法干净合并。如果两个人同时更改同一个蓝图、地图、场景或预制体,除非团队在冲突发生前加以预防,否则其中一人的工作可能会丢失。
Diversion 试图将这种预防功能带入开发者已使用的工具中。该公司为 Unreal Engine 和 Unity 提供原生插件,将版本控制直接引入编辑器。在 Unreal 中,当其他人已在编辑某个文件时,插件可以在文件打开和保存时提醒用户。对于不应并发编辑的资产,Diversion 还支持硬锁定,给予一个用户独占写入权限,直到锁定被释放。
具体到蓝图,Diversion 与 Unreal Engine 内置的可视化合并工具集成,允许在冲突发生时在编辑器中可视化解决。但该公司更广泛的理念是,预防比清理更重要。

“冲突预防是我们投入最多的功能之一,因为对游戏开发来说它至关重要。大多数游戏资产是二进制格式,当两个人不知情地编辑同一个资产时,有人就会丢失工作成果。
我们的主要方法是在冲突发生前加以预防。当你打开一个别人正在编辑的文件时,你会立即在编辑器内收到警报。这在 Unreal Engine 插件和 Unity 插件中都有效。你在打开文件和尝试保存时都会看到提示。对于绝对不能并发编辑的文件,我们还支持硬锁定,即一个人获得独占写入权限,直到他们释放为止。”
- Sasha Medvedovsky,Diversion 联合创始人兼首席执行官,接受 80 Level 采访
迁移也正成为讨论中越来越重要的一部分。工作室很少会一夜之间更换版本控制系统,尤其是在制作已经进行中的情况下。Diversion 的方法是降低这种过渡的风险。
对于从 Perforce 迁移过来的团队,该公司支持双向同步,允许工作室在过渡期间保持 Perforce 和 Diversion 仓库同步。这意味着团队可以逐步迁移,按项目或按部门进行,而不是停止生产一次性切换系统。
对于从 Git 或 GitHub 迁移过来的团队,Diversion 支持导入带历史记录的仓库,允许团队将现有项目移入 Diversion,而无需从头开始。
这种渐进式方法很重要,因为版本控制与工作室的工作方式紧密相连。它涉及源代码、美术、构建、权限、审查、自动化和外部协作。中断生产的迁移往往不现实。允许团队分阶段测试、导入、同步和过渡的迁移更符合工作室的实际运作方式。
更广泛的行业现在正更加关注大型文件的版本控制。Epic Games 最近宣布了 Lore,一个专为大型游戏和娱乐项目设计的开源版本控制系统。在许多方面,Lore 验证了 Diversion 一直关注的问题:Git 和 Perforce 并非为满足现代游戏制作的所有需求而设计。
Diversion 认为 Lore 对行业是一个积极信号,但不是同类产品。Lore 是一个开源版本控制引擎,由工作室自行托管和构建。Epic 自己的文档将 Lore 描述为预稳定版 0.x 版本,其 API 和协议在稳定版 1.0 发布前可能仍会演变。Epic 还表示,它不期望工作室一夜之间替换现有工具,并将当前阶段定位为团队探索、原型设计和帮助塑造项目的时期。

“Lore 对行业来说是一个积极的发展。Epic 投资于专为大文件设计的版本控制系统,这验证了我们多年来一直所说的:Git 不是为此设计的,游戏团队值得拥有更好的工具。这个问题受到越多关注越好。
话虽如此,Lore 目前仍处于预稳定阶段,并未定位为现有生产工具的即时替代品。它为团队提供了一个核心版本控制引擎,但工作室围绕该引擎所需的大部分内容——基础设施、托管、用户管理、CI/CD 集成、编辑器工作流程、权限和生产支持——仍需自行构建、集成或维护。
Diversion 是一个完全托管的服务。你注册后即可使用。无需部署服务器、无需配置 AWS 后端、也无需随着团队增长而扩展基础设施。而且,我们为所有客户提供出色、直接的支持。”
- Sasha Medvedovsky,Diversion 联合创始人兼首席执行官,接受 80 Level 采访
版本控制很少被视为创意工具。但在游戏开发中,它直接影响团队实验的安全性和速度。如果美术人员不敢触碰共享地图,如果设计师在蓝图上丢失工作,如果外包人员整天等待资产同步,制作流水线就会开始以容易被低估的方式塑造创意过程。
这就是这一转变背后更大的故事。工作室不仅在寻找更快的同步或更好的文件锁定。他们在寻找符合当今游戏制作现实的版本控制:跨学科、跨地点、跨引擎,以及跨充满不像代码那样行为的资产的庞大仓库。
Diversion 的赌注是,更多工作室已准备好超越 Git 的开发者优先模式与 Perforce 的运营负担之间的旧权衡。现代游戏团队需要从一开始就理解生产的版本控制——不仅仅是作为存储代码的地方,而是作为保持创意工作持续进行的系统。
对于好奇 Diversion 实际运作方式的团队,可通过 Diversion 网站免费试用。
