轻松启动游戏:《英雄联盟》如何在亚马逊云科技上大规模运行

轻松启动游戏:《英雄联盟》如何在亚马逊云科技上大规模运行

关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, Game Servers, Auto Scaling, Cloud Migration, Performance Optimization, Player Experience]

导读

探索Riot游戏公司(《英雄联盟》和《无畏契约》的开发商)如何利用亚马逊云科技革新其游戏服务器基础设施。了解他们如何使用亚马逊云科技自动扩展功能显著降低游戏服务器群组成本,同时提升快速响应玩家需求变化的能力,这帮助他们在更新游戏时敢于冒创意风险。了解他们如何开发了一个灵活的游戏配置平台,该平台能够自动启动针对不同Riot游戏标题独特需求定制的游戏服务器,使他们能够快速推出新的游戏模式,测试实验性想法,并提供最佳的玩家体验。

演讲精华

以下是小编为您整理的本次演讲的精华。

在不断进化的游戏领域中,玩家对无缝体验和尖端技术的需求日益增长。著名的AAA游戏工作室Riot Games于2022年与亚马逊云科技建立了战略合作伙伴关系,旨在革新旗舰游戏《英雄联盟》和《云顶之弈》向全球数百万玩家提供服务的方式。这一合作标志着重大里程碑,Riot Games和亚马逊云科技携手实现了多项卓越成就,包括开创首个电子竞技全球排名,见证了竞技游戏在全球范围内日益增长的影响力。这一切都得益于利用亚马逊云科技服务和基础设施。此外,他们还建立了由亚马逊云科技提供支持的顶级远程广播中心,使全球观众能够无缝观看电子竞技赛事的现场直播。他们还推出了首个基于机器学习的电子竞技统计数据,利用亚马逊云科技机器学习功能增强观赏体验,深入洞察选手表现。然而,这一合作关系最大的成就是将Riot Games所有数据中心迁移至亚马逊云科技,这一宏伟的工程为公司未来的增长和创新铺平了道路,得益于亚马逊云科技的可扩展性和全球覆盖范围。

这一故事的核心在于Riot Games如何利用Amazon EC2自动扩展功能降低游戏基础设施成本,同时深入探讨他们的游戏配置平台,旨在为玩家提供无与伦比的体验。《英雄联盟》是一款15年历史的多人对战团队游戏,凭借独特的英雄角色,每个角色都拥有不同的能力和法术,在全球吸引了大批观众。玩家组成五人小队,在快节奏的战斗中互相对抗,目标是摧毁对手的基地。另一方面,《云顶之弈》则提供了一种策略性的体验,玩家与其他七名玩家在较为缓慢的环境中竞争,巧妙地在棋盘上部署英雄,见证他们的战斗展开。

为了支持这些身临其境的游戏体验,Riot Games采用了一个健壮的架构,分为两个不同的组件:平台服务器和游戏服务器。平台服务器负责游戏外的体验,如登录、商店、匹配和进度系统,通过标准REST HTTP协议与客户端通信。相比之下,游戏服务器负责游戏内体验,玩家在其中施放法术、部署英雄,并参与实时模拟,需要低延迟和强大的计算能力,以保持每秒30帧的流畅模拟,同时在单个服务器上尽可能多地部署游戏,以优化成本效率。这一切都得益于利用Amazon EC2实例的高性能计算能力。然而,这也带来了一个独特的挑战——每个游戏服务器都需要单独可寻址,使其面临来自恶意玩家的潜在拒绝服务攻击,这些玩家试图破坏比赛并获得不公平的优势。为了缓解这一风险,Riot Games采用了亚马逊云科技安全服务和解决方案。

最初,《英雄联盟》运行在分布于世界各地数据中心的Windows服务器上,为南美、东南亚和土耳其等传统上服务不足的地区提供服务,从而获得竞争优势。然而,这种方式存在几个痛点,包括扩展挑战,需要保守的容量规划和在高峰需求期间大量浪费资源以确保足够的资源。另一个障碍是Riot Games采用的基于FPGA的自定义DDoS保护解决方案,它只支持每台主机255个游戏,同时最多支持两个游戏版本,这在引入移动游戏更新时变得问题重重,因为这些更新通常需要同时提供多个版本。

此外,运行Windows游戏服务器还需要支付许可证费用、管理许可证的开销,以及在亚马逊云科技上需要专用EC2实例。另外,Windows系统管理专业知识在Riot Games内部也日益稀缺,因为公司将培训和投资重点转移到管理数以千计的Linux服务器上。

2020年,Riot Games在12个亚马逊云科技区域、四个亚马逊云科技外围站点和五个Riot数据中心推出了Valorant,这是一个云优先基础设施计划。这次推出标志着一个重大转变,因为Valorant利用了运行在云中容器上的Linux游戏服务器,并采用了Amazon EC2和亚马逊云科技弹性容器服务(ECS),使游戏能够利用自动扩展功能。Valorant的成功推出促使《英雄联盟》寻求类似的解决方案,以缓解其本地基础设施带来的痛点。

