Google Play 游戏服务的质量检查清单

游戏的质量会影响游戏的长期成功——包括安装量、玩家评分和评论、参与度和玩家留存率。在发布游戏之前,务必确保游戏通过引人入胜的功能和直观、设计良好的 UI 满足游戏玩家的基本期望。

本文档可帮助您专注于质量、功能集和 UI 的关键方面,这些方面可能会对游戏的成功产生重大影响。每个重点领域都提供了一个包含最低要求、最佳实践和良好增强功能的清单。为了向玩家提供尽可能好的产品,请尽可能遵循清单建议。

1. 登录

以下清单任务适用于在游戏中实施玩家登录功能。详细了解登录的工作原理以及应如何在登录概念中实施登录。有关如何在手机游戏中实施登录的代码示例,请参阅在 Android 上实施登录

ID 重要性 描述
1.1 必填 使用 Google Play 游戏服务登录玩家。
1.1.1. 在游戏启动时自动登录玩家;使用手动登录作为备份

自动登录将使玩家能够快速进行身份验证和授权,以使用 Google Play 游戏服务提供的所有功能。

如果用户拒绝,您的应用应提供以后登录的机会(例如,在游戏菜单中使用按钮等)。登录按钮应易于玩家找到;例如,它应该可以从主屏幕访问,或者位于“设置”屏幕中。此按钮不应隐藏在游戏菜单的多个级别深处。

1.2 良好功能 遵循 Google 品牌指南。

为了向玩家提供有吸引力且一致的端到端体验,请实施Google Play 游戏服务品牌指南

1.3 良好功能 提醒玩家他们已登录。

当游戏代表玩家执行某些操作时,请向已登录的玩家提供适当的提醒或提示。例如,当已登录的玩家完成一个关卡时,您可以提供以下消息以指示玩家的分数和成就正在自动上传:“您已使用 Google 登录。您的成就和分数将自动保存。”

1.4 必填 使用 Play 游戏服务 ID 备份玩家进度。

为确保玩家在切换或重置设备或在多台设备上玩游戏时不会丢失进度,请确保他们的进度已备份到云保存解决方案,并使用 Play 游戏服务 ID 作为密钥,安全地(如果使用您自己的后端游戏服务器)。当玩家使用其 Play 游戏服务 ID 登录时,请检查该帐户是否存在进度,如果存在,则允许玩家从上次离开的地方继续。您可以使用您自己的云保存解决方案或 Play 游戏服务的已保存游戏。

如果用户未登录,请尝试在本地维护玩家的进度,然后在玩家最终登录时同步该进度。这有助于防止在玩家推迟登录游戏时丢失任何玩家的进度。

2. 成就

以下清单任务适用于在游戏中实施成就功能。

ID 重要性 描述
2.1 必填 确保所有成就都可以获得。

玩家必须能够解锁您创建的所有成就。

2.2 最佳实践 使成就独一无二。

所有图像、文本和描述在各个成就中都应唯一。

2.3 最佳实践 成比例地评分成就。

成就点数应与获得该成就所需的时间或技能成正比。

2.4 最佳实践 为各种难度级别设计成就。

包括一些简单的成就,玩家可以通过休闲游戏玩法获得,一些需要更多技能或玩家投入才能获得的中等难度成就,以及一两个非常困难的成就,供最专注的玩家获得。

例如,以下屏幕截图显示了一个难以获得的成就,有助于激励和留住游戏的粉丝。

hard to earn achievement that requires earning 5K gems
2.5 良好功能 不要预先加载成就。

避免在游戏前 5 分钟内奖励多个成就,因为刚接触您游戏的玩家不会有足够的投入来关心。

不要定义您的成就,使其在游戏早期无意中过早授予。例如,注意那些可能在游戏开始时轻松获得的成就,例如“在不受到伤害的情况下完成一个关卡”

2.6 良好功能 围绕引人入胜的游戏内活动定义成就。

选择指标来构建使您的游戏更具吸引力和可重复游玩的成就(例如,“杀死的僵尸数量”“角色行走的英里数”更有趣的指标)。

2.7 良好功能 使用彩色成就图标。

