缩放 Warhammer 40000:1 小时内从 0 名玩家变为 100000 名玩家

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 了解 Fatshark 如何开发其迄今为止最复杂的游戏 Warhammer 40000:亚马逊云科技上的深色。在本论坛中,了解如何使用 Serverless 基础架构构建可扩展到数百万玩家的游戏后端。深入了解 Fatshark 如何使用 [Amazon GameLift](https://aws.amazon.com/cn/gamelift/?trk=cndc-detail) FleetIQ 和 FlexMatch,解决具有高实时计算要求的实时游戏服务器用例,而无需为峰值使用做好准备。他们这样做,同时使用云提供的对弹性和区域可用性的极端控制。此外,了解 Fatshark 如何使用亚马逊云科技 Global Accelerator,提高全球游戏性能。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1500字,阅读时间大约是8分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 作为亚马逊云科技的一名解决方案架构师,我与其他179名同事一起致力于帮助游戏开发者构建和发展他们的云端游戏。在这里,我想向大家介绍我的合作伙伴,安德鲁·克拉奇,他是瑞典斯德哥尔摩的Fatshark公司的技术总监。这家拥有约180名员工的工作室最近的作品是《战锤40000:暗影》。安德鲁在Fatshark的主要职责是监督游戏的后台和技术基础设施。在我们的讨论中,我们将深入了解Fatshark用于托管《暗影》并实现上线后1小时内从0迅速扩展到超过100,000个并发玩家的架构。 首先,我们将了解Fatshark公司和其游戏《暗影》的基本情况。接着,我们将探讨大规模运营多人游戏所面临的挑战。随后,我们将讨论Fatshark如何利用亚马逊云科技来应对这些挑战并建立相应的解决方案。最后,我们将分享所取得的成果、经验教训以及未来的发展规划。 作为Fatshark的第一个主要发布产品,Vermintide 1在其内部后台服务中不使用云基础设施的帮助。在2018年,Fatshark发布了续集《Vermintide 2》,增加了新的敌人派系并扩展了玩家角色。对于后台,他们决定使用Azure PlayFab来帮助将支持扩大到原始Vermintide的3倍以上的同时在线玩家。 这使我们来到了Fatshark最新关注的问题,即在演讲中提到的2022年底发布的Warhammer 40,000: Darktide。最初通过Steam和Windows商店在PC上推出,Darktide在不久后也在Xbox Series X/S控制台上推出。 安德鲁指出,Darktide代表了Fatshark的两个主要技术变革。首先,他们从对等主机切换到使用专用的游戏服务器。其次,他们完全在自己的后端基础设施上构建和托管自己的定制基础架构,而不是依赖外部提供商。 安德鲁接着概述了驱动Darktide设计的一些关键因素。这些需求包括: - 实现PC和控制台之间的跨平台游戏,以便任何人都可以一起玩游戏 - 他们自己主持权威的游戏服务器,以确保安全性和一致性 - 通过自动扩展而不是过度预配固定容量来优化成本 - 将延迟保持在110毫秒以内,以实现流畅的游戏体验 - 支持同步“大爆炸”启动时的不可预测的大量玩家涌入 鉴于这些目标,Fatshark确定任何对实时玩家体验至关重要的东西都需要在Amazon Web Services服务上托管。唯一的例外是单人剧情章节。 Yours So分享了负责处理启动时的高变化玩家流量的策略。他指出,而不是尝试提前为任何可能的需求峰值扩大容量,更好的方法是随着时间的推移分散流量。这样更容易逐渐扩大服务器规模以满足需求,而不会压倒架构。 Yours解释说,实施这种交通平滑化的两个关键要求是: 1. 通过登录队列逐步允许玩家进入游戏的速率限制 2. 利用单人剧情作为缓冲,因为玩家可以独立地完成它 对于登录队列,Fatshark采用了诸如CloudFront、Lambda和Elasticache等服务来控制登录速度并收集玩家数量数据以用于自动扩展。序言部分的教程性质作为一个自然的过渡,逐步引导玩家进入多人游戏部分(如中心站和匹配系统)。接下来,Yours工作室深入分析了Darktide的端到端玩家体验流程: 1. 登录 - 通过队列控制速度 2. 序言 - 单机教程 3. 中心站 - 玩家互动的社会区域 4. 匹配系统 - 将玩家分为攻击团队 5. 任务 - 与AI敌人合作的战斗 他指出,登录队列和序言部分是流量控制的关键组成部分。中心站、匹配系统和任务都是运行在按需扩缩的亚马逊云科技服务器上的。特别地,登录队列需要极高的每秒请求处理能力。 接着,Yours的工作将演示交给了Andrew,以便他提供更多关于他们实现登录队列和认证架构的技术细节。 Andrew解释道,登录服务需要在发行时应对巨大的流量峰值,同时高效地缩放到非高峰时段的最小容量。由于其固有的自动扩展功能,Lambda在这里非常适用。 Andrew通过流程图展示了过程。玩家首先访问CloudFront进行DDoS保护、缓存和其他边缘网络优势。CloudFront连接到一个验证Steam或Xbox等平台玩家身份的Lambda函数的URL。一旦验证成功,玩家的信息将被添加到一个基于Elasticache Redis的队列中。如有必要,Lambda会立即响应,以便客户端可以重试。 处理器在[Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail) Fargate上运行,按照先进先出的顺序提取队列中的项目。通过批量处理队列项,处理器可以独立扩展以满足目标处理速率。Andrew强调了队列如何作为防止交通洪流的关键缓冲区,保护下游服务。 对于大多数玩家,排队仅需几毫秒,不会产生明显的延迟。只有较长的队列才会显示出来,以管理预期。 在完成验证后,玩家连接到托管在Fargate上的EMRT服务,该服务使用Redis。EMRT负责小队管理、匹配状态更新和游戏服务器分配。 一旦匹配完成,游戏服务器索赔器会将玩家放置在最佳游戏服务器实例上。据Andrew表示,他们在超过12个区域运营游戏服务器,采用Amazon EC2并通过GameLift FleetIQ进行统一管理。 自动缩放组会在Spot实例和按需实例之间分配容量。优先选择Spot以节省成本,除非这会导致延迟问题。在放置群组时,索赔器会优化延迟,并在无法使用Spot的区域切换至按需实例。 对于跨地区团队,他们会选择最中心的服务器并提供全球加速器IP以提高网络性能。 Yours概述了他们如何协同工作以降低玩家延迟的服务方式。随后,他将演示文稿交给了Andrew,由他介绍了推出的进展。 Andrew表示,他们首先允许QA测试人员进入以验证功能。接着,他们开放了登录队列,但暂时暂停,以便玩家在加入前排队等待。最终,一旦准备推出,他们开始积极处理队列,并观察玩家流动情况: - 创建角色和教程 - 中心社交区 - 组队对抗 - 任务游戏服务器 在整个推出过程中,他们调整队列处理速度以确保流程顺畅。在1小时多的时间里,Fatshark在所有12个或更多的区域增加到超过30,000个vCPU,以支持在线的100,000多个并发玩家。 Andrew以总结关键经验教训和下一步计划结束了演讲。主要收获包括: - 在可能的情况下默认使用[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)技术 - 避免同步玩家的行为 - 根据实际使用情况调整架构大小 - 广泛应用托管服务 - 实现健壮的可观测性 展望未来,Fatshark计划继续优化CPU使用效率。他们打算运用在GameLift Anywhere中学到的知识来构建一个自定义守护进程,以在任何地方运行游戏服务器。他们将评估添加更多区域和本地区域,以在全球范围内更接近玩家放置游戏服务器。 总的来说,Andrew与Yours So深入研究了Fatshark公司如何运用亚马逊云科技的服务来构建一个高度可扩展的后端系统,以支持其游戏Darktide的运行。通过对服务器负载的精确控制、自动扩展功能以及优化游戏服务器布局等方面的努力,他们在短短60分钟内实现了超过10万名玩家的同时在线。他们的解决方案和所吸取的经验教训为所有寻求在亚马逊云科技平台上为全球玩家提供流畅游戏体验的游戏开发者提供了宝贵的参考。 **下面是一些演讲现场的精彩瞬间:** 亚马逊云科技的解决方案架构师与技术总监Fatshark共同探讨了在亚马逊云科技平台上构建和扩展游戏的可能性。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour/images/rebranded/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour_0.png) 该团队能够根据玩家需求灵活地扩展容量,避免过度供应,从而以经济高效的方式为他们提供卓越的游戏体验。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour/images/rebranded/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour_1.png) 为了应对高请求峰值,登录和认证服务需要在繁忙时期处理大量数据,而在流量较低时进行优化。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour/images/rebranded/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour_2.png) 通过设计合理的队列系统,可以有效缓解请求潮涌,防止下游服务过载。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour/images/rebranded/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour_3.png) 此外,全球加速器技术使得玩家可以通过全球IP和端口连接到远程地区的游戏服务器,提高游戏体验。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour/images/rebranded/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour_4.png) 亚马逊云科技团队在推出游戏方面取得了成功,他们通过扩大基础设施并调整队列处理速率,使玩家平稳地过渡到角色创建和匹配过程。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour/images/rebranded/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour_5.png) 我们建议各位观众参观re:Invent上的亚马逊云科技游戏展区,以便更深入地了解会议中展示的游戏架构。 ![](https://d1trpeugzwbig5.cloudfront.net/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour/images/rebranded/GAM305-Scaling_Warhammer_40_000__Darktide_from_0_to_100_000_players_in_1_hour_6.png) ## 总结 此次演讲探讨了Fatshark公司在他们的最新游戏《战锤40000:黑暗时代》发布后,如何在短短一小时内玩家数量从0迅速增长至超过100,000的过程中所运用的亚马逊云科技。这是一款需要四名玩家协同作战且具有高度物理模拟和复杂战斗体验的游戏。为了应对游戏发布时难以预测的流量需求,Fatshark决定在所有关键组件上使用亚马逊云科技,并采取了一系列关键措施来分散流量。这些措施包括限制玩家登录速度的登录队列、作为缓冲区的单人序章部分以及将玩家分布在不同服务器上的匹配系统。在后端,Fatshark尽可能地采用了[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)技术,如Lambda和DynamoDB构建了自定义服务,如认证和匹配系统,从而实现了按需扩展而无需过度配置。他们利用EC2 Spot和FleetIQ优化成本,同时使用全球加速器减少跨区域的延迟。 从中汲取的经验教训包括默认采用[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)技术的优势、根据实际工作负载调整架构规模以及大量使用托管服务。总的来说,亚马逊云科技原生架构提供了所需的效率和可扩展性,使得游戏的发布过程得以顺利进行,并支持超过100,000名同时在线的玩家。Fatshark将继续改进这一架构,考虑更多区域和新服务,如GameLift Anywhere,以降低成本并进一步优化玩家体验。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