平台身份验证

将游戏与 Google Play 游戏服务 (PGS) 集成的第一步是实现平台身份验证。这是访问所有其他功能(例如成就、排行榜和活动)所必需的步骤。

由于 Play 游戏服务 SDK 会在游戏启动时自动执行平台身份验证,因此您需要将 PGS v2 SDK 与游戏集成,并实现推荐的身份验证流程,以便您的游戏能够实现并满足 Google Play 游戏 Level Up 用户体验指南的要求。

身份验证概念

在 Play 游戏服务 v2 中,“登录”的概念分为两个不同的层:平台身份验证游戏内身份验证

平台身份验证

Play 游戏服务提供了一个平台互动层。它使用 玩家资料管理玩家与 Google Play 游戏生态系统的关系,以访问成就、排行榜和任务等功能。平台身份验证具有以下主要特征:

  • 静默且自动 :身份验证会在游戏启动时在后台自动进行。Play 游戏服务不需要手动登录 按钮。
  • 玩家 ID :平台身份验证成功后,Play 游戏服务会提供稳定的玩家 ID 。对于同一款游戏,此 ID 在不同设备上是一致的。主要使用此 ID 来跟踪平台功能,例如成就进度。
  • 解耦 :您不得将 Play 游戏服务用作游戏的主要身份系统来管理玩家的游戏内账号 (IGA)、游戏进度或库存。Play 游戏服务充当持久性平台标识符。

玩家 ID

玩家 ID 是 Play 游戏服务玩家账号的标识符。您的游戏可以检索使用 Play 游戏服务身份验证登录游戏的任何玩家的玩家 ID。您的游戏客户端集成游戏服务器集成云端存档服务可以使用玩家 ID 安全地访问 Play 游戏服务中的玩家数据。

当用户在多个设备上玩同一款游戏时,玩家 ID 是一致的。不过,在不同游戏之间,玩家 ID 并不总是保持一致。 如需了解详情,请参阅新一代玩家 ID

游戏内身份验证

您需要管理游戏内账号 (IGA),这是将玩家进度、库存和游戏内货币绑定到一起的身份系统。

  • 主要身份 :您可以使用自己的后端、“使用 Google 账号登录”(SiWG) 或其他提供方作为主要登录方法。
  • 独立性 :玩家可以登录 Play 游戏服务(平台身份),以在登录任何特定 IGA(例如访客账号或特定 SiWG 账号)时赚取成就。
  • 管理多个 IGA :Play 游戏服务仅处理平台身份验证。您的游戏负责管理玩家登录其 IGA 的主要身份验证。这意味着,玩家在 IGA 之间切换时,游戏现有的流程不会发生任何变化。当玩家切换账号时,他们仍通过 PGS 登录 Play 游戏平台,您会继续根据持久性玩家 ID 发送与成就和其他 PGS 功能相关的数据。

使用 SiWG 实现跨平台连续性

为了帮助玩家在 Android、iOS 和 Web 上同步游戏进度,请使用使用 Google 登录 作为主要的游戏内身份验证方法。请考虑以下事项:

  • 使用 Google 账号登录按钮 :在 PGS v1 中,Google Play 按钮通常同时处理平台登录和游戏登录。在 v2 中,这些是单独的流程。 实现标准的使用 Google 账号登录 按钮,供玩家进行身份验证并访问其 IGA。
  • Google 登录 SDK
    • 对于 Android 和 iOS,请使用标准的 Google 登录 SDK 对玩家进行身份验证,以登录其 IGA。
    • 使用 Google Open ID 作为玩家游戏内账号的主要标识符。
    • 使用 Play 游戏服务玩家 ID 报告玩家在 Play 游戏功能(例如成就)方面的进度。

推荐的集成

如需将游戏与 Play 游戏服务集成,请按照以下推荐步骤操作:

初始化和身份验证

您需要执行此步骤来初始化游戏并进行身份验证:

通过在启动时初始化 Play 游戏服务 v2 SDK 来实现平台身份验证。如需了解详情,请参阅 适用于 Android 游戏的平台身份验证机制。 您需要执行此步骤才能访问 Play 游戏服务功能,例如成就和排行榜。

身份验证在游戏启动期间作为静默后台进程运行。现有 Play 游戏服务用户在身份验证成功后会看到欢迎消息。系统会在 SDK 初始化期间提示没有 Play 游戏服务玩家资料的用户 创建玩家资料