Play 游戏服务使用成就图标的灰度版本来显示它们是已获得还是未获得。如果您只能使用全黑(或全白)成就图标,请在彩色背景上显示它们。

2.8 良好功能 最大限度地减少隐藏成就的使用。

隐藏成就仅应用于避免游戏剧透;它们不应该是常态。

2.9 良好功能 避免过于依赖机会的成就。

“找到 100 个宝箱”“找到一个在宝箱中出现的几率为 1% 的物品”更好的成就。

2.10 良好功能 像“成就猎手”一样思考。

一些玩家会尝试获得您创建的每个成就。尝试提供迎合此类玩家的成就。避免创建过于依赖玩家控制范围之外的元素或在玩家在游戏中做出决定后无法获得的成就。

2.11 良好功能 确保您的成就图标正确显示。

当成就图标显示在 Android Toast 中时,图标会被一个圆圈覆盖,并且其外部角会被隐藏。请确保您的图标在这种情况下仍然看起来不错。

3. 排行榜

以下清单任务适用于在您的游戏中实施 排行榜 功能。

ID 重要性 描述
3.1 最佳实践 在主菜单和关键过渡后显示排行榜。

排行榜应该在游戏加载时易于访问。在游戏中的关键过渡之后(例如,在关卡结束时或玩家死亡时),玩家应该立即看到相关排行榜的链接。

3.2 最佳实践 定义可以提交的分数上限。

如果可能,在定义排行榜时添加限制,以便丢弃明显虚假的分数。

3.3 最佳实践 使用自定义图标。

为每个定义的排行榜创建一个自定义图标;不要只使用游戏图标,因为它在 Google Play 游戏应用中显示效果不佳。

3.4 最佳实践 保持分数提交频率的合理性。

在游戏的关键过渡之后提交分数,例如在关卡结束时或玩家游戏角色死亡时。对于没有关键过渡的游戏(例如,“无尽跑酷”类型游戏),请根据实际情况判断提交分数的频率。分数不应连续提交或每秒提交。

3.5 良好功能 利用分数标签。

分数标签是可以与分数提交一起发送的额外数据。例如,您可以将分数标签实现为一个标志,以确认玩家提交的分数有效。

自定义排行榜也可以读取此标签数据。例如,如果分数标签包含包含该玩家游戏玩法的 YouTube 视频的 ID,则您的游戏可以在排行榜中创建查看该视频的链接。

3.6 良好功能 创造性地设计您自己的排行榜 UI

如果您有资源,可以在社交排行榜数据的基础上构建您自己的自定义排行榜视图。社交排行榜通常比公开排行榜创造更具吸引力的体验。首先检查社交排行榜中是否有任何条目。如果没有,请使用公开排行榜。

3.7 良好功能 向玩家展示他们在竞争中的排名。

排行榜 API 支持显示分数窗口(例如,玩家在 +/-10 个位置内的排名)。如果您正在创建自定义视图,这可以成为激励参与的强大方法。这可以在游戏中的关键过渡之后显示(例如,在关卡结束时或玩家游戏角色死亡时)。避免在玩家和他们的排名信息之间放置不必要的点击操作。

4. 好友

以下清单任务适用于在您的游戏中实施 好友服务

ID 重要性 描述
4.1 必填 当玩家显示在列表中时,在具有 Play 游戏资料的用户旁边显示 Play 游戏服务图标。

此列表可以是现有的好友列表、最近玩过的好友列表或其他好友列表。

4.1.1. Play 游戏服务图标必须是可点击的。
如果用户按下图标,游戏应该调用 getCompareProfileIntent()getCompareProfileIntentWithAlternativeNameHints() 以显示用户可以在其中将自己与其他玩家的资料进行比较的 UI。
4.1.2. 玩家资料和好友邀请支持自定义的游戏内玩家名称。
如果玩家在游戏中设置了不同的名称(并且未使用其 Play 游戏资料名称),请使用 getCompareProfileIntentWithAlternativeNameHints() 为当前玩家和他们正在查看的玩家提供该替代的游戏内名称,作为资料视图和从中发送的任何好友邀请的上下文。仅为值传递持久、全局的玩家名称,而不是任意用户内容。此要求意味着从游戏中发送的好友邀请将为双方玩家提供上下文
  • 收件人将看到邀请发送者的游戏内名称以及游戏名称。
  • 查看友谊时,发送者仍将看到收件人的游戏内名称以及他们从中发起的游戏。
