用户退出 Google Play 服务时保存游戏的最佳做法?

Chr*_*ton 5 android unity-game-engine google-play-services google-play-games

Google Play 游戏服务指南规定如下:“登录后,玩家必须始终可以选择退出。”

想象以下场景:

  1. 我下载了一个手机游戏并在经过身份验证的情况下玩了几个星期
  2. 在此期间,我解锁关卡并积累游戏币(保存到云端)
  3. 我决定退出 Google Play 游戏服务,但继续玩游戏

我看到了两种管理玩家数据的选项:1. 将他们所有在云中保存的数据复制到本地设备存储 2. 重新启动用户,将数据保存到本地存储(如果他们重新登录,他们将可以访问他们的云再次保存数据)

第一个选项听起来最合乎逻辑,但这也意味着如果用户再次登录,我会将本地数据同步回云。因此,用户可以退出,直接更改其设备上本地存储的首选项(例如添加 1000000 个硬币),然后重新登录并同步该数据。

我的问题是,尽管(某些)玩家可能会篡改他们的数据,但同步数据是否是“正确”的方法?我已经能够找到大量有关退出的信息,但无法找到之后该怎么做。

谢谢!

Pro*_*mer 4

我的问题是,尽管(某些)玩家存在篡改数据的风险,但双向同步数据是否是解决此问题的“正确”方法?

没有。将评分系统分为两个:

离线和在线评分。

当用户退出时,获取在线分数并将其保存到离线分数。用户的离线分数将从用户离开在线分数的位置继续。

如果您决定再次登录,请使用在线分数。还可以用在线分数更新他们的离线分数。


这样做只会玩家更难修改分数。如果游戏在玩家这边运行,如果玩家了解基本的 APK 逆向工程,他们随时可以更改分数。数据不必保存在其他文件中即可更改。它可以在内存中改变。它还可以通过反编译、更改代码、编译和签名 APK 来更改。


现在,如果您使游戏在服务器上运行但读取用户的输入,那么除非您的服务器被黑客入侵,否则游戏无法更改。