Google游戏服务指南规定:“签到后,玩家必须随时可以选择退出。”
想象一下以下场景:
我看到了管理播放器数据的两个选项: 1.将所有云保存的数据复制到本地设备存储2。重新启动用户,将数据保存到本地存储(如果他们重新登录,他们将再次访问云保存数据)。
第一个选项听起来最符合逻辑,但也意味着如果用户再次登录,我会将本地数据同步回云。因此,用户可以直接登录,更改设备上本地存储的首选项(例如,添加1000000枚硬币),然后重新登录并同步这些数据。
我的问题是,尽管(一些)玩家有可能篡改他们的数据,但同步数据是否是一种“正确”的方法呢?我已经找到了很多关于签约的信息,但之后却找不到该做什么。
谢谢!
发布于 2017-06-23 05:41:34
我的问题是,尽管(一些)玩家有可能篡改他们的数据,但同步数据是否是一种“正确”的方法呢?
不是的。将评分系统分为两部分:
离线和在线得分。
当用户登录时,将在线评分保存到离线得分。用户离线得分将继续从用户离开在线得分。
如果您决定再次登录,请使用在线评分。还可以用在线得分更新他们的离线得分。
通过这样做,您是只,使得玩家更难修改分数。如果游戏运行在玩家的一方,玩家可以总是改变分数,如果他们了解基本的APK逆向工程。数据不必保存在其他要修改的地方。它可以在记忆中改变。它还可以通过反编译、修改代码、编译和签名APK来更改。
现在,如果您使游戏运行在服务器上,但从用户读取输入,那么它不能改变,除非您的服务器被黑客攻击。
发布于 2017-06-23 05:39:52
这取决于游戏,如果它是一个基于故事的游戏,您可以通过使用保存菜单区分真正的云保存和离线保存来解决这个问题,因为API不限于一个保存。如果这是一个基于高级货币的游戏,比如$ 1.00$ for 100 Gems,您应该将所有事务记录保存在服务器上,因为允许用户更改这些值是不明智的。
“游戏可以为单个玩家编写任意数量的保存游戏,但必须遵守用户配额,因此不需要将玩家限制为单个保存文件。..。所有保存的游戏都存储在玩家的Google应用程序数据文件夹中。该文件夹只能由您的游戏读写-它不能被其他开发人员的游戏查看或修改,因此有更多的防止数据损坏的保护。..。保存的游戏不受玩家的直接篡改,所以他们不能修改保存的游戏。..。通常,避免数据冲突的最佳方法是在应用程序启动或恢复时始终从服务加载最新数据,并以合理的频率将数据保存到服务中。..。您的应用程序应该尽一切努力处理冲突,以便保存用户的数据,并使他们有良好的体验。“
下面是一个包含更多信息的链接。
https://stackoverflow.com/questions/44713539
复制相似问题