选择版本控制系统时应考虑的 8 个因素

FERGUS BAIRD / UNITY TECHNOLOGIESSenior Content Marketing Manager
Sep 23, 2021|10 Min
选择版本控制系统时应考虑的 8 个因素
为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

虽然实施第一个版本控制系统或迁移到一个新的系统可能具有挑战性,但其长期影响是值得的。以下是选择版本控制系统时,在提交之前需要考虑的事项。

游戏创作是一项有益的工作,尽管经常会出现混乱。在开发过程中,许多具有不同角色和不同专业技术水平的团队成员在同一个项目上工作,试图在一个生产流程上保持一致。同时与多人协调可能很困难,随着团队的不断扩大,这一挑战也会成倍增加。

当问题出现时,发现和解决问题所需的时间会拖慢一切,甚至拖慢每个人的工作。因此,根据自己的目标选择合适的版本控制系统(VCS)非常重要。

版本控制的工作原理

通过Version Control,您可以鸟瞰整个项目。它为您的工作带来了基本的组织性,使您的团队能够快速高效地进行迭代。这是怎么做到的呢?

项目文件存储在一个共享数据库中,该数据库被称为资源库,或 "repo"。通过这种方式管理文件,可以定期备份项目,并在计划不顺利时方便地回滚到以前的版本。

使用 VCS,您可以进行多个单独的更改,并将它们作为一个组 "提交",以便进行采购。这样,当你返回到以前的版本时,同一组中的所有更改都会被撤销。事实上,你可以查看和修改 "提交 "中分组的每项更改,也可以撤销整个 "提交"。由于您可以访问完整的历史记录,因此可以更轻松地跟踪和消除错误,并恢复之前删除的任何功能。

此外,由于 Version Control 通常存储在云端或分布式服务器中,因此可以支持开发团队的跨时区和跨地域协作--随着远程工作的普及,这一点变得越来越重要。

为什么要迁移到新的版本控制系统

从一个版本控制系统切换到另一个版本控制系统可能要求很高,尤其是如果这意味着要在项目中期改变团队所依赖的技术。但是,在作出承诺之前,做出明智的决定肯定会有回报。

以下是实施或改用新版本控制系统的几个常见原因:

  • 改善不同团队之间的协作
  • 快速支持管理大型二进制文件和资产
  • 基于文件的工作流程,可在不下载整个项目构建的情况下更改唯一文件
  • 灵活而强大的分支解决方案,让您的团队成员(而不仅仅是少数几个人)并行工作
  • 增强与当前开发工具的集成
  • 更强的安全性可保护您的项目
做出决定时应考虑的因素

以下是选择下一个版本控制系统时需要考虑的八个关键因素:

1.您的团队

实施或改用新的虚拟监控系统主要是为了加强团队合作。无论是现场还是远程,Version Control 都能让您和您的同事在独立工作的同时相互协调。为了满足团队的特殊需求,请扪心自问:有多少人会使用这个新系统?他们的专业技术水平如何?他们对目前的选择有什么看法?

为提高生产率,应确保每个人都有能力在无需技术干预的情况下进行更改。选择一个所有团队成员(包括非技术性艺术家)都能轻松使用的系统,可以减少切换到新虚拟控制系统的情感成本。阻力小,采用起来就快,见效也快。

2.文件类型和大小

随着游戏产业的发展,消费者的期望也在不断提高。玩家们一直期待着更好的画面、无漏洞的发布、发布后的更新以及一流的支持。对开发商来说,风险很高,而且会越来越高。

游戏设计的复杂性不断增加,这意味着要处理和管理的项目更加复杂,文件类型更多,文件更大,存储库可能也更庞大。要建立流畅的工作流程并实现快速合并,就必须使用能够大规模处理项目的 VCS。请记住,选择版本控制系统是一个长期的过程。即使您的团队现在不处理大型文件,您的需求最终肯定会发生变化。未雨绸缪,为自己的持久成功做好准备。

3.易于设置和维护

这个因素又回到了我们清单上的第一项--你的团队。您的团队有时间、专业知识和整体带宽来实施和维护新的版本控制系统吗?如何快速实施?系统启动和运行后,是否会持续提供支持?

别忘了更简单的设置意味着更快的设置。及时启动意味着为团队提供更长的适应期,并开始更高效地工作。因此,如果担心设置和维护的技术问题,请评估所考虑套餐的客户成功率。从阅读评论开始,帮助确定最适合您的目标的虚拟控制系统。

4.您的工作流程

考虑团队日常使用的流程和工具至关重要。选择一个能与其他所需工具顺利集成的 Version Control 系统,可以加快实施速度,最大限度地减少中断。

另一个需要考虑的工作流程相关因素是版本控制系统是否支持分支。分支是指某人在处理一组特定的项目文件时,将这些文件从主项目分支或 "主干 "中分离出来。这样,他们就可以在不影响主干的情况下测试修改。修改经过评估并证明稳定后,就可以并回主干。

