Odyssey Interactive如何推出跨平台即时服务游戏《Omega Strikers》
Odyssey Interactive首席技术官Chris Shankland
2023年9月19日
Odyssey Interactive
Omega Strikers
学习
技术博客
游戏
我是
Odyssey Interactive
的首席技术官Chris Shankland,之前曾担任
《Omega Strikers》
的技术主管。《Omega Strikers》是一款瞬息万变的3V3足球大乱斗游戏,将对手击出竞技场,扫清通往球门的障碍——仅仅在第一回合,就将上演如此激烈的战斗。《Omega Strikers》已登陆所有主流平台,包括:PC、PlayStation、Xbox、任天堂Switch、iOS和安卓。我将介绍为了在移动平台上实现高质量竞技和视觉体验,我们采用了哪些技术。快速发布高质量的《Omega Strikers》离不开团队的共同努力。在这里,我只打算向你讲述我们遇到的挑战和采取的解决方案,希望能为类似的游戏提供启发和价值。
《Omega Strikers》本质上是一款竞技游戏,因此我们将实现完整的竞技体验放在首位。在实践中,这意味着我们必须重视游戏性能、玩法清晰度和控制方式。在此基础上,我们还需要努力提升游戏的视觉质量,确保我们漂亮的美术效果能够大放异彩。为了实现我们理想中的视觉效果和性能,我们必须对内存、CPU和GPU等一些为人熟知的限制性因素做出管理。我将针对这些方面,分别挑选具体示例,阐述我们如何查明一些挑战,并最终解决这些在发布过程中极具代表性的阻碍因素。
内存
角色是《Omega Strikers》的基础,游戏在发布时提供了15名角色,该角色阵容还将通过定期的内容更新继续得到扩展。回顾开发初期,角色和定制内容较少,图形都是占位符。那时候,我们可以很方便地维护一个全局集合,其中包含了指向角色及其所有相关内容的硬引用。在开发的大部分时间里,在低配置设备上执行的内部测试并没有遇到任何问题。随着离发布时间越来越近,视觉保真度和内容数量大幅提升。使用这些质量更高的资产开发了一段时间后,内存问题堆积如山,游戏在低配置设备上无法启动。
《Omega Strikers》早期构建版本的包可视化
此时,有两种可行的一般策略:缩小资产规模,或彻底改变资产管理方式,从始终加载方案改为按需加载方案。按需加载方案符合即时服务模型的可延展性期望,因此我们选择了这个方向。重构过程包括将对纹理或角色等大型资产的所有硬引用转换为软引用。我们将表示游戏目录的完整数据资产集合保留在了内存中,以便快速、同步地解析资产。这种方法将所需的重构量限制在了可控范围内,我们只用了大约短短一周时间就完成了整个变更过程。在这种解决方案的帮助下,《Omega Strikers》已经成功发布了四次重大内容更新,包括在无需再次解决内存问题的前提下,新增了地图和角色。
Unreal Insights内存捕获:硬引用
Unreal Insights内存捕获:软引用
CPU
为了确保顺利赶上发布期限,我们始终高度关注CPU性能,在整个开发过程中都是如此,因此,我们成功地避免了在临近发布时做出重大优化的压力。我们在这方面的策略是确保游戏在低配置设备上能够正常运行,并优先解决性能回归问题。当遇到问题时,
Unreal Insights
是我们的首选诊断工具。
GPU
在各种移动设备上维护图形性能是一项挑战。玩家期待在高端设备上享受优质的视觉效果,也希望游戏在所有设备上都能以高性能运行。除了自定义环境质量设置外,《Omega Strikers》还在纹理和网格体中使用了标准细节层级技术,用于创建范围广泛的图形比例。我们通过控制台变量公开和操作这些设置,我们也采用这种方式创建了设备描述,并允许用户自定义设置。我们还依靠Unreal Insights提供大部分分析数据,指导我们做出优化。我们使用的另一款工具是
RenderDoc
,它和它的插件能够帮助我们深入研究特定设备的性能,或判断何时需要细粒度的计时。
为了避免首次使用着色器时出现卡顿,我们需要在移动设备上采用
PSO缓存
功能。我们开发了一种自动化流程,它将创建一个部署到物理设备上的游戏版本,自动以所有质量设置渲染各种可能实现的视觉效果。自动运行结束后,该应用会将完整的PSO缓存发布到我们的构建管线中,以便将它们纳入将来的构建版本。
概述
从一开始就针对移动设备进行构建,并利用虚幻引擎提供的工具优化开发工作,只有这样,一支小型团队才有可能在移动设备上发布并不断更新《Omega Strikers》。我们在工具箱中采取了一些策略,以针对性能较差的设备移除一些工作,为适应较小的内存预算而流送资产或数据,或在绝对有必要的情况下使用特定于移动平台的解决方案(用户界面和控件就是很好的例子)。通过定期在低配置设备上验证游戏,将确保我们在问题萌发时就能察觉到它们,避免它们在关键时刻让我们感到不知所措。在开发初期就做好规划和测试,有助于我们在扩大规模之前制定合适的策略和预算。有了这些解决方案,再加上我们出色团队的努力,《Omega Strikers》得以在尽可能广泛的平台上兴旺发展,并如我们所希望的那样,作为一项即时服务一直顺利运营下去。
希望我们所学到的东西能够对将来的游戏起到帮助作用,我已经迫不及待地想玩到这些游戏了!
立即获取虚幻引擎!
获取全球最开放、最先进的创作工具。
虚幻引擎包罗万象,并提供完整的源代码访问权限,开箱即用,诚意十足。
立即开始