8

一些记分牌一直在收到虚假的分数提交。这是一个例子:

前三名似乎是假的

同样的事情也发生在我制作的一款游戏上。有没有办法保护自己免受虚假提交的影响?有没有办法调节记分牌?

4

2 回答 2

11

用户伪造高分的最简单(也是流行的?)方法是使用root 访问权限来编辑保存的数据

您可以采取几个简单的步骤来增加难度:

  1. 不要将分数保留在内存中或保存状态。例如,倍数/除以一个因子并添加一个常数。更好的选择是实施加密的共享首选项。
  2. 将校验和添加到保存分数的结构(CRC32,MD5)。
  3. 从保存状态加载或在内存中读/写时,验证分数以检查没有人玩过它。
  4. 使用 ProGaurd 混淆您的代码。如果您要赚钱,请使用功能更强大的 DexGuard,并且还会使软件盗版更加困难。
于 2014-05-15T13:10:06.650 回答
7

我推荐的两种技术...

  1. 在开发者控制台中为您的排行榜添加最大值和最小值。如果您有总星数排行榜,而游戏中只有 180 星,请将 180 设置为最大值。这将确保作弊者最终不会添加这些虚假的分数。
  2. 查看player.hide()调用。这将从公共排行榜隐藏玩家和他/她的所有分数,以便其他人无法看到它们。请注意,此 REST 调用未内置到移动库中;您需要创建自己的迷你网络应用程序(或直接进行 curl 调用)才能使用此调用。
于 2013-08-20T15:00:19.650 回答