Case Studies

THE COALITION

Coalition 将 Azure 虚拟机转变成了一台 700 核的 Incredibuild “超级虚拟计算机”,在 1 年内发布了 2 款 AAA 游戏

本案例研究由 Microsoft 和 Incredibuild 共同撰写。关于 Microsoft 网站上发布的版本,请点击这里

关于 COALITION

Microsoft 旗下的 Coalition 工作室披荆斩棘,杀入 AAA 游戏的最前线。顾名思义,当 Microsoft 从 Incredibuild 的另一个客户 Epic Games 手中购买了顶级第一人称射击类品牌之一《战争机器》的专营权之后,Coalition 专门致力于该游戏系列的开发、支持和创新。

该工作室位于风景如画的不列颠哥伦比亚省温哥华市,拥有 200 名员工,他们都努力致力于通过在 Xbox One 和 Windows 10 平台上的破记录的《战争机器》系列,让数百万的玩家沉浸在 Sera 星球的末日后场景中。作为 Incredibuild 的长期用户,Coalition 的开发人员已将其集成至微软 Azure,可通过混合云环境,无缝地扩展至数百个额外核心。

如果没有 Incredibuild,我们的开发将陷入停顿。

Joe Vogt

IT 经理

难点:

对全世界的《战争机器》粉丝来说,2016 年是一个令人惊叹的年份。随着《战争机器》两个版本的发布:终极版(该经典系列中首部游戏的高清重制)以及后来的《战争机器 4》(第一人称射击类游戏传奇的新篇章),热炒宣传成为了现实。Coalition 的开发人员需要顶着这种热炒宣传交付游戏,并克服外部和内部的生产挑战。Coalition 的 IT 经理 Joe Vogt 表示,从内部需求而言,对虚幻引擎 4(UE4)大量而频繁的使用,构成了重大挑战。“我们使用 Epic 的虚幻引擎编辑器 4 作为关卡、角色和车辆等内容创建的主要工具。

该编辑器需要预先编译所有着色器,在某些情况下,打开一个关卡可能需要 30 分钟。”由于每天有超过 100 位团队成员使用 UE4,我们需要一个能够加速着色器编译时间的解决方案。Vogt 表示道:“简单算一算就知道,才打开一个关卡就需要 30 分钟,每天 4-5 次,这意味着一天的三分之一时间没法干活了。” 从外部来看,与 Coalition 合作的一些第三方外包合作伙伴扩大该工作室的产能。其中的部分合作伙伴是一些规模较小的组织,他们无法受益于编译着色器以及高效利用 UE4 的专用 Incredibuild 设备。这一情况令这些合作伙伴渴望找到解决方案。

INCREDIBUILD 的应对之道:

作为微软内部的第一方工作室,Coalition 工作室能够使用并受益于 Azure 云计算平台。微软 Azure 为 Coalition 工作室提供了一种简单而有效的方式,来部署数百个用于加速本地着色器编译的专用 CPU 内核。Coalition 工作室利用 Incredibuild 独特的进程级虚拟化技术,对 Azure 的性能进行了扩展,完全超出了单个 Azure 虚拟机的能力。

Coalition 工作室部署了几十台运行 Incredibuild 的 64 核的 Azure 虚拟机(VM),这些虚拟机将作为“超级虚拟计算机”,向本地美术师和动画师提供进行着色器编译所需的这些资源。借助 Azure 虚拟机的能力,Incredibuild 创建了一个“即时”的虚拟环境,所有内核均会进行协作,共同处理单一进程。因此,扩展平台,以满足非常大的进程执行需求,并为开发人员、程序员和设计师无缝加速 UE4 着色器编译和关卡加载时间。

内部加速:在公司内部扩展 Azure

Coalition 工作室花了将近三年的时间制作了《战争机器 4》。在此期间,本地专用 Incredibuild 资源部署在本地,用于加速 UE4 性能以及代码编译。正如大型游戏开发中常见的那样,随着该工作室努力督促按时交付游戏,游戏制作的最后六个月成为了“关键时期”。在这一关键时期,Coalition 工作室需要采取一种既能增加 Incredibuild 资源、又不会增加更多本地部署设备的方式。

Coalition 工作室能够通过微软 Azure ExpressRoute 提供的连接服务,部署一个基于 Azure 的大型 Incredibuild 集群。

这样能够允许基于 Azure 的 Agents 以“本地”的形式出现在 TC 的现有 Coordinator 面前。TC 以这种方式部署了 700 个内核,并在《战争机器 4》的最后生产冲刺阶段得到了使用,从而大幅缩短了着色器和代码编译的时间。

据 Vogt 表示:“Incredibuild 对我们迭代和演进的能力产生了绝对影响。我们的迭代周期包括创建一个游戏构建版本、玩游戏、发现错误、报告错误、纠正错误以及生成另一个构建版本,有时一天两次。重复整个流程。这一切都涉及到用户能够以多快的速度获得所有数据的最新版本,然后继续工作。如果没有 Incredibuild,我们的开发就会停滞不前。”

外部加速:为规模较小的合作伙伴雪中送炭

当涉及到外部合作伙伴的生产力时,Azure 和 Incredibuild 资源会进行外包,以获得短暂而关键的性能提升,从而帮助遇到算力瓶颈的合作伙伴度过难关。Vogt 回忆道:“在一个实例中,合作伙伴本地无法提供任何专用 IB 集群容量,这使得在 UE4 中打开大型《战争机器 4》关卡时,会造成用户长时间等待。”

同样,Coalition 在同一个包中利用了 Azure 消费服务灵活的性质,以及 Incredibuild 的并行计算技术。唯一不同的是,这一次,他们赋予了外部合作伙伴扩展其性能以及享受无与伦比的加速的能力,不论合作伙伴的初始资源如何有限。

“我们在面向公众的 Azure 数据中心部署了大约 160 个内核,并配置了与合作伙伴位置点对点的 VPN 网络。这能够让少数本地虚幻引擎用户受益于部署在 Azure 上的 IB 集群能力,从而加速他们的工作。”

就像游戏开发中的许多其他微任务一样,由于这只是短期行为,Collation 喜欢 Azure 消费服务,可以通过短时间的混合云爆发,在需要时提升 Incredibuild 的性能,而非购买长期而言无用的昂贵硬件。

结果概要:

Coalition 在一年内发布了 2 款 AAA 游戏,似乎实现了不可能的任务。他们能够获得成功,一定程度可归结为:

  • 通过 Incredibuild 将 Azure 扩展至其最大潜力:借助 Incredibuild 创建一个 700 核 Azure 超级虚拟计算机的能力,这远远超出了 Azure 最强大的单一虚拟机的极限,Coalition 进行了超强扩展,获得了最大程度的加速性能。
  • 消除了不必要的耗时大户: 借助 Azure 算力支持,Incredibuild 大幅缩短了着色器和代码构建时间、转换 UE4 关卡加载时间,并允许生产人员继续工作,而非等待。
  • 加速外包合作伙伴:  有限的合作伙伴资源并不会构成障碍,因为 Coalition 分配了通过 Incredibuild 操作的 Azure 内核来帮助算力不足的外部公司。
  • 通过灵活部署节约资源: 根据内部和外部需求实时向上和向下扩展,能够让 Coalition 为任何阶段且只为该阶段分配解决方案。