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 中进行选择时,加载正确的存档游戏。