如何防止作弊者在iPhone游戏中篡改NSDate?

5

我目前在使用NSNotification(或通常称为本地通知)进行一个产品管理游戏的实验,这个游戏严重依赖于用户的NSDate/Time,然后使用本地通知来提醒何时产品准备好。

然而,在我做类似游戏的实验中,只需简单地将系统时间向前调整即可打败此系统,从而加速游戏。

我注意到有些游戏已经阻止了这一点,但我认为他们通过拥有一个内部时钟来与在线时钟同步,并且从不使用iPhone的时钟来实现,但这只是一个猜测,如果你没有互联网访问,这样的系统显然不起作用。

无论如何,我希望有人可以澄清以下问题:

  • 本地通知(或推送通知)本身是否足够成熟,可以用于依赖用户NSDate/Time的游戏?

  • 如何防止用户/作弊者打败NSNotification/NSDate游戏?

有没有一篇文章、框架或其他东西可以解释这个主题的最佳方法?

我在Virtual Pet Games中找到了类似的问题,但我仍然对其他建议感兴趣。

1个回答

5

本地通知将依赖用户的时钟准确设置。在发放奖励之前,您可以将用户的时钟与服务器时间进行比较。如果用户的时钟偏差超过几分钟,您可以提醒用户并在修复后再允许领取奖励。


是的,我相信这是各种游戏使用的解决方案;但是,如果您没有互联网连接或简单地关闭了无线电,它会防止玩家玩游戏。我想知道是否有不同或更好的解决方案。Virtual Pet帖子讨论了存储事件然后检查/递减它,但我不确定它是否考虑了应用程序闲置未播放的时间量。任何基于时间的应用都需要计算自上次播放以来经过的时间,并对库存等进行必要的调整。 - zardon
我想我可能会使用另一种度量标准,比如“回合”而不是时间。但也许有其他解决方案。现在我会接受你的答案。 - zardon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接