自动登录提示

创建玩家资料

玩家需要 Play 游戏服务玩家资料才能与平台互动。有些玩家在启动游戏时可能没有 Play 游戏服务玩家资料。 系统会要求这些玩家创建玩家资料。 您可以选择以下选项之一,为用户提供合适的体验:

自动触发的玩家资料创建提示

默认情况下,当您启动没有 Play 游戏服务玩家资料的游戏时,系统会自动显示自动触发的玩家资料创建提示。

启动游戏时,系统会显示个人资料创建提示。
启动游戏时显示的玩家资料创建提示(点击可放大)。

停止自动触发的玩家资料创建提示

通过配置清单文件来停用启动时的玩家资料提示,以防止自动触发提示。这样,没有 Play 游戏服务玩家资料的用户就可以继续加载游戏,而不会收到创建 Play 游戏服务玩家资料的提示。

虽然用户可以使用任何身份提供方登录,但您应显示玩家资料创建提示,以鼓励他们使用 Play 游戏平台身份验证进行身份验证。您可以根据需要显示此提示,但请确保在用户在成就和排行榜等功能中取得重大进展之前显示此提示。

请考虑在以下推荐时刻触发玩家资料提示:

  • 完成教程后。
  • 在获得奖励时(例如赢得比赛、收集稀有物品或达到里程碑)。
  • 在启动第二个会话时。

如需了解详情,请参阅阻止自动触发的玩家资料创建(Java)阻止自动触发的玩家资料创建(Unity)

游戏内身份验证

成功执行平台身份验证后,开发者应执行以下步骤,让玩家能够访问其 IGA,具体取决于当前游戏状态:

  1. 如果设备上存在活跃的游戏会话,请允许玩家恢复当前会话。
  2. 如果没有活跃的游戏会话:
    1. 无缝恢复场景中,如果上次玩过的 IGA 与 PGS 玩家 ID 相关联,请继续自动恢复关联的 IGA。
    2. 否则,请向玩家显示应用的指定登录界面或账号创建界面。然后,玩家可以选择自己偏好的身份验证方法来创建或登录现有 IGA。

OAuth 范围

Play 游戏服务依赖 OAuth 系统 来允许玩家授权您的游戏访问他们的账号。Play 游戏服务针对游戏提供唯一范围 (games-lite),如果您的游戏使用游戏存档功能,将依赖另一个范围 (drive.appdata)。通过游戏存档功能,您可以访问用户的 Google 云端硬盘账号,游戏数据便存储在此处。

使用 Play 游戏服务 v2 SDK 时,您可以请求额外的 OAuth 范围。 如果您需要额外的 OAuth 范围,我们建议您调用 requestServerSideAccess。 如需了解详情,请参阅 获取服务器授权代码检索服务器身份验证代码

理想身份验证流程的用户体验指南

以下指南介绍了集成 PGS v2 时推荐的身份验证流程。这些指南涵盖了新用户、现有用户、回访用户和访客模式的场景。

新玩家

此流程适用于首次在设备上启动游戏的用户,该设备之前没有该游戏的游玩记录。

  1. 启动后,PGS SDK 会初始化以验证用户的平台身份(PGS 玩家 ID)。
  2. 在此后台握手之后,游戏会向玩家显示 IGA 创建选项,例如创建新账号使用 Google 账号登录或其他社交登录方法。
  3. 玩家创建或选择 IGA 后,游戏会将此账号绑定到其后端中选择的主要标识符。
  4. 游戏还会将此选定的 IGA 绑定到 PGS 玩家 ID,将其标记为 上次玩过的 IGA,以便进行无缝恢复
已登录 PGS 玩家资料的新玩家
已登录 PGS 玩家资料的新玩家(点击可放大)。
没有 PGS 玩家资料的新玩家
没有 PGS 玩家资料的新玩家(点击可放大)。
已登录 PGS 玩家资料的新玩家
已登录 PGS 玩家资料的新玩家(点击可放大)。

有活跃会话的玩家

此场景描述的是玩家在已有活跃会话的设备上启动游戏。目标是提供顺畅的进入体验。

  1. 当玩家启动应用时,PGS 会在后台静默进行身份验证,并向您提供玩家 ID,以便您跟踪成就和其他 Play 游戏功能的进度。
  2. 同时,在适用的情况下,游戏会绕过登录界面,并立即让玩家登录其活跃的 IGA 会话或与其玩家 ID 关联的上次玩过的 IGA,以便他们可以立即恢复游戏。