在游戏开发中,您可能需要促进大量分支的快速创建。基于目录的系统会导致分支不当和频繁的合并冲突,因为你的团队在合并回主干时会遇到困难。

有了分支功能,您就可以优先考虑项目的稳定性,这样您的团队就能继续朝着共同的目标努力,而不会影响其他人的工作。

塑料窗

5.系统实施的时间安排

实施 Version Control 系统需要一个严格的适应过程。毕竟,这种变化会彻底改变现有的工作流程和工具。

有策略地安排虚拟控制系统的实施时间,可以减少其对当前项目的影响,并加快新系统的采用。因此,最理想的做法是在新项目开始时或在刚推出产品的后期阶段实施所选的虚拟控制系统。

当然,事情并不总是按计划进行。你可能会发现自己正处于一个项目的中期,需要迁移到一个新的版本控制系统。虽然这并不理想,但并非不可能。

下面将详细介绍如何将 Unity Collaborate 项目迁移到 Plastic SCM:

6.您将花多少钱(以及从哪里节省)?

DevOps工具中,版本控制系统的价格较为低廉;真正的成本在于实施。有鉴于此,请尽量评估系统的优点,以及它如何能帮助您以其他方式节省开支。

此外,还应该选择便于整个团队使用的产品,无论他们的技术背景如何。如前所述,每个人都应有机会自主作出贡献。当队友的需求得不到满足时,隐性成本就会开始浮现。

例如,如果你的 Version Control 系统难以掌握,你就得花更多时间教别人如何使用它,以及创建有关版本控制最佳实践的密集内部文档。而当队友无法独立工作时,内部挫折感就会开始上升。无论您选择什么,都不应该妨碍团队取得全面成功。

7.安全要求

Version Control 不仅仅是管理游戏的源代码。您选择的系统还将存储其他资产,如业务和程序文档、设计文件、工具配置等。

为了保证这些文件的安全,VCS 应提供多级保护和权限。这将有助于保护您的代码和 IP 资产免受外部入侵,并防止内部泄密的可能性。

8.灵活程度

您认为您的团队是大团队还是小团队?你们是在一个办公室工作,还是分散办公?根据这些因素,您需要从版本控制系统中获得不同程度的灵活性。此外,您还必须决定是使用集中式、分布式还是多站点工作流程进行操作。让我们来看看它们各自的优势。

集中式工作流程

集中式工作流程使用签到/推送工作流程连接到主服务器。每当有改动时,它们就会作为新版本自动存储到版本库中。这样,你就能获得强大的分支和合并功能,而无需将版本库克隆到多台机器上。这是一个简单而安全的解决方案。

分布式工作流程

有了分布式工作流程,你就可以在自己的时间内签入、分支和合并,而无需连接到主服务器。这样做的好处是,远程队友可以分开快速工作,而不必担心网络或 VPN 太慢。

多站点工作流程

多站点就像是集中式和分布式工作流程的混合体。在每个地点,队友们都在一种小型的集中式工作流程中工作,共享他们的分支和进度--在团队中轻松合并、推拉,直到最后按自己的时间推送到主服务器。

多站点工作流最适合在不同城市或大洲开发共享代码库的团队。在这种情况下,应在每个工作地点建立一个主机服务器,然后在这些服务器之间复制更改。如果不这样做,在没有服务器的站点工作的团队就会遇到比其他团队更慢的响应速度。

领先的版本控制系统

现在,您对选择版本控制系统的利害关系有了一定的了解,是时候对一些最流行的选项进行评估了。

Git

Git是开源、免费、易用的版本控制系统,也是目前最流行的版本控制系统之一。它具有分布式仓库、强大的分支和合并功能,但不能像市场上的其他解决方案那样有效地处理大型二进制文件。

Perforce(Helix Core)

Helix Core是企业级版本控制系统,被 EA 和育碧等游戏工作室广泛使用。该 VCS 具有集中式 repos 功能,可处理大型二进制文件。不过,它不具备可视化 repos 功能,因此对于非技术开发人员来说,采用它可能更具挑战性。

Apache Subversion

与 Git 一样,Apache Subversion也是一个免费的开源版本控制系统。它具有集中式 repos 功能,可以处理大型二进制文件,但必须连接到主服务器才能使用,这对于离线工作来说并不理想,对于大型团队或分布式团队来说可能是个障碍。

Plastic SCM

Plastic SCM是一个灵活的版本控制系统,可为程序员和艺术家提供支持。它擅长处理大型软件仓库和二进制文件,作为一种基于文件和变更集的解决方案,它可以让你只下载正在处理的特定文件,而不是整个项目构建。

更重要的是,Plastic SCM 是市场上唯一具有可视化分支功能的版本控制系统。它可以同时处理数千个分支,而且不会让你在集中式工作流和分布式工作流之间做出选择。

想知道 Unity 还能为您做什么吗?发现 Unity 解决方案,以克服每个发展阶段的挑战,从大创意到大成功。