认识到需要一个全面的解决方案,Riot Games转向了其玩家平台团队,这是一个负责解决账户、社交系统和行为系统等常见游戏问题的中央单位。最初,玩家平台团队的任务是为Riot Games即将推出的格斗游戏Project L创建一个基于Valorant解决方案最佳实践的云游戏配置平台。然而,当《英雄联盟》团队要求他们转向为该游戏提供解决方案时,玩家平台团队敏捷地做出了回应。

他们修改了Valorant的架构,加入了原生补丁支持,用于多版本游戏服务器分发、内置游戏结束处理,以及更通用的反DDoS解决方案。修改后的架构包括四个中央调度位置,运行代理的 pod 和 pod 实例来管理游戏服务器生命周期。这种精简的方法简化了游戏平台与启动和管理游戏服务器实例的交互方式,实现了巨大的可扩展性,因为游戏团队只需将游戏发送到调度器,资源就可以动态分配到可用的 pod,利用Amazon EC2的自动扩展功能。

将《英雄联盟》迁移到新的游戏配置平台带来了一系列挑战。第一个挑战是将游戏服务器从本地数据中心迁移到亚马逊云科技,这个被称为“全球数据中心退役”项目的过程历时数年,最终于2023年完成了土耳其伊斯坦布尔最后一个现场数据中心向亚马逊云科技外围站点的迁移,标志着Riot Games所有游戏服务器完全迁移到云端,利用亚马逊云科技提供的全球基础设施和服务。

第二个挑战是将游戏服务器从Windows移植到Linux。经过15年的开发,代码库中积累了许多与Windows操作系统相关的假设和依赖。Riot Games必须解决这些特定于平台的假设,进行彻底的性能测试,并解决在移植过程中出现的特定于平台的错误。其中一个错误涉及标准库容器的确定性顺序问题,导致了《英雄联盟》中一个特定英雄能力组合的游戏错误。在已迁移到Linux的地区,玩家无法执行海盗英雄普朗克的这个组合,即放下并射击木桶,而在Windows地区的玩家仍然可以成功执行。根本原因是由于Linux上容器的确定性顺序不同,导致数据包延迟一帧到达和处理,这凸显了游戏对此类特定于平台的细微差异的敏感性。

最后也是最重大的挑战是为游戏服务器有效利用自动扩展功能。与传统的Web服务不同,游戏服务器的扩展决策不能仅依赖CPU阈值和请求延迟。Riot Games通过实证确定,《英雄联盟》和《云顶之弈》的“玩家痛苦阈值”——即玩家开始感受到游戏无响应和卡顿的CPU利用率水平——大约为80%。

为确保无缝体验,自动扩展阈值需要设置在这个痛苦阈值以下,从而为自动扩展识别需要额外资源、启动新实例并分配负载留出足够时间,避免玩家遭受性能下降。然而,确定最佳自动扩展阈值因《英雄联盟》和《云顶之弈》在游戏过程中表现出不同的性能特征而变得复杂。与整场比赛表现一致的Valorant不同,《英雄联盟》和《云顶之弈》游戏从计算角度来看开始时成本较低,随着英雄获得能力、冷却时间缩短以及比赛中后期激烈的团队战斗,资源需求会不断增加。

《英雄联盟》的典型游戏时长为24-26分钟,但也有一些游戏时间更长。《云顶之弈》的游戏平均时长甚至更长。《英雄联盟》游戏的CPU成本起初较低,中期会增加,之后保持一致,最后在团队战斗阶段会出现峰值。对于《云顶之弈》,CPU成本的模式类似,起初较低,随着更多英雄被部署到棋盘上而增加,但在最后阶段随着玩家被淘汰只剩两名玩家时会下降。

为了应对这一挑战,Riot Games利用来自其实时分片的真实世界数据构建了一个模拟环境,重播游戏实例并使用不同的放置算法来评估它们在最小化方差和将CPU利用率保持在80%以下的痛苦阈值的同时最大化成本节约的有效性。在评估了包括轮询、随机选择和其变体在内的各种算法之后,Riot Games最终选择了轮询方法。这种算法在《英雄联盟》和《云顶之弈》两款游戏中表现良好,同时实现简单,符合统一解决方案的设计目标。

采用轮询算法并随后将自动扩展阈值从最初的40%逐步提高到45%、60%及以上,取得了显著成果。每次提高阈值都带来了显著的成本节约,60%的阈值使基础设施成本减少了三分之一。最终,Riot Games每年节省高达1000万美元的成本,这是公司历史上单个最大的节省成本计划之一,这一切都要归功于利用Amazon EC2的自动扩展功能。

然而,这一迁移的好处不仅仅体现在成本节约上。基于云的游戏配置平台和自动扩展功能使Riot Games能够以前所未有的灵活性来处理不同的性能配置。例如,在推出《英雄联盟》的临时Swarm游戏模式时,该模式具有独特的性能特征,需要更少的玩家但更多的实例,Riot Games可以在不需要过度配置容量的情况下支持它,这在之前的内部环境中是不可能做到的,因为他们需要为一个为期两个月的活动购买三倍于服务器机群的容量。这种灵活性得益于亚马逊云科技的可扩展性和按需容量。

