是否可以使用 Google Play Leaderboards 和 Achievements 来跟踪可消耗的 IAP-s?

Is it possible to use Google Play Leaderboards and Achievements to track consumable IAP-s?

我想设计一款 Android 游戏,其中的游戏内货币(硬币)可以赚取 通过玩游戏或者可以 购买 用真钱。然后可以将此货币用于不同的升级

显然我需要存储玩家的金币数量和他们在线购买的升级列表,以免他们决定卸载游戏时丢失这些信息。但是,我无法访问服务器,因此我想使用 Google Play 服务将此信息存储在隐藏的成就/排行榜中。

我的想法是设置两个排行榜:一个用于 赚取 + 购买的硬币总数,另一个用于花费的硬币总数。每当玩家赚取金币或使用可消耗的 IAP(购买后立即消耗,以便他们以后可以再次购买)购买金币时,或者每当玩家决定将部分金币用于升级时,这些排行榜就会更新。升级本身将作为成就存储,因此如果他们购买东西,特定成就将解锁。

这样所有的购买信息都将在线存储,如果玩家重新安装游戏,他们不会丢失任何进度:购买的升级列表存储在他们的解锁成就和剩余金币数量中只是两个排行榜分数的差距。

这种方法似乎也比在本地存储信息或建立与自定义服务器的连接更安全。由于 Play 服务在离线时缓存数据并稍后同步,因此可以在没有互联网连接的情况下使用商店(除了使用 IAP 购买硬币之外)。唯一的缺点是它会强制登录 Play 游戏,因此我必须在进行任何交易之前进行检查。基本上整个 "Store" 菜单将以 Google Play 服务登录开始。

我的问题是,您认为此解决方案有任何问题吗?是否有可能实现它,或者我是否误解了任何概念(到目前为止,我只使用过非消耗品 IAP,跟踪消耗品的方式对我来说有点不清楚)。它是否违反了 Play 服务的使用条款(我还打算创建一些传统的排行榜和成就,这样就不会隐藏所有内容)?最后,有没有不使用服务器的更简单的方法?

提前谢谢你:) 彼得

这个想法听起来很死板。为什么不直接使用 Google 中的 Saved Games API?这基本上可以使用适当的 API 而不是使用 leaderboard/achievement API 来完成您想做的事情。您可以定义任何 class 以将您的数据保存到云端并跨设备同步。

另外,Google 有一些默认 UI 用于显示排行榜和成就。如果您想使用真实的(未隐藏的)排行榜或成就,您必须自己编写 UI 并过滤掉隐藏的。