如果你是游戏开发者,那么在过去几年里,你可能会觉得有人给了你一把双刃剑。
整个行业不断蓬勃发展,但玩家的预期值也越来越高。玩家们总是希望游戏体验能够更快、更真实、更具创造性。此外,他们还希望能够定期推出新的游戏和更新。
基于这种文化背景建立起来的行业,总是需要不断处理各种难题,这就是游戏开发人员的灾难源头,或者说,至少是他们产生职业倦怠的主要原因。
部分游戏公司已经积极采取了许多措施,希望能够消除职业倦怠。以拳头游戏公司为例,这家公司会在一段繁忙的工作周期之后,为所有员工放一个星期的假,让他们休息、放松。
一周的假期虽然不错,但这只是开始。
如果既希望按预算如期交付更优质的产品,同时又计划消除职业倦怠,做好员工关怀工作,那么游戏行业必须制定长远的解决方案。
这就是 DevOps 受青睐的原因。
1
游戏开发过程中
DevOps 是否是解决开发人员职业倦怠的良药?
虽然有时游戏开发过于复杂,无法引入 DevOps,但从很多方面来看,它都是游戏开发系统和流程的完美选择。
2
游戏开发过程中
DevOps 的五大强劲趋势
那么,在游戏开发过程中,你需要从哪里开始使用 DevOps 呢?一般在这种情况下,随大流不会出错,而且许多 DevOps 趋势已经被业内游戏公司所采用。
云游戏开发
玩家希望游戏速度越来越快,细节越来越明确,沉浸式体验越来越好,但是每次更新过后,游戏都会越来越昂贵,玩家们必须配置更好的硬件,他们要承担的成本压力也越来越大。要满足玩家们的需求,游戏就必须支持普通的游戏机,不然就会错失大量潜在客户。
将游戏处理从玩家的硬件端转移到服务器端,可以打破这样的僵局,为游戏留出增长空间。事实上,一些游戏公司已经开始使用云计算,将游戏开发和游戏玩法抬升到一个新的高度。
以育碧游戏为例,作为《刺客信条》系列游戏的开发者,这家公司一直以其深度、复杂的虚拟世界而闻名,但是现在,这家公司已经开始使用云计算,迈向更远的道路。最新的《刺客信条》系列游戏不仅仅为玩家带来沉浸式的历史体验,还利用云计算的力量,促进人工智能驱动的游戏环境不断演变和发展。
持续交付和迭代显然就是 DevOps 的核心,而 DevOps 方法可以让云部署变得更容易。通过测量、持续学习和自动化等 DevOps 实践,你可以避免许多问题,例如网络问题和低延迟等,确保游戏开发者顺利完成云部署。
无服务器架构
无服务器计算本质上就是将搭建架构的责任从物理服务器转移到 AWS Amplify 或 Azure 等第三方架构供应商身上。
一旦你深入了解无服务器架构,你就会明白为什么 DevOps 在游戏开发中如此受欢迎。
首先,DevOps 支持超级弹性伸缩。无需专门指派开发人员监测基础架构使用情况并进行手动调整,你的后端供应商可以根据需要自动扩展或缩减基础架构。也就是说,开发人员可以专注于编写和部署代码、微调流程、确保按计划实现目标,不必担心底层的所有架构。
但是,最关键的是,无服务器架构真正地加速了游戏开发的整个过程。当你不必担心后端基础架构时,你可以在需要时添加和修改代码,以发布新特性,修复错误。
在游戏开发这种极其讲究时效期的行业里,无服务器架构就成了无价之宝。如果有什么东西能够保证让开发人员放松下来,消除职业倦怠,那它肯定就是无服务器架构。
流行的 DevOps 工具
问题是:DevOps 不是软件,也不是单一的活动。它是一套完整的工作方式,是你的团队所采用的全部流程和理念的组合。
当你拥有合适的工具后,你就能轻松地遵循 DevOps 的流程和理念。
所以,许多 DevOps 工具现在已经成为主要的游戏开发工具。
如果你希望在较短的周期内发布产品,并且能够同时处理各种项目的发布、补丁和更新,那么你就需要使用工具,在生产周期内尽可能提高效率。
对于游戏开发过程中的 DevOps,工具有:
-
Perforce Helix Core,用于实现干净、简单的版本控制,让变更监测、测试运行和错误修复变得更容易。现在,Perforce 已经成为微软新 Azure 游戏开发虚拟机中一个 “基本工具”(基本工具还包括 Incredibuild 以及其他许多解决方案),未来或许会成为游戏开发协作的必选工具。让我们拭目以待;
-
Incredibuild,用于加速构建缓存和优化计算资源,加快开发周期,增加迭代频率;
-
Jenkins 或企业版 Jenkins —— CloudBees,用于实现自动化持续集成,适用于各种编程语言。
容器
容器本身就能改变游戏开发。
利用容器代码、运行时间、系统库、系统工具和设置压缩软件包,你可以在几乎所有操作系统中,更轻松地以虚拟的方式运行软件。这意味着,不同开发人员之间可以实现更轻松的协作,最重要的是,以更快的速度进行跨控制台开发,且产生的错误更少。
像 Docker 这样的优质容器注册表,可以在基于 Linux 和 Windows 的应用程序上运行,从而轻松构建支持各种环境的软件。集成 JFrog 容器注册表和 Helm chart 存储库,可以进行 Kubernetes 部署。甚至,集成 artifactory 容器注册器,还能给予开发人员更多的访问和权限控制。
将容器化与 DevOps 实践相结合,你还能开启一个全新的持续开发模式。你可以:
测试自动化
构建游戏,就是把各行各业的大量专业人才聚集在一起,让他们创造出一个连贯流畅的作品。就像是把米开朗基罗、帕瓦罗蒂、莎士比亚和毕加索召集在一起,请他们创造一件艺术杰作。不过,数以百万计的人员会不断通过窗口询问他们是否完成任务。
如果你是游戏开发者,你肯定知道全盘测试和频繁测试的重要意义。所以您需要在游戏开发过程中使用 DevOps,DevOps 应该是工作过程中的一个重要组成部分。
但说起来容易,做起来难。理想情况下,你只需要在可能的控制台和环境下,结合各种可能的消费者行为,定期测试各部分代码。但是,手动运行所有测试,几乎是不可能的,特别是大规模测试。
单元测试——利用专门的程序测试其他程序的性能,通过自动化处理测试过程中伴随的部分简单、重复性任务,比如创建角色、启动游戏或执行少数基本命令时,可以减轻员工的负担。
自动化测试面对更复杂的测试任务没有手动测试这么好,但是许多游戏公司发现,即便只是剔除一些重复性的小任务,就可以大大缓解开发人员的职业倦怠。
3
DevOps 是否真的改变了游戏?
DevOps 并没有完全掌控整个游戏开发行业,至少现在还没有。
这个行业充满复杂的流程,各种优先事项相互冲突,员工承受着巨大的交付压力,导致一些游戏公司不得不苦苦挣扎,寻找彻底转变其工作方式的机会。
很明显地,当游戏公司找到机会投入新工具并采用 DevOps 流程后,就会产生巨大的影响。
最重要的是,这种影响不仅仅是确立更高的底线,或者创建更好用的执行套件。受 DevOps 影响最大的群体,往往是游戏公司最关心的两个群体:开发人员和客户。