将云服务用于 UWP 游戏
Windows 10 中的通用 Windows 平台 (UWP) 提供了一组 API,可用来跨 Microsoft 设备开发游戏。 当开发跨平台和设备的游戏时,可以利用云后端帮助根据需求扩展游戏。
要查找游戏的完整云后端解决方案,请参阅面向游戏后端的软件即服务。
什么是云计算?
云计算通过 Internet 按需使用 IT 资源和应用程序,以存储和处理设备的数据。 云这一术语是对可以从非特定位置访问的大量资源(而不是本地资源)的比喻。 云计算原理提供了一种使用资源和软件的新方式。 用户无需再提前全额支付完整的产品或资源费用,而是能够将平台、软件和资源作为一项服务使用。 云服务提供商通常根据使用情况或者所提供的服务计划对客户进行计费。
为何使用云服务?
对游戏使用云服务的一个优势在于,无需事先投资于物理硬件服务器,只需在后来的阶段中根据使用情况或服务计划付费。 这种方法可以帮助管理开发新游戏时涉及的各种风险。
另一个优势在于,游戏可以利用庞大的云资源实现可伸缩性(有效地管理并发玩家数量、密集实时游戏计算或数据要求的任何突增现象)。 这样,游戏的性能就能始终保持稳定。 此外,还可以从全球任何位置的任何平台上运行的任何设备访问云资源,这意味着你可以将游戏提供给全球的每一个人。
为玩家提供美妙的游戏体验非常重要。 由于在云端运行的游戏服务器无需对客户端进行更新,因此它们可以为你的游戏提供一个更受控、更安全的整体环境。 还可以通过云来实现游戏的一致性,即永远不信任客户端,而采用服务器端的游戏逻辑。 服务到服务的连接也可以被配置为允许更集成的游戏体验;例如,将游戏内购买链接到各种支付方式,在不同的游戏网络上进行桥接,以及将游戏内更新分享到 Facebook 和 X 等流行的社交媒体门户。
还可以利用专用的云服务器创建永恒的庞大游戏世界、建立玩家社区、随着时间的推移收集并分析玩家数据以改善游戏体验,以及优化游戏的盈利设计模型。
此外,还可以利用云服务实现需要大量游戏数据管理功能的游戏,例如采用异步多人游戏机制的社交游戏。
游戏公司如何利用云技术
了解其他开发人员如何在其游戏中实施云解决方案。
开发人员 | 说明 | 主要游戏场景 | 了解详细信息 |
---|---|---|---|
腾讯游戏 | 腾讯游戏利用 Azure Service Fabric 开发了一款创新解决方案,以便将传统电脑游戏以服务的形式交付。 他们的云游戏解决方案采用“瘦客户端 + 丰富的云服务”模式,在后端将工作负载作为微服务运行。 |
|
|
343 Industries | 《Halo 5: Guardians》选择(通过 DocumentDB API)使用 Azure Cosmos DB 实现 Halo: Spartan Companies 作为自己的社交游戏平台,因为 Azure Cosmos DB 的自动索引功能提供了高速度和灵活性。 |
|
|
Illyriad Games | Illyriad Games 打造了《Age of Ascent》,这是一款史诗级的大型多人在线 (MMO) 3D 空间游戏,拥有现代浏览器的设备都可以玩这款游戏。 因此,电脑、笔记本电脑、手机和其他移动设备都可以玩这款游戏,而无需安装插件。这款游戏采用了 ASP.NET Core、HTML5、WebGL 和 Azure 等技术。 |
|
|
Next Games | Next Games 是基于 AMC 原创系列的《The Walking Dead: No Man's Land》视频游戏的开发商。 《The Walking Dead》游戏采用 Azure 作为后端。 在周末开放之后,这款游戏的首周下载量达到了 100 万次,在美国 App Store iPhone 和 iPad 免费应用程序排行榜、12 个国家/地区的免费应用排行榜和 13 个国家/地区的免费游戏排行榜中都独占鳌头。 |
|
|
Pixel Squad | Pixel Squad 利用 Unity 游戏引擎和 Azure 开发《Crime Coast》。 《Crime Coast》是面向 Android、iOS 和 Windows 平台推出的一款社交策略游戏。 这款游戏使用了 Azure Blob 存储、托管的 Azure Redis 缓存、负载平衡 IIS VM 阵列和 Microsoft 通知中心。 了解他们如何管理缩放和处理 5000 名同时玩家的突增情况。 |
|
|
其他链接
- 《Hitman》和 Azure:打造只能通过云服务实现的游戏功能,例如 Elusive Target
- Hitcents、Game Troopers 和 InnoSpark 将 Azure 用作秘密武器
如何设计云后端
尽管制作商和游戏设计人员都在讨论游戏中需要哪些游戏特性和功能,但最好开始考虑如何设计游戏基础结构。 要为各种设备和主要平台开发游戏,可以将 Azure 用作游戏后端。
了解 IaaS、PaaS 或 SaaS
首先,需要考虑最适合游戏的服务级别。 了解下面这三项服务之间的差异有助于确定在构建后端时要采用的方法。
-
基础结构即服务 (IaaS) 是即时计算基础结构,可通过 Internet 进行预配和管理。 假设很多计算机都有可能随时根据需求进行快速纵向扩展和缩减。 而使用 IaaS,你无需购买和管理自己的物理服务器和其他数据中心基础结构,因此有助于避免由此产生的费用和复杂性。
-
平台即服务 (PaaS) 类似于 IaaS,但它还包含服务器、存储空间和网络等基础结构管理功能。 因此,除了不必购买物理服务器和数据中心基础结构以外,还无需购买和管理软件许可证、底层应用程序基础结构、中间件、开发工具或其他资源。
-
软件即服务 (SaaS) 让用户可以通过 Internet 连接并使用基于云的应用。 它提供了一个完整的软件解决方案,可以以“即用即付”的方式从云服务提供商那里购买。 常见的示例包括电子邮件、日历和办公工具(如 Microsoft 365 Office 应用)。 为组织租用应用,组织用户即可通过 Internet 连接到该应用(通常使用 Web 浏览器)。 所有底层基础结构、中间件、应用软件和应用数据都位于服务提供商的数据中心。 服务提供商负责管理硬件和软件,并通过适当的服务协议确保游戏和数据的可用性和安全性。 SaaS 使组织能够以最低的前期费用快速启动并运行应用。
利用 Azure 设计游戏基础结构
下面是可以对游戏使用 Azure 云产品/服务的一些方法。 Azure 适用于 Windows、Linux 和常用的开放源代码技术,例如 Ruby、Python、Java 和 PHP。 有关更多信息,请参阅面向游戏的 Azure。
要求 | 活动场景 | 产品/服务 | 产品功能 |
---|---|---|---|
在云端托管域 | 高效地响应 DNS 查询 | Azure DNS | 托管具有高性能和可用性的域 |
登录、身份验证 | 对玩家登录和玩家身份进行身份验证 | Azure Active Directory | 利用多重身份验证功能登录到云端和本地的任何 Web 应用程序 |
使用基础结构即服务 (IaaS) 模式的游戏 | 游戏托管在云端的虚拟机上 | Azure VM | 利用内置的虚拟网络和负载平衡功能,可以将虚拟机实例的数量从一个缩放到数千个并将它们用作游戏服务器,还可以利用本地系统实现混合一致性 |
使用平台即服务 (PaaS) 模式的 Web 游戏或移动游戏 | 游戏托管在托管式平台上 | Azure 应用服务 | 适用于网站或移动游戏的 PaaS(意味着具有中间件/开发工具/BI/DB 管理功能的 Azure VM) |
可用性高的可缩放型 n 层云游戏,并且可以更好地控制操作系统 (PaaS) | 游戏托管在托管式平台上 | Azure 云服务 | PaaS 支持可扩展、可靠、运营成本低的应用程序 |
跨区域负载平衡功能可以提高性能和可用性 | 路由传入的游戏请求。 可以充当第一级的负载平衡。 | Azure 流量管理器 | 提供多种自动故障转移方案,并能够平均分配流量或使用加权值进行分配。 无缝整合本地系统和云系统。 |
在云端存储游戏数据 | 将最新的游戏数据存储在云端,并发送给客户端设备 | Azure Blob 存储 | 对可存储的文件类型没有限制;面向大量非结构化数据(例如图像、音频、视频等等)的对象存储。 |
临时数据存储表 | 将游戏事务(游戏状态的变化)暂时存储在表中 | Azure 表存储 | 根据游戏的需求,可以使用灵活的架构存储游戏数据 |
将游戏事务/请求排队 | 以队列的形式处理游戏事务 | Azure 队列存储 | 队列可吸收意外的流量突增,并防止服务器由于游戏期间的请求突然猛增而阻塞 |
可缩放的游戏关系数据库 | 以结构化方式将关系数据(例如游戏中的事务)存储到数据库 | Azure SQL 数据库 | SQL 数据库即服务(与 VM 上的 SQL 进行比较) |
可缩放的分布式低延迟游戏数据库 | 利用架构灵活性快速读取、写入和查询游戏和玩家的数据 | Azure Cosmos DB | 低延迟的 NoSQL 文档数据库即服务 |
将自己的数据中心与 Azure 服务配合使用 | 从你自己的数据中心取回游戏,并将其发送给客户端设备 | Azure Stack | 使你的组织能够从自己的数据中心提供 Azure 服务,以帮助实现更多目标 |
传输大型数据区块 | 可以利用 Azure CDN 从最近的内容分发网络 (CDN) 弹出位置向用户发送大型文件,例如游戏图像、音频和视频 | Azure 内容分发网络 | Azure CDN 基于大型集中式节点的现代网络拓扑而构建,可处理流量突增和繁重负载,以大幅提高速度和可用性,从而显著改善用户体验 |
低延迟 | 进行缓存,以打造速度快、可缩放、更易于控制并且保证隔离数据的游戏;还可以用来改进游戏匹配功能。 | Azure Redis 缓存 | 进行高吞吐量、一致的低延迟数据访问,为可缩放的快速 Azure 应用程序助力 |
高可伸缩性和低延迟 | 处理具有低延迟读取和写入操作的游戏用户数的波动 | Azure Service Fabric | 能够支持最复杂、低延迟、数据密集型的场景,并可靠地进行缩放,以便一次处理更多用户。 使用 Service Fabric,无需创建无状态应用程序所需的单独存储或缓存,即可构建游戏 |
每秒能够从设备中收集数百万个事件 | 每秒从设备中记录数百万个事件 | Azure 事件中心 | 从游戏、网站、应用程序和设备中执行云规模的遥测引入 |
实时处理游戏数据 | 对玩家数据执行实时分析,以改善游戏体验 | Azure 流分析 | 云中的实时流式处理 |
开发预测性游戏体验 | 基于玩家数据打造自定义的动态游戏体验 | Azure 机器学习 | 一个完全托管的云服务,让你可以轻松构建、部署和分享预测分析解决方案 |
收集和分析游戏数据 | 大规模并行处理来自关系数据库和非关系数据库的数据 | Azure 数据仓库 | 具有企业级功能的弹性数据仓库即服务 |
吸引用户,以增加使用量和提高保留率 | 从任何后端向任何平台发送目标推送通知,以激发兴趣和鼓励执行特定的游戏操作 | Azure 通知中心 | 快速推送广播可在所有主流平台上覆盖数百万移动设备 — 例如 iOS、Android、Windows、Kindle、百度。 可以在任何后端上托管你的游戏 — 例如云或本地。 |
将媒体内容流式传输到本地和全球的受众,同时保护内容 | 可以从所有设备上观看广播级游戏预告片和电影化剪辑 | Azure 媒体服务 | 利用集成的内容交付网络功能,执行按需和实时视频流式处理。 只需使用一个播放器即可满足所有播放需求,包括内容保护和加密。 |
开发、分发移动应用并对其进行 beta 测试 | 测试和分发移动应用程序。 应用程序性能和用户体验管理。 | HockeyApp | 利用应用程序分发和用户反馈平台,整合崩溃报告和用户指标。 支持 Android、Cordova、iOS、OS X、Unity、Windows 和 Xamarin 应用程序。 此外,请考虑使用 Visual Studio Mobile Center — 这是兼具大量分析、崩溃报告、推送通知、应用分发等功能的应用任务控制中心。 |
创建市场营销活动,以增加使用量和提高保留率 | 向目标玩家发送推送通知,以根据数据分析结果激发兴趣和鼓励执行特定的游戏操作 | 移动用户参与策略 - 将于 2018 年 3 月停用,目前仅供现有的客户使用 | 在所有的主要平台(iOS、Android、Windows、Windows 手机)上增加游戏时间和提高用户保留率 |
面向初创企业和开发人员的资源
-
Microsoft for Startups 提供了产品、技术和上市优势,以帮助加速初创企业的成长。 权益之一是可以获得一个 Azure 免费帐户。 你将获得 200 美元的额度,可以在 30 天内探索服务、享受 12 个月的免费热门服务以及超过 25 项永久免费服务。 有关更多信息,请参阅使用 Azure 免费帐户将初创企业的想法变成现实。
-
Microsoft 提供多个开发人员计划,如 ID@Xbox 和 Xbox Live 创意者计划,可以帮助你开发和发布游戏。
学习资源
- //版本 2016:CodeLabs — 使用 Microsoft Azure App Service 和 Microsoft SQL Azure 后端在 Unity 中保存游戏分数
- //内部版本 2017:使用 Microsoft Azure 提供世界一流的游戏体验:从《Halo》、《Hitman》和《Walking Dead》等游戏中吸取的经验教训(视频)
- 可重复使用的一组构建基块、项目、服务和最佳实践,以使用 GitHub 上的 Azure 支持常见的游戏工作负载:Azure 上的游戏构建基块
- Azure 上的游戏服务(视频)
工具和其他的有用链接
面向游戏后端的软件即服务
Azure PlayFab 目前支持超过 1,200 款实时游戏,每月活跃玩家数量超过 8000 万名。 它是一个完整的后端平台,包含具有实时控制功能的全堆栈 LiveOps。
可以使用 SDK 将此解决方案集成到移动、电脑或主机平台上的游戏中。 有些 SDK 适用于所有受欢迎的游戏引擎和平台,包括 Android、iOS、Unreal、Unity 和 Windows。
它提供了身份验证、玩家数据管理、多人游戏和实时分析等游戏服务,以帮助游戏扩大用户群。 利用实时数据管道和 LiveOps 的强大功能,通过自定义的游戏内项目、活动和促销吸引用户。 还能够执行 A/B 测试、生成报告、发送推送通知等操作。
我们会不断创新并添加新的功能。 有关更多信息,请参阅 Azure PlayFab;有关定价的信息,请参阅定价。