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

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

本文档可帮助您将注意力集中在质量、功能集和界面的主要方面上,这些方面会在很大程度上影响您的游戏能否取得成功。对于每个关注领域,我们都提供了基本要求、最佳做法和建议优化措施的核对清单。为了给玩家提供最好的产品,建议您尽可能遵循核对清单中的建议。

1. 登录

以下核对清单任务适用于在您的游戏中实现玩家登录功能。有关如何在移动游戏上实现登录的代码示例,请参阅在 Android 设备上实现登录一文。

ID 重要性 说明
1.1 强制要求 为玩家提供登录 Google Play 游戏服务的选项。

您的游戏必须实施以下某种方法才能让玩家登录:

1.1.1. 当您的游戏启动时,自动提示玩家登录

适合所有受众群体的应用应实现静默登录,以帮助玩家快速通过身份验证并有权使用 Google Play 游戏服务提供的全套功能。如果静默登录失败,您的应用应提示玩家以交互方式登录

如果玩家选择不登录,请记住此操作,并且不再反复提示玩家,而是提供一个登录按钮。登录按钮应便于玩家找到(例如,应该可以在主屏幕上找到该按钮,而不得将该按钮放在游戏菜单内的多个层级之下,以免它被遮盖住)。

1.1.2. 在游戏中提供登录选项
如果系统没有自动提示,玩家必须可以选择通过登录按钮或通过与内容相关的触发器登录(例如,在多人游戏对局开始时,提交最高得分时,或解锁某项成就时)。登录按钮必须包含 Play 游戏图标。
1.2 强制要求 创建登录客户端时,请勿请求不必要的范围。

从您的 GoogleSignInOptions 结构中移除所有不需要的范围以及您不再使用的所有 API。

例如,在创建 Google 登录客户端时,您不应该请求 G+ 服务。这可以避免要求新用户无谓地 (1) 创建 G+ 帐号,以及 (2) 查看其他同意屏幕。

// This way you won’t get a consent screen
GoogleSignInOptions signInOption = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
1.3 强制要求 允许玩家保持登录状态。

在玩家成功登录您的游戏后,只要游戏开始就自动关联其帐号,直到玩家明确退出帐号。

1.4 强制要求 向玩家提供退出选项。

登录后,玩家必须可以随时选择退出。Play 游戏 SDK 提供的默认成就和排行榜界面已包含退出选项,因此您无需为这些界面实现退出按钮。

建议您在应用的其他游戏屏幕中提供退出选项。例如,您的退出按钮可能如下所示:

Type-a-Number 示例,主菜单,已登录
1.5 强制要求 玩家拒绝登录时的注意事项。

如果玩家在游戏最初启动登录流程时拒绝登录(例如,如果他们在登录界面中点击了“取消”),您仍应该允许该玩家继续玩游戏。

当玩家再次启动游戏时,请勿自动调用登录流程。这样,玩家就不必在开始游戏时反复拒绝登录。

不过,如果玩家尝试访问的游戏内容功能要求必须登录(例如,开始多人游戏对局时),则属于例外情况。在这种情况下,请先提示他们登录,然后再继续玩游戏。

1.6 最佳做法 尽可能增加已登录玩家的数量。

允许更多玩家登录 Google Play 游戏服务可以让他们有更多机会体验协作性和竞争性的游戏内容,从而让玩家享受更多乐趣。为了尽可能增加登录 Google Play 游戏服务的玩家数量,强烈建议您自动提示玩家登录(如上所述)。

否则,请在以下某个时间点(按推荐优先顺序显示)尽早将玩家引导至登录流程:

  • 在游戏开始后立即提示。
  • 在入门介绍(例如剪辑或教程)结束后立即提示。
  • 当玩家点击游戏中任意位置的 Google 登录按钮时。
1.7 建议 遵循 Google 品牌推广指南。

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

1.8 建议 提醒玩家他们已登录。

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

1.9 建议 在登录期间适时显示“正在连接”弹出式窗口。

在 Android 设备上,默认情况下,只要调用登录流程,系统就会显示 Google Play 游戏“正在连接”弹出式窗口。在 Android 设备上,验证在游戏开始让玩家自动登录时是否会显示此弹出式窗口。

如果您是根据界面互动(例如点击登录按钮)让玩家登录,则可以选择禁止显示此弹出式窗口。要了解如何控制弹出式窗口的显示方式,请参阅在 Android 设备上实现登录一文。

以下示例演示了登录期间“正在连接”弹出式窗口在 Android 游戏中的可能显示方式,以及 Google Play 游戏服务徽标的简短动画。

屏幕截图上显示“正在连接”弹出式窗口。
1.10 建议 避免丢失玩家进度信息。

如果可能,请尽量将玩家的进度保存在本地,然后在玩家最后一次登录时同步该进度。这有助于避免在玩家推迟游戏登录时间时丢失玩家的任何进度。

2. 成就

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

ID 重要性 说明
2.1 强制要求 确保所有成就均可达成。

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

2.2 最佳做法 确保各项成就是独一无二的,不得重复。

建议针对每项成就使用独一无二的图片、文本和说明。

