Google Play 游戏服务质量核对清单

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

本文档可帮助您重点关注对游戏成功可能产生重大影响的质量、功能集和界面关键方面。每个重点领域都附带了最低要求、最佳实践和“最好有”增强功能的核对清单。为了向玩家提供尽可能最好的产品,请尽可能遵循核对清单中的建议。

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() 来显示用户可以与另一个玩家的个人资料进行比较的界面。
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 游戏应用或默认的“保存的游戏”选择界面中进行选择时,加载正确的保存游戏。