快跑,糖豆人!这个爆款游戏背后原来有TA

百家 作者:微软科技 2022-02-11 01:04:14

(本文阅读时间:3分钟)

游戏集团 Tonic Games Group 旗下的英国游戏开发商 Mediatonic 在2020年的8月发行了大逃杀游戏《糖豆人:终极淘汰赛》(Fall Guys: Ultimate Knockout),尽管属于惨烈的大逃杀游戏,但缤纷的色调、出色的配乐与讨喜的角色让它被誉为是史上最可爱的大逃杀游戏,在游戏发行的24小时内,就吸引了全球逾150万名玩家。

它在全球面临严峻 COVID-19 疫情的时间点发行,对于经常受困家中的人们来说,引人入胜又异想天开的游戏成为大家寻求解脱与联系的管道,玩家的数量亦超越了 Mediatonic 团队的想像。

迄今《糖豆人:终极淘汰赛》于游戏平台 Steam 上的销售量已突破1,100万套,也是 PlayStation Plus 游戏主机史上,下载量最高的一款游戏。

该游戏受欢迎的程度加速了 Mediatonic 的 IP 授权,也在玩家持续提供意见的情况下建立更多的关卡、更多的服饰/配件,或是更多的个性化服务,Mediatonic 团队亦与知名的 IP 合作,期望能更快速地扩大玩家社群。

虽然 Mediatonic 过去几年也曾于微软合作发表过许多大型游戏,但没有一个规模比得上《糖豆人:终极淘汰赛》,这款游戏在发行后超越了所有的期待,Azure 则提供了弹性与快速延展所需的所有保证。

——Tonic Games Group 执行长 Adam Fletcher

Mediatonic 技术总监 Craig Bendell 则说,当该公司刚发表《糖豆人:终极淘汰赛》时,游戏就爆红了,在内部讨论它可能达到的规模之后,就向 Azure 提出了相应的云资料要求,Azure 团队在很短时间内就确认了我们所需要的资源数量并以优化的架构满足了我们的并发需求。

在《糖豆人:终极淘汰赛》的成长颠峰时期,每分钟有超过2.5万名玩家登入,有2,000个新帐号被建立,启用1,000个新游戏。

一直以来, Mediatonic 都使用不同的云端平台与广泛的服务,团队以容器来打包程式代码,使其能在任何地方执行,主要的需求包括 Kubernetes 集群的容器服务、可快速缩放且零停机的多模型资料库、可在游戏平台侦测及缓解 DDoS 攻击的解决方案,以及自动化的开发与 IT 维运。

适合游戏团队的解决方案AKS


于是 Mediatonic 借助微软的 Azure Kubernetes Services(AKS)、 Azure Cosmos DB、Azure DDoS ProtectionAzure DevOps 等云端服务,来解决上述需求。

由于 Mediatonic 只有有限的平台工程团队,想要在不花费太多力气来改变架构的情况下利用可延展的 Kubernetes 架构,也需要很高的 SLA 要求,经过评估后,发现 AKS 是个比其它选项更为成熟的产品。

Kubernetes 为一开源的容器编排平台,可大规模地部署及管理容器化的应用程序。它根据可用的运算资源及每个容器的资源需求来协调虚拟机器集群编排容器,分配容器至所需状态的各个 Node。

Mediatonic 的首席平台工程师 Ben Constable 表示,该公司原本就有部署 Kubernetes 的经验,但这对人员有限的 Mediatonic 开发团队而言是个庞大的负担,而 AKS 不但稳定,也能轻易与其它的 Azure 服务互动。

AKS 让 Kubernetes 的集群建立与管理变得更容易。当使用者建立一个 AKS 集群时,AKS 会替使用者设定 Kubernetes 主机,再替使用者建立虚拟机器扩展集(Virtual Machine Scale Sets,VMSS),并将这些虚拟机器转成工作节点。使用者可以选择免费的 Kubernetes 控制平台或拥有 SLA 的付费控制平台。

在 AKS 中,Kubernetes 上运行的服务整合了 Azure Load Balancer 与 Kubernetes Ingresses 负载平衡器,还能整合 Azure Application Gateway 网路流量负载均衡器,意味着当使用者在 Kubernetes 中建立一个服务或 Ingresses 时,Azure Load Balancer 或 Azure Application Gateway 也会同时建立规则,以将流量导至正确的节点上。