2.3 最佳做法 按比例确定成就得分。

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

2.4 最佳做法 为成就设计不同的难易程度。

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

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

很难达成的成就 - 赚取 5K 宝石
2.5 建议 请勿在前期设置过多成就。

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

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

2.6 建议 围绕有吸引力的游戏内活动定义成就。

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

2.7 建议 使用彩色成就图标。

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

2.8 建议 尽可能减少使用隐藏成就。

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

2.9 建议 避免使用过于依赖运气的成就。

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

2.10 建议 像“Achievement Hunter”一样来构思成就。

有些玩家会尝试获得您创建的每项成就。尽量提供迎合这类玩家需求的成就。当玩家在游戏中做出某种决定时,请确保创建的成就不会过多依赖玩家无法掌控或无法获取的元素。

2.11 建议 确保您的成就图标可正确显示。

在 Android 消息框中显示成就图标时,该图标会与圆形叠加在一起,并且其外角会被盖住。请确保您的图标在此类情况下仍能正常显示。

3. 排行榜

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

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

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

3.2 最佳做法 设定可提交的分数上限。

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

3.3 最佳做法 使用自定义图标。

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

3.4 最佳做法 确保按适当的频率提交得分。

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

3.5 建议 充分利用得分标记。

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

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

3.6 建议 以富有创意的方式设计自己的排行榜界面

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

3.7 建议 向玩家展示他们如何与竞争对手一较高下。

排行榜 API 支持显示得分窗口(例如,玩家在 +/-10 个位置内的排名)。如果您要创建自定义视图,这就可以成为激励互动的一种有效方式。它可以在游戏中的关键过渡(例如,在关卡结束时或玩家的游戏角色牺牲时)之后立即显示。避免让玩家无谓地点击他们的排名信息。

4. 多人游戏(常规)

以下核对清单任务适用于在您的游戏中实现实时多人游戏回合制多人游戏功能。

ID 重要性 说明
4.1 强制要求 如果您的游戏使用邀请功能,则应允许玩家参与多人游戏对局。

如果您的游戏使用多人游戏 API 来创建房间或回合制对局,但不允许玩家加入多人游戏对局,则可能会被视为滥用服务,并且可能会导致系统阻止访问 Google Play 游戏服务。

4.2 强制要求 确保您了解并完全遵守 Google Play 游戏服务条款

在多人游戏中,除了 Play 游戏服务通常所分享的详细信息外,您还必须获得玩家的明确许可才能将其个人详细信息分享给其他玩家。

4.3 最佳做法 提供“快速对局”按钮,让玩家可以直接进入竞技对局。

通过自动对局让玩家轻松开始与随机选择的对手挑战。有关此功能的实际示例,请参见笨拙小鸟游戏。

4.4 最佳做法 通知玩家他们在游戏中收到了邀请。

开发者应实现邀请回调,以便在游戏中通知玩家收到了邀请。

4.5 最佳做法 让玩家直接进入对局。

当玩家点击接受多人游戏对局邀请时,该玩家应能直接进入相应的对局。要实现此行为,您可以使用 Google Play 游戏服务传递给您的游戏客户端的 connectionHint 参数中包含的对局信息。

4.6 最佳做法 在您的 Android 游戏进入后台时正确处理邀请。

当您的游戏进入后台时,游戏中的多人游戏邀请回调将继续使用所有传入的邀请。这样可避免邀请显示在通知栏中,从而阻止玩家接受这些传入的邀请。

我们建议您在 Activity 的 onPause() 中取消注册回调。如果您没有这样做,系统将自动释放回调并发出警告。在所有回调均已释放后,通知将可以在通知栏中正确显示。

4.7 最佳做法 使用位掩码或变体时,避免对玩家群过度分区。

您的潜在玩家群越小,您的玩家完成自动对局进入游戏所需的时间就越长。

4.8 最佳做法 仅在没有其他替代方案时才使用变体或位掩码。

考虑一下,如果玩家没有选到想玩的游戏类型,他们是否会离开游戏。如果可能会离开,则请提供相应的游戏类型,让玩家在开始多人游戏对局时可以选择该类型变体。如果不会,请考虑让玩家只在进入对局后才能选择相应游戏类型。

4.9 建议 让玩家在多人游戏对局结束后可以轻松开启新的对局。

在多人游戏对局结束时,允许玩家与这一局中的相同对手再来一局,或者与新的对手开启新的对局,从而立即重新吸引他们继续玩游戏。

5. 实时多人游戏

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

ID 重要性 说明
5.1 最佳做法 清理实时多人游戏房间。

如果您没有以适当的方式离开房间,Google Play 游戏服务将会继续向客户端发送活动和邀请通知。只要出现以下任意一种情况,就应该视为您已经离开已加入的房间:

  • 游戏结束(例如,玩家在对局中已获胜)。
  • 当您的游戏切换到后台时。
  • 在 Android 设备上,在以下情形下视为离开房间:
    • 玩家在等候室界面中取消游戏。
    • onActivityResult() 回调中返回的响应代码为 GamesActivityResultCodes.RESULT_LEFT_ROOM
    • 调用了 Activity onStop()。这可能表示您的 Activity 正在被销毁。在这种情况下,请离开房间并调用 disconnect()