在同一设备上启动游戏,并登录 PGS 玩家资料
在同一设备上启动游戏,且已登录 PGS 玩家资料(点击可放大)。
在同一设备上启动游戏,但 PGS 玩家资料已退出登录
在同一设备上启动游戏,且已退出 PGS 玩家资料(点击可放大)。
在同一设备上启动没有 PGS 玩家资料的游戏
在同一设备上启动游戏,且没有 PGS 玩家资料(点击可放大)。
在新设备上启动游戏,并使用已登录的 PGS 玩家资料和已关联的 IGA
在新设备上启动游戏,且已登录 PGS 玩家资料并关联了 IGA(点击可放大)。
在新设备上启动游戏,但登录的 PGS 玩家资料未关联 IGA
在新设备上启动游戏,且已登录 PGS 玩家资料但未关联 IGA(点击可放大)。
在新设备上启动游戏,但 PGS 个人资料处于已退出账号状态
在新设备上启动游戏,且已退出 PGS 玩家资料(点击可放大)。
在新设备上启动游戏,但没有 PGS 玩家资料
在新设备上启动游戏,且没有 PGS 玩家资料(点击可放大)。

切换账号的玩家

当有活跃会话的玩家前往游戏设置以切换账号时,会发生此流程。 例如,退出主账号以使用备用账号。

  1. 玩家退出当前的 IGA,但 PGS 平台连接仍处于活跃状态。
  2. 当玩家使用其他 IGA 登录时,游戏会将此新账号绑定到当前的 PGS 玩家 ID,仅作为上次玩过的 IGA,以便进行无缝恢复。
切换到未与任何 PGS 玩家资料绑定的 IGA
切换到未与任何 PGS 玩家资料绑定的 IGA(点击可放大)。
切换到与同一已登录 PGS 玩家资料绑定的 IGA
切换到与同一已登录 PGS 玩家资料绑定的 IGA(点击可放大)。
切换到与不同 PGS 玩家资料绑定的 IGA
切换到与不同 PGS 玩家资料绑定的 IGA(点击可放大)。
在设备上切换没有 PGS 玩家资料的 IGA
切换 IGA,设备上没有 PGS 玩家资料(点击可放大)。
切换 IGA(在 PGS 玩家资料处于未登录状态时)
切换 IGA,且已退出 PGS 玩家资料(点击可放大)。
切换到不存在的 IGA
切换到不存在的 IGA(点击可放大)。

回访玩家的无缝恢复

此场景适用于玩家在非活跃一段时间后、重新安装游戏后或在全新设备上启动游戏。建议游戏 实现无缝恢复

  1. 启动后,PGS 会对用户进行身份验证,并向游戏提供 PGS 玩家 ID。
  2. 游戏会检查其后端(或在使用 Recall API 时检索到的 Recall 令牌),以查看上次玩过的 IGA 是否已与此 PGS ID 相关联。
  3. 如果找到关联,游戏会自动恢复玩家的进度并让玩家登录,完全跳过手动登录界面。
  4. 否则,游戏会向玩家显示登录界面
    1. 然后,玩家选择登录方法并登录 IGA
    2. 然后,游戏会将此 IGA 与 PGS 玩家 ID 绑定,作为上次玩过的 IGA,以便进行无缝恢复。
已退出 PGS 玩家资料的回归玩家
回访玩家,且已退出 PGS 玩家资料(点击可放大)。
已登录 PGS 玩家资料并关联了 IGA 的回访玩家
回访玩家,且已登录 PGS 玩家资料并关联了 IGA(点击可放大)。
已登录 PGS 玩家资料但未关联 IGA 的回流玩家
回访玩家,且已登录 PGS 玩家资料但未关联 IGA(点击可放大)。
没有 PGS 玩家资料的回归玩家
回访玩家,且没有 PGS 玩家资料(点击可放大)。

访客模式

玩家可以使用本地访客账号启动游戏并畅玩。 Play 游戏服务仍会在后台对玩家进行身份验证。如果 玩家选择 保存进度,游戏会将访客会话转换为 永久 IGA,并将其绑定到玩家 ID。如需详细了解冲突 解决,请参阅访客账号

访客模式 - 未创建 IGA
访客模式 - 未创建 IGA(点击可放大)。
访客模式 - IGA 已创建
访客模式 - 已创建 IGA(点击可放大)。