同样,一种新的具有内存绑定配置文件的《云顶之弈》游戏模式可以通过在Amazon EC2上无缝切换到M类实例来轻松适应,展现了云基础设施带来的敏捷性。这种灵活性为实验和创新开辟了新的可能性,因为Riot Games现在可以探索不同的游戏模式和性能配置文件,而不受之前基础设施的限制。

这一转变的影响在Riot Games内部产生了深远影响,将对话从基础设施问题转移到了对延迟SLA和目标市场的关注。游戏团队现在可以专注于为玩家提供最佳体验,确信底层基础设施将适应他们的需求,利用亚马逊云科技的全球覆盖和低延迟能力。

此外,基于云的游戏配置平台还开启了令人兴奋的可能性,例如基于延迟的匹配。通过利用平台的ping实现,具有相似ping的玩家可以被匹配到地理位置最优的游戏服务器,确保所有参与者获得一致且低延迟的体验,这得益于亚马逊云科技提供的全球基础设施和服务。

在回顾这一变革性的旅程时,Riot Games认识到在将宝贵的系统过渡到新生态系统时重新评估假设和期望的重要性。一个系统的内在价值并不能保证无缝过渡,愿意实验、评估和发展是成功的关键。

展望未来,Riot Games计划进一步增强游戏配置平台,提供引人注目的功能,可能吸引已经拥有强大解决方案的Valorant考虑迁移到新平台。该平台已在公司内部获得认可,Riot内部黑客马拉松Thunderdome的游戏原型利用其功能进行多游戏匹配和游戏,包括30个原型利用该平台。

此外,Riot Games即将推出的研发项目,包括一款雄心勃勃的大型多人在线游戏,在支持永久游戏服务器模型方面面临独特挑战,都运行在游戏配置平台上,利用亚马逊云科技提供的可扩展性和灵活性。该公司还在探索在亚马逊云科技 Graviton实例上运行《英雄联盟》的可能性,这是进一步优化成本的一个有前景的途径,正如一位勇于尝试的工程师在Thunderdome期间成功验证了在Graviton实例上以低成本资源运行《英雄联盟》的可行性。

总之,Riot Games与亚马逊云科技的合作开启了游戏创新的新时代,不断推动着可能性的边界。通过无缝集成亚马逊云科技服务,如EC2、ECS、Auto Scaling和全球基础设施,Riot Games不仅降低了基础设施成本,还开启了为玩家提供无与伦比体验的新世界。随着游戏行业的不断发展,这种合作见证了拥抱变革、利用尖端技术并将玩家需求置于每一个决策的核心的力量。

下面是一些演讲现场的精彩瞬间:

游戏服务器需要单独的可寻址性,这使它们面临来自试图操纵比赛结果的恶意玩家的潜在拒绝服务攻击。

Riot Games讨论了他们寻求更好的放置算法来优化不同游戏模式和地区的CPU利用率,同时保持低成本。

Riot Games利用亚马逊云科技自动扩展功能,无需过度配置资源,就可以无缝支持为《英雄联盟》推出新的游戏模式“Swarm”。

Riot Games的基于云的游戏配置平台实现了无缝全球部署,使开发人员能够专注于为全球玩家提供最佳游戏体验。

Riot Games分享了在将游戏基础设施迁移到新的生态系统(如亚马逊云科技)时重新评估假设和发展策略的见解。

总结

Riot Games是《英雄联盟》、《valorant》和其他热门游戏的知名游戏工作室,他们着手将基础设施迁移到亚马逊云科技的宏伟计划。这不仅降低了成本,还为提供卓越的游戏体验开辟了新的可能性。以下是简明扼要的叙述摘要:

Riot Games与亚马逊云科技的合作彻底改革了他们的基础设施,使他们能够利用自动扩展和基于云的游戏配置。通过将《英雄联盟》从本地金属服务器迁移到亚马逊云科技,他们克服了扩展、DDoS保护和Windows许可等挑战。这一过程涉及将游戏服务器从Windows移植到Linux,解决性能和平台特定的错误,并实施最佳负载均衡算法,通过自动扩展实现最大成本节约。

通过模拟和严格测试,Riot Games确定循环算法是在《英雄联盟》和《Teamfight Tactics》中平衡游戏服务器负载的最有效方法。这使他们能够提高CPU自动扩展阈值,每年节省高达1000万美元的成本。此外,基于云的基础设施使Riot Games能够处理不同的性能配置文件,使他们能够无缝推出诸如Swarm和TFT新的内存绑定模式等创新游戏模式。

展望未来,Riot Games基于云的游戏配置平台将开启令人兴奋的可能性,例如基于延迟的匹配、与研发游戏的协作,以及探索在Graviton实例上运行《英雄联盟》的潜力。这一变革性的旅程不仅优化了成本,而且为全球玩家提供了无与伦比的游戏体验铺平了道路。

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值