6. 回合制多人游戏

以下核对清单任务适用于在您的游戏中实现回合制多人游戏功能。

ID 重要性 说明
6.1 最佳做法 提醒玩家有回合制对局需要他们留意。

您可以在主菜单的“多人游戏”选项旁边添加一个小图标或数字,以指示正在等待玩家开始某个回合或接受邀请的对局。有关此功能的实际示例,请参见 1941 Frozen Front 游戏。

6.2 建议 设计的游戏回合时长需要超过 15 秒。

设计游戏内容时应避免每个回合之间过渡太快。这是为了防止类似垃圾内容的行为,此类行为可能会导致您的游戏超出其 API 配额限制,或导致玩家无法正确接收回合通知。

7. 礼物和请求

如果您在游戏中使用游戏礼物功能,则以下核对清单任务适用。

ID 重要性 说明
7.1 强制要求 在未得到玩家明确许可的情况下,请勿发送、请求或接受游戏内礼物

确保您了解并完全遵守与使用游戏礼物功能相关的 Google Play 游戏服务条款

7.2 强制要求 实现接受游戏礼物请求的功能。

如果您的游戏允许玩家发送游戏礼物请求但不允许玩家接受游戏礼物请求,则可能会被视为滥用服务,并且可能会导致系统阻止访问 Google Play 游戏服务。

7.3 最佳做法 实现用于接受游戏礼物请求的监听器。

您应该实现请求监听器,以便玩家在您的游戏中接受游戏礼物请求时收到通知。

8. 配额和调用频率限制

以下核对清单任务适用于管理您的游戏的配额和调用频率限制。要了解如何管理您游戏的配额并检测何时超出其调用频率限制,请参阅管理配额和调用频率限制一文。

ID 重要性 说明
8.1 最佳做法 使用客户端库。

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

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

8.2 建议 限制您的可靠消息传输频率。

如果您使用 RealTimeMultiplayerClient.sendReliableMessage() 在 Android 应用中进行可靠的调用,请将您的消息传输频率控制在每秒 50 条或更少。

提示:如果您发送数据的频率需要超出此限制,请考虑改用不可靠的消息传输。不可靠的消息没有配额限制。

8.3 建议 合并对增量成就的频繁调用。

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

8.4 建议 请注意您的使用情况。

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

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

9. 活动和任务

如果您在游戏中使用活动和任务功能,则以下核对清单任务适用。

ID 重要性 说明
9.1 强制要求 确保任务能够被玩家轻松发现。

确保玩家可以从您游戏的主菜单或主游戏内容视图中轻松发现任务。

9.2 强制要求 允许玩家接受 Play 游戏应用中的任务。

您的游戏必须显示相应视图,让玩家在点击 Play 游戏应用中的任务平铺图时能够接受任务。

9.3 强制要求 告知玩家任务接受和完成情况。

当玩家接受或完成任务时,您的游戏必须明确告知玩家。您可以使用消息框或其他同等效果的通知方式显示确认信息。

9.4 强制要求 实现奖励领取。

如果您的任务说明提到了奖励,那么您的游戏必须在任务完成时提供该奖励。

要允许玩家在任务完成时领取奖励,请选用下列其中一种方法:

  • 实现领取奖励监听器(当用户从默认的任务列表界面中点击已完成任务所对应的“领取奖励”按钮时,会触发该监听器),或者
  • 在任务完成时自动领取奖励。
9.5 强制要求 遵循任务品牌推广指南。

链接到任务时,您的游戏应显示官方任务图标。根据 Google Play 游戏服务品牌推广指南,没有严重扭曲轮廓的变体也是可以接受的。

9.6 最佳做法 对奖励进行适当说明。

应该在任务说明的前 150 个字符中指明奖励,以便让相应文字显示在 Play 游戏应用的简化版任务视图中。

9.7 最佳做法 直观指明任务进度。

确保玩家可以轻松查看他们完成任务的进度状态。您的游戏应该显示玩家的任务进度(如果只有一个进行中的任务),或者进度完成率最高的任务(如果有多个进行中的任务)。

您的游戏可以在以下位置显示此可视化内容:

  • 在游戏启动时的弹出式对话框中。
  • 在主菜单中。
  • 在主游戏内容屏幕中。
9.8 最佳做法 指明离任务完成期限还剩多长时间。

给玩家显示倒计时或以其他方式告知玩家任务截止日期临近,让他们更加积极主动地玩游戏,以便在任务结束前达到他们的任务目标。

在任务即将结束时,使用消息框或其他游戏内警告来显示结束时间倒计时。

9.9 最佳做法 确保任务可重复使用或重复发布。

重复使用任务可以让新玩家有机会体验这些任务,而无需启动新的二进制文件。许多热门游戏在一周七天的每一天设有每日任务(每周重复)。

每周或每月的重复任务可以为所有玩家打造一组类似的用户体验。

10. 游戏存档

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

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

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

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

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