背景
我已经编写了一款我希望在多种设备(平板电脑,手机等)上运行的游戏。我实施了一种应用内货币,并且已经到了我需要在云端存储货币的阶段,因此可以跨设备访问它,我可以处理冲突等。
我想选择一个最简单的选项,至少对我而言,意味着使用Google提供的某种可用API,而不是使用我自己的服务器。我发现了以下可能性:
(1)现已弃用,开发人员将被指示使用已保存的游戏API。
(2)实际上似乎是一个很好的解决方案,因为它涉及游戏成就,排行榜和自定义数据存储(例如应用货币)。但是,我发现这有一个问题,在Play游戏应用程序中,可以选择删除播放器的个人资料,这也会删除游戏中的货币!因此,虽然(2)似乎很好,但可能会有可能删除货币数据。也许这可以放在T& C&C,类似于"如果你删除你的个人资料,你将失去任何未花费的货币和任何购买的物品" ......
(3)使用Drive API似乎是一个选项,但在线阅读之后,似乎存在许多问题,例如重复文件名,用户删除文件的可能性等等。
(4)我不确定这个选项,但看起来我可能需要付费?
某些API上似乎也有these deprecation schedules。
我的问题
因此面对这些(可能还有其他未列出的)选项,实现基于应用货币的云的优秀解决方案是什么?我试图避免使用我自己的服务器来记录每个用户的货币/数据,但这可能是唯一的好解决方案吗?我想尝试降低欺骗系统的能力。
其他想法
我可以使用Google保存的游戏API 和保存的偏好设置(存储在设备上)方法。我会更新已保存的偏好设置和Google已保存的游戏。我可以保持两种数据存储方法同步,如果Saved Games数据与Saved Preferences不匹配,则将Saved Prefs与Saved Games数据合并(例如,将Saved Games和Saved Prefs设置为任一的最大货币)。这将使我能够在设备上保留货币备份,以防用户删除其已保存的游戏配置文件。但是,如果用户删除了他们保存的游戏个人资料,并从所有设备中移除了应用程序,那么这将失败......这么多选项......
相关/有趣的帖子
Ricket's answer here is interesting.
可能的妥协解决方案
由于IAB系统和API提供的限制,我认为我会解决这个问题:使用托管项目进行永久性购买,例如:不同级别的主题,获得新角色等。无论发生什么,这些都将始终可用。一旦他们被购买,他们将永远购买,即我永远不会消费这些物品。有一个单独的虚拟货币(宝石)系统,最多100个宝石说,我通过Saved Games跟踪。这样我也获得了排行榜/成就。如果玩家删除了他们的个人资料,那就是他们的问题,但至少核心管理的项目会持续存在。希望T& C&#C; s能够弥补潜在的宝石损失,最多100颗宝石将有助于减少任何掉落。
答案 0 :(得分:1)
您可能想要结帐firebase其中一项功能是实时数据库。
答案 1 :(得分:-1)
您可以尝试Implementing In-app Billing。如文档中所述:
Google Play上的应用内结算功能提供了一个直观,简单的界面,可使用Google Play发送应用内结算请求和管理应用内结算交易。
因为您还提到过您试图避免使用自己的服务器来记录用户的货币/数据,因此这将是您的优势所在。以下是文档中给出的一些优点:
现在,如果您决定使用应用内结算,我是否可以建议您查看给定的文档并注意重要说明,注意/警告和建议。我还建议您阅读In-app Billing Overview以熟悉可以让您更轻松地实施应用内结算的概念。
最后,您还可以添加Security and Design作为参考之一,以获取有关安全性和设计最佳做法的更多信息。这个SO post中的建议也可能有所帮助。