Firelight Technologies 是一家总部位于澳大利亚墨尔本的公司,主营业务是电子游戏的音乐和音效制作,像《极限竞速》系列、《Roblox》和《我的世界》等爆款游戏的音效就出自该公司。其行业领先的工具 FMOD 为团队提供了一个强大的平台,用于实现交互式和自适应的音乐和音效设计。
为了创造一款可赋能工作室的工具,Firelight Technologies 选择了游戏开发行业的版本控制标准——Perforce Helix Core,以帮助支持他们的团队开发,并将其内置到为客户提供的解决方案中。
“如果你在制作游戏,你就得使用 Perforce Helix Core。这就是我们的口头禅。” ——Mathew Block Firelight Technologies 技术总监
创建实时音频的解决方案
Firelight Technologies 的目标是帮助音效设计师创造独特的音效体验。因为游戏音效远不只是添加音乐和特效那么简单。Firelight 的解决方案可以在游戏内部运行,并进行实时渲染。
为了打造这款世界领先的工具,Firelight 需要一个坚实的基础。Mathew Block 说:"我们在 2004 年开始使用 Perforce Helix Core,是因为我们需要源代码控制。”使用源代码控制可以让团队对功能进行迭代,并更轻松地与 Unity 和 Unreal 等游戏引擎集成。他们可以对产品的多个方面进行修改,而不会互相影响。
“Perforce 能处理所有‘基本的东西’,这对于一个由多人共同开发产品的团队来说至关重要。” ——Mathew Block Firelight Technologies 技术总监
Perforce Helix Core 历史记录的优势
Firelight 选择 Perforce Helix Core 进行源代码控制的主要原因之一是能够回溯历史。在进行更改时,它会协调代码更改,确保工作不会被覆盖或丢失。Block 解释说:"Perforce Helix Core 的历史记录非常宝贵。它可以保护源代码,管理签入和合并。我们经常参考它。”
有了这些历史记录,团队中的每个人都能了解某个功能为什么会以某种方式运行、是谁创建的、何时创建的。Block 说:"对我来说,最重要的一点就是能看到以前发生的事。我发现自己经常追溯历史,因为我们整个产品的历史都在 Perforce 中。我们无论如何也不会改变这一点。”
积累的历史记录可以帮助 Firelight Technologies 避免重蹈覆辙。团队可以进行试验,因为他们知道万一出了什么问题,总是有一个备份。
混合开发环境
Firelight 鼓励团队成员按照自己喜欢的方式工作。他们可以使用自己喜欢的任何工具来完成任务。某些人会尝试使用 Git。“我们办公室有很多人都在使用 Git。他们在本地有一些小的 Git 存储库。但当他们完成迭代后,就会将其提交给 Perforce。” Block 解释道。
在 Perforce 中保持单一可信数据源有助于团队保持一致。每个人都知道他们在做什么。
当被问及他们是否会考虑切换到另一个版本控制系统时,Block 说:“我还真没发现有什么强烈的理由要更换。”说到其他系统,比如 Plastic SCM,他说:“Plastic SCM 通过语义合并在差异化方面提出了一些有趣的解决方案。但那只是一个额外的工具,核心引擎才是我关注的重点,还没有什么非换不可的理由。”
Perforce Helix Core 为团队提供两全其美的解决方案——使用自己的工具、自己的方式,并将一切保持一致。
通过卓越的分支机制加速开发
为了帮助团队加快进度,Firelight 使用 Perforce Helix Core 中的分支机制 Perforce 流。他们随时都有两到三个活动流。有了 Perforce 流,从管理员到开发人员都不用担心冲突问题,也不用再猜测变更将流向何处。
“大约在九年前,我们从分支转向了 Perforce 流。我们想要有更智能的分支和更清晰的变更流程。”—— Mathew Block Firelight Technologies 技术总监
他们收获了智能。Perforce 流支持着他们的分支模型,使他们能够保持主流稳定,同时仍然支持过去的版本。修复和补丁可以在没有重构风险的情况下推出。Perforce 流创造了自然的变更流。
“Perforce 流是正确的工具,帮助我们管理一切。流图可以帮助我们了解所有的布局,并显示了合并的流程”。Block 进一步解释说:"它简化了很多维护工作,并管理所有这些不同的版本,有助于我们开发出更好的软件。”有了 Streams,每个人都能直观地看到代码是如何演变的。
开发人员可以查看流图,知道如何分支,在哪里合并。对于像 Block 这样的技术主管来说,他能够看到组织的所有布局,并有助于尽量减少需要支持的分支数量。“采用 Perforce 方法,我们遇到的问题变少了”。
将 Perforce Helix Core 构建到 Firelight Technologies 中
在 Firelight,Perforce Helix Core 不仅是他们开发环境的一部分,而且还内置在他们的产品中,使得客户能够充分利用这些优势。
Block 说:"我们还有另一种使用 Perforce 的方式,那就是通过我们的软件本身。我们的工具有自己的项目格式,可以管理音效设计师制作的所有元数据。作为其中的一部分,我们还集成了项目管理的功能。这些项目的体量可能相当庞大,所以最终产生很多很多的文件。”
大量的文件就意味着要使用Perforce Helix Core进行版本控制。因为它是唯一能支持大型文件和超大型文件的系统,而这正是游戏开发的标准配置。Block 解释说:"我们的主要源控制集成是 Perforce Helix Core。它让团队成员签入和签出项目,以智能地管理所有文件。”
Firelight 如何集成运作?
游戏开发者如何使用 Perforce Helix Core + FMOD?有两种集成方式可供选择。一种是通过用 C++编写的 Perforce API,该 API 直接内置在工具中。另一种是调用 P4 命令行,用 Javascript 进行编写。这两种集成的主要理念是建立一个模块化的可扩展框架。
像 FirelightTechnologies 一样开发
为了保持团队的顺畅运作、保护历史记录并提供优秀的游戏开发工具,Firelight Technologies 选择了 Perforce Helix Core。“我们选择 Perforce 是因为我们对其非常了解。我们按照 Perforce 的规范构建了一切。”Block 表示。
文章来源:https://bit.ly/3xjG3xi