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

游戏质量会影响您的游戏能否在安装量、玩家评分和评价、互动度和玩家留存率等方面取得长期成功。在发布游戏之前,请务必确保您的游戏具有吸引玩家的功能和精心设计的直观界面,以此来满足游戏玩家的基本预期。

本文档将引导您了解游戏开发的关键方面,这些方面会显著影响游戏的成功。它侧重于质量、功能集和界面 (UI)。

对于每个重点领域,本文档都提供了:

  • 详细说明最低要求的清单。
  • 可提升游戏体验的最佳实践。

请尽可能遵循以下建议,以便发布高品质的游戏,并为玩家提供最好的产品。

1. 平台身份验证

以下核对清单任务适用于在您的游戏中实现玩家身份验证功能。如需详细了解身份验证的运作方式以及如何实现身份验证,请参阅平台身份验证。有关如何在移动游戏上实现身份验证的代码示例,请参阅 Android 上的平台身份验证

ID 重要性 说明
1.1 必需 使用 Google Play 游戏服务对玩家进行身份验证。
1.1.1. 初始化 Google Play 游戏服务 SDK 并检查玩家是否已通过身份验证。如果玩家未自动通过身份验证,则提供手动登录选项。

自动身份验证可让玩家快速通过身份验证并有权使用 Google Play 游戏服务提供的全套功能。

如果用户拒绝,您的游戏应为他们提供稍后进行身份验证的机会(例如,在游戏菜单中使用按钮进行身份验证等)。登录按钮应该很容易让玩家找到;例如,应该可以从主屏幕中点击该按钮,或者让该按钮位于“设置”屏幕中。不得将该按钮在您的游戏菜单中深埋多层。

1.2 最佳做法 遵循 Google 品牌推广指南

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

1.3 最佳做法 提醒玩家他们已通过身份验证。

当您的游戏代表已通过身份验证的玩家执行某项操作时,为他们提供适当的提醒或提示。例如,当某个已通过身份验证的玩家完成某个关卡时,您可以提供如下消息来指明系统正在自动上传该玩家的得分和成就:“您已通过 Google 账号完成身份验证。您的成就和得分将会自动保存。”

1.4 强制要求 使用 Play 游戏服务 ID 备份玩家进度

为了确保玩家在切换设备、重置设备或在多个设备上玩游戏时不会丢失游戏进度,请务必将他们的进度备份到云端存档解决方案。如果使用您自己的后端游戏服务器,请安全地将 Play 游戏服务 ID 用作密钥。当玩家使用 Play 游戏服务 ID 进行身份验证时,检查该账号是否存在游戏进度,如果存在,让玩家能够从上次停下的地方继续畅玩。您可以使用自己的云端存档解决方案或 Play 游戏服务游戏存档。

如果用户未通过身份验证,请尝试在本地维护玩家的游戏进度,然后在玩家最终通过身份验证时同步他们的进度。这样有助于防止在玩家推迟对游戏进行身份验证时丢失任何进度。

2. 成就

以下核对清单任务适用于在您的游戏中实现成就功能。

ID 重要性 说明
2.1 必需 至少有 10 项可见成就,分布在游戏的整个生命周期内。

至少有 10 项可见的成就必须处于揭密状态。

2.2 必需 至少有四项成就应能在游戏开始后一小时内合理可靠地达成,且所有玩家都能达成。

2.3 必需 所有成就都应具有唯一的名称和说明。 这些说明应清楚地向用户说明他们需要做什么才能获得成就。

2.4 必需 所有成就都应有唯一的图标。

图标应以 512 x 512 像素的 PNG、JPEG 或 JPG 格式创建,并采用透明背景。如需了解详情,请参阅图标指南

土耳其里拉 必需 确保所有成就均可达成

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

2.6 最佳实践 使用 阶梯式成就来显示进度。

分步成就的进度将在不同游戏会话之间累积。

显示玩家进度达到 23% 的分步成就示例。
显示玩家进度达到 23% 的分步成就。
2.7 最佳实践 至少 40 项或更多成就,贯穿整个游戏生命周期,包括能给玩家带来惊喜和愉悦的成就、认可里程碑的成就,以及记录玩家进度的成就。

至少 40 项处于任何状态的成就,分布在游戏的整个生命周期内。

2.9 最佳实践 使用 隐藏成就来营造惊喜和愉悦感。

隐藏成就是指成就的详细信息将对玩家隐藏。

2.10 最佳实践 在游戏中添加新关卡或剧集时,添加新的成就。

如需了解详情,请参阅积分和经验

2.11 最佳实践 按比例确定成就得分

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

2.12 最佳实践 为成就设计不同的难易程度

建议您设置一些简单的成就(即玩家通过休闲玩法就能达成的成就),多项中等难度的成就(需要玩家使用更多技能或投入更多精力才能达成的成就),以及一两项难度相当高的成就(供投入大量精力的玩家挑战)。

例如,下面的屏幕截图显示了一项很难达成的成就,该成就有助于激励和留住该游戏的粉丝。