此外,AKS 亦具备其它集群管理功能,包括更新 Kubernetes 版本,或是移除或新增节点来缩放集群。使用者亦可选择整合 Azure Active Directory(Azure AD) 执行身分识别验证与访问控制(role-based access control,RBAC);或是将 AKS 整合至 Azure Monitor 来监视容器,以简化应用程式的监控与排错。

Mediatonic 技术总监 Craig Bendell 即说,当一个 Kubernetes 集群即将失去支持,但该团队却来不及更新 Kubernetes 版本或转移至新集群时,Azure 对此集群带来一流的支持服务,替他们争取了好几天的时间。

搭配其它 Azure 服务


除了使用 AKS 之外,Mediatonic 也采用 Azure Cosmos DB 作为开发现代应用程式的完整管理 NoSQL 数据库,它的延时只有个位数毫秒,还有自动且立即的扩充能力,而且不管对任何规模的数据库都有延时上的保证。Azure Cosmos DB 亦带来更快的程式开发速度与更好的生产力,透过自动化的监控、更新与修补,简化了资料库的管理需求。

《糖豆人:终极淘汰赛》必须处理不同类型的数据,利用 Azure Cosmos DB 来存放玩家的中继资料,诸如档案资讯、道具及进度等,Azure Cosmos DB 能够横跨多个资料中心来复制资料,以降低延迟、增加弹性,并减少成本。

Mediatonic 团队可通过配置 Azure Cosmos DB 的一致性等级,来均衡数据库的能力,较低的一致性有助于优化写入速度的解决方案,较高的一致性则适用于重要数据,Azure Cosmos DB 提供从强到弱的5种一致性等级,依序是强(Strong)、边界过期(Bounded staleness)、会话(Session)、一致的首码(Consistent prefix),以及最终(Eventual),每个等级皆提供了可用性与性能的权衡。

一致性等级与区域无关,不管在哪个区域读取或写入、与 Azure Cosmos DB 帐户有关的区域数量多少,或者是使用者的帐户是否配置单一或多个写入区域,所有的操作都会获得保证。

为了保障游戏的安全,Mediatonic 接纳 Azure 架构师的强烈建议,在发行《糖豆人:终极淘汰赛》之后,透过 Azure DDoS Protection 来自动监视与缓解该游戏平台上的 DDoS 攻击。从 Mediatonic 技术团队的角度来看,所有困难的任务都已交由 Azure 负责处理,让该团队有更充裕的时间来创作游戏。

该团队亦基于 Azure DevOps 来管理需求,采用 Agile 及 Scrum 流程范本,创建及测试程式码,执行持续整合 (CI) 和持续部署 (CD),以及部署等。

开发团队还能使用由 Azure DevOps 或 GitHub 来管理他们的原始代码,将该配置打包及部署至任何容器登录,如 Docker Hub、Azure Container Registry,或是自己部署的 Kubernetes 集群。

工程师可将各种更新推送至不同的功能分支,一旦准备就绪,即可建立一个提取要求以将代码并入主分支,触发 CI/CD 流程,将程式码包装成容器,再整合至 Azure Container Registry,并部署成 Kubernetes 集群以执行自动化的端点至端点测试。

由于 Azure DevOps 支持众多平台与开发环境,使得 Mediatonic 团队也能在不同的系统及开发环境中工作,该团队使用 Git 标签来协助控制程式码开发流程,创造标签自动配置及将容器推送至开发环境,一直到各个版本完成 QA 程序,其完整发布周期都通过 Azure DevOps 管理。

另一方面Mediatonic在AKS上部署了 Elasticsearch 与 Kibana,也以  Azure Event Hubs 来处理游戏中的事件,并予以适当的回应,展现 Azure 与第三方服务整合的能力。

《糖豆人:终极淘汰赛》目前支持 Windows 和 PlayStation 平台,预计于明年陆续登上 Xbox 及 Nintendo Switch 平台。


推荐阅读

精彩活动

回顾正当时 · Microsoft Ignite China 的十个「点亮」瞬间

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接