4.2 最佳实践 使用不同的图标来显示哪些 Play 游戏用户已经是好友,哪些还不是 Play 游戏好友但已使用 Play 游戏登录。为 Play 游戏用户使用两个图标,一个用于“好友”,一个用于“非好友”(或友谊状态未知时)。
好友图标
非好友图标
4.3 最佳实践 每次登录并显示好友列表时都调用 loadFriends() 以确保好友列表是最新的。确保玩家看到更新后的列表。
4.4 最佳实践 如果您的游戏已经包含游戏内好友,请使用好友服务通过添加 Play 游戏好友来增加好友列表。如果玩家在游戏内好友列表中,并且他们也是 Play 游戏好友,则显示“好友”图标。
4.5 最佳实践 如果玩家拒绝了访问其好友列表的请求,除非用户采取了表示他们想要授予访问权限的操作(例如,按下“导入 Play 游戏好友”按钮),否则不要再次显示请求访问权限的对话框。
4.6 最佳实践 如果玩家拒绝了访问好友列表的权限,请为他们提供将来授予好友列表访问权限的方法(例如,在按下“导入 Play 游戏好友”按钮后)。
4.7 最佳实践 如果您将玩家 ID 或好友列表与后端服务器一起使用,则必须 安全地 访问 ID 或列表。此外,对于一些旧游戏和玩家,Android SDK 为玩家返回的玩家 ID 可能与其他玩家在同一游戏中查看该玩家时看到的 ID 不相同;这在使用好友列表时尤其相关。但是,在 REST API 中返回的player_id始终一致,并且始终是其他玩家可见的 ID。

5. 配额和速率限制

以下清单任务适用于管理游戏中的配额和速率限制。要了解如何管理游戏的配额以及在超出其速率限制时如何检测,请参阅 管理配额和速率限制

ID 重要性 描述
5.1 最佳实践 使用客户端库。

移动客户端库采用了多种策略来减少您对服务的调用次数。例如,成就和排行榜的数据会被缓存,因此玩家可以随意查看他们的成就,而无需服务进行多次调用。

如果您的分数不如您最近提交的分数,Android 客户端库将不会将玩家的分数发送到服务器。Android 库还会在检测到您受到速率限制时自动合并频繁的成就增量调用。

5.2 良好功能 合并对增量成就的频繁调用。

如果您正在制作格斗游戏,并且您有一个“打 5000 拳”的成就,请不要在每次有人出拳时都发送成就增量调用。等到回合结束,然后发送一个 increment(xxx) 调用(其中 xxx 是该回合出拳的总数),或者等到出拳 50 次后再发送一个 increment(50) 调用。

5.3 良好功能 了解您的使用情况。

注意您对 Google Play 游戏服务的调用次数。即使您避免达到速率限制,频繁的调用也会导致高网络流量,并导致设备的电池更快耗尽。为了避免这种情况,您可以使用以下技术

  • 执行保存的游戏时,请将频率保持在每隔几分钟一次,而不是每次点击按钮时都执行。
  • 等到玩家的游戏结束再提交高分。
  • 通过转到 Google Cloud Platform 中的项目仪表板来查看应用的每日配额。

6. 保存的游戏

以下清单任务适用于在您的游戏中实施 保存的游戏 功能。

ID 重要性 描述
6.1 必填 添加元数据以提供保存游戏的更多上下文。

在提交保存的游戏时,您至少必须包含以下元数据

  • 封面图像 - 捕获游戏进度并提醒玩家他们在何处离开游戏的屏幕截图。
  • 描述 - 提供封面图像更多上下文的简短描述。
  • 时间戳 - 指示玩家玩此保存的游戏的时间长度。
6.2 必填 允许玩家加载保存的游戏。

当玩家从 Play 游戏应用 或默认的保存游戏选择 UI 中进行选择时,加载正确的保存的游戏。