很难达成的成就 - 赚取 5K 宝石
很难达成的成就 - 赚取 5K 宝石。
2.13 最佳实践 请勿在前期设置过多成就

尽量不要在游戏过程的前 5 分钟内设置多项成就,因为初次接触您游戏的玩家一般不会投入太多精力。

不要定义您的成就,以免无意地在游戏过程中过早地授予这些成就。例如,要留意在游戏开始时可能很容易获得的成就,例如“在不遭受攻击的情况下完成一关”。

2.14 最佳实践 围绕有吸引力的游戏内活动定义成就

在构建成就时,应选择更能吸引玩家反复玩游戏的指标,例如“杀死的僵尸数量”这个指标要比“角色行走的英里数”更有意思。

2.15 最佳实践 使用彩色成就图标

Play 游戏服务使用灰度版成就图标来显示是否获得了这些成就。如果您只能使用全黑(或全白)成就图标,请为这些图标加上彩色背景。

2.16 最佳实践 尽可能减少使用隐藏成就

隐藏成就只能用于保留游戏中的悬念,而不应普遍使用。

2.17 最佳实践 避免使用过于依赖运气的成就

相对于“寻找一件有 1% 的几率出现在宝箱中的物品”,“找到 100 个宝箱”这项成就更有意义。

2.18 最佳实践 像“成就猎人”一样来构思成就。

有些玩家会尝试获得您创建的每项成就。尽量提供迎合这类玩家需求的成就。请确保这些成就不会过多依赖玩家无法掌控的因素,也不要让玩家在游戏中作出某种决定后便无法获得某些成就。

示例

以下是一些示例,可帮助您设计优质的成就:

正面示例

以下屏幕截图展示了成就的良好示例。具有唯一名称图标说明的成就。说明会告知您需要做什么才能获得相应成就。

具有唯一名称、图标和说明的优秀成就。
具有唯一名称、图标和说明的优质成就(点击可放大)。

错误示例

以下屏幕截图显示了一些不好的成就示例。

名称、图标和说明重复的不良成就。
名称、图标和说明重复的不良成就(点击可放大)。

3. 排行榜

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

ID 重要性 说明
3.1 最佳实践 让排行榜显示在主菜单中以及关键的过渡之后

在加载游戏时应该可以随时访问排行榜。在游戏中的关键过渡(例如,在关卡结束时或玩家角色牺牲时)之后,玩家应立即看到指向相关排行榜的链接。

3.2 最佳实践 设定可提交的得分上限

如有可能,请在定义排行榜时添加限制,以便排除明显虚假的得分。

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

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

3.4 最佳实践 确保按适当的频率提交得分

在游戏中的关键过渡(例如,在关卡结束时或玩家的游戏角色牺牲时)之后提交得分。对于没有关键过渡的游戏(例如,“跑酷”类游戏),请运用合理的判断来决定提交得分的频率。不应连续提交或每秒提交一次得分。

沙特里亚尔 最佳做法 充分利用得分标记

得分标记是可以随提交的得分一起发送的额外数据。例如,您可以将得分标记作为普通标记来实现,以确认玩家提交的得分是否有效。

自定义排行榜也可以读取此标记数据。例如,如果得分标记包含 YouTube 视频(包含该玩家的游戏过程)的 ID,您的游戏可以创建一个链接,以便在您的排行榜中显示该视频。

3.6 最佳做法 以富有创意的方式设计自己的排行榜界面

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

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 最佳做法 合并对增量成就的频繁调用

如果您要制作一款格斗游戏并且设定了一项“出拳 5,000 次”的成就,请不要在玩家每次出拳时都发送成就增量调用。请等到当前回合结束后,发送一个 increment(xxx) 调用(其中 xxx 是该回合的总出拳次数),或者等待出拳 50 次后再发送一个 increment(50) 调用。

5.3 最佳做法 请注意您的使用情况

请注意您对 Google Play 游戏服务的调用次数。即使您能避免超出调用频率上限,频繁的调用也可能会导致消耗过多网络流量,并且会导致设备电池的耗电速度加快。为避免这种情况,您可以使用以下方法:

  • 将游戏存档的执行频率控制为每几分钟一次,而不是每次点击按钮时都会存档。
  • 等待玩家的游戏结束后再提交最高得分。
  • 前往 Google Cloud Platform 中的项目信息中心,查看应用的每日配额。

6. 游戏存档

以下核对清单任务适用于在您的游戏中实现游戏存档功能。

ID 重要性 说明
6.1 强制要求 添加元数据以便为游戏存档提供额外的上下文信息

您在提交游戏存档时必须至少包含以下元数据:

  • 封底图片 - 可获取游戏进度并提醒玩家游戏进度的屏幕截图。
  • 说明 - 为封底图片提供额外上下文内容的简短说明。
  • 时间戳 - 指明玩家玩这个已存档游戏的时长。
6.2 强制要求 允许玩家加载游戏存档

当玩家从 Play 游戏应用或默认的“游戏存档”选择界面中进行选择时,能够加载正确的游戏存档。