使用 PlayFab 的多人游戏

多人游戏是对许多游戏的一个很好的补充,PlayFab 提供了多种专注于多人游戏场景的服务:

服务 说明
排行榜 使用统计信息和白板跟踪和响应播放器活动。
实体组 创建永久或临时的播放器和信号活动组。
大厅 创建大厅,用于在游戏前或匹配后协调各组之间的游戏。
匹配 快速向分组参与者部署自定义匹配规则
相关方 通过网络和可访问的游戏聊天连接播放器
Servers 在 Azure 中动态扩展自定义多人游戏服务器

标题可结合使用所有这些服务,但也可单独使用,这十分常见。 例如,标题可能使用 PlayFab matching,但从备用服务器托管解决方案分配服务器。 或者游戏可能使用 PlayFab 服务器进行托管,但使用其自己的匹配系统将播放器汇集在一起。

现在,游戏正在构建 跨网络 体验,参与者从不同的标识域(例如,Xbox Live 播放器与与自定义身份系统交互的项交互)相互交互。 PlayFab 的服务旨在支持跨进度和跨网络播放。

示例应用方案

PlayFab 旨在支持各种设置模式。 下面列出了可能会集成到单个相当复杂的标题中的模式。 本节将简要介绍如何使用 PlayFab 服务实现这些体验。

游戏模式 最大参与者数 排行榜 匹配 回填 邀请好友 未请求的联接正在进行 聊天 服务器模型
单人战役游戏 1
市场活动 4 P2P
规则参与方 8 P2P
小型小型会议 8 P2P
轻松大型会议 32 云服务器
竞争规模较小的会议 8 云服务器
竞争规模巨大的会议 32 云服务器

操作台和玩家数据

游戏内白板可用于:

  1. 存储玩家结果以触发游戏内奖励和其他游戏行为
  2. 将玩家结果存储和排名作为匹配输入
  3. 创建游戏内排名体验,用户可以在其中浏览排行榜并了解他们的比较表现

排行榜可以增强单人游戏和多人游戏模式。 例如,活动排行榜可能会跟踪玩家收集的特殊物品的数量,而多人排行榜可能会跟踪玩家对玩家的竞争胜利。 PlayFab 排行榜旨在为这些体验提供动力,跟踪玩家统计数据并使用该统计数据对玩家进行排名。

如果玩家结果不需要与其他玩家广泛共享,则与玩家关联的 PlayFab 实体数据可能更适合存储此数据。 PlayFab 的实体系统的一个好处是能够跨多个帐户跟踪玩家活动和其他数据的跨网络进展。 对 PlayFab 排行榜和数据的更改都会触发可触发自定义 CloudScript 的 PlayStream 事件。 通过此功能,可实时对玩家活动进行高度自定义。

适用的服务:

规则参与方和未请求加入的各方

参与者通常想要在适当的游戏播放外部合力,而你的标题通过游戏游戏或聚会体验支持这一点。 设计 PlayFab 实体组和 PlayFab Party 时已经设计好这些方案。

可以将"PlayFab 实体"组用于:

  1. 与参与者共享其关注者的状态
  2. 创建长期存在的公会(数月或数天)的玩家
  3. 玩家创建的派对是短暂的(小时或更短)

PlayFab 实体组具有内置流,用于控制从组领导请求组访问的访问和玩家。 组可与任意文件数据相关联,因此可允许玩家共享邮件或将其他持久内容发布至共享空间。

虽然您可以使用实体组进行信号传输和其他慢速数据共享,但 PlayFab 群最适合实时数据传输和聊天。 PlayFab 实体组的常见用法将涉及玩家将 PlayFab Party 网络描述符或 PlayFab 多人服务器会话详细信息存储到组的数据存储。 此会话信息共享允许参与者未请求加入好友的会话。 如果使用非 PlayFab 服务进行实时通信或游戏托管,这些系统通常具有识别信息,可在使用实体组向参与者发送类似信号。

PlayFab 实体组没有让参与者收到实体对象更改通知的推送通知系统,并需要轮询服务以持续更新。 平台可能会提供内置的邀请和状态系统,用于启动祝酒和其他有益的体验(从玩家个人资料卡加入),如果适用,您应该考虑集成。

匹配和回填充

参与者可能想要与不认识的新人一起播放,而平衡的匿名匹配体验是许多游戏的核心。 PlayFab Matchmaking 旨在使用您自定义的规则快速将玩家聚集在一起。

当一个玩家或一组玩家想要一起玩时,一个玩家为自己或整个团队创建匹配票。 借助 PlayFab Match如果用户作为一个团队进行匹配,则允许提交用户,并创建一个联接流,确保组内的所有参与者同意进行匹配。 该服务还允许回填门票,可用于替换在游戏中途离开的玩家。 加入进行中和回填充功能是使轻松游戏会话尽可能完整的有用的机制。

PlayFab Match则与 PlayFab 用户服务器集成,可简化已完成票证的服务器分配和改进匹配安全性。 此外,PlayFab Match< 匹配票证会触发 CloudScript 的 PlayStream 事件,这有助于将匹配对象与您自己的服务器系统集成。

聊天

PlayFab Party 用于向最多 32 名参与者的社交或游戏体验添加实时语音和文本聊天。 PlayFab Party 允许玩家同时出现在多个网络中,并为每个网络定制静音规则。 这可提供实现频道和复杂聊天关系的灵活性。

Party 利用 Azure 认证服务转录玩家语音聊天以及将文本合成为语音。 此功能具有多种用途,但是主要设计为辅助功能助手。 Party不仅可以转录玩家聊天内容,还可以实时翻译聊天内容。 在匿名匹配和国际竞争性游戏中,这些转录和翻译功能有助于营造更具吸引力的多人游戏体验。

游戏托管

实时多人游戏通常选择特定的玩家设备来托管游戏状态(也称为“点对点”)或使用专用的多人服务器。 如果在播放器设备上托管游戏,PlayFab Party 是理想的低延迟设备到设备网络系统,可在会话参与者之间同步此游戏状态。

当设备数量增加时,很难扩展对等游戏。 虽然 PlayFab Party 提供网络加密并使用中继来保护玩家 IP 地址,但让设备作为主机运行仍然为作弊开辟了道路。

PlayFab 用户服务器提供简单、高效的跨 Azure 全局云的扩展。 使用小型服务器,例如在 F2v2 Linux 虚拟机上加载 10 个会话,每个会话 10 个玩家,与 P2P 实现相比,可以有效且显着地简化您的多人游戏设计并提高其可靠性。 可以通过设置服务器的构建配置为会话分配更多 Azure 资源来实现复杂的多人游戏计算,可能使用 8 个或更多内核以获得 200 个玩家的体验。