4

请允许我描述一下我的情况:

我想开发一款游戏,即回合制和付费游戏。这意味着您为一轮游戏支付一枚硬币,例如弹球等。

问题是,当出现中断时,理想情况下游戏应该暂停,并在用户需要时恢复。实施这似乎是一个挑战。假设我的游戏已进入后台,我会将游戏状态保存在 ApplicationDidEnterBackground 中。但是,游戏可能会或可能不会在后台终止。因此,下一次启动可能是“重新开始”,或者是“从上次保存状态恢复”。

如果应用程序在后台停留的时间足够长,比如 1 周,几乎可以肯定其他应用程序争夺内存会导致游戏在某个时间点终止。当用户再次启动我的应用程序时,他们将开始新一轮游戏,这意味着之前未完成的游戏已经消失。

从客户的角度来看,这是不公平的。

我能想到的是,实现它以便每当我的应用程序被带到前台时,我都会去检查是否有保存的游戏。如果有,我将改为恢复它。这带来了一个安全问题:

保存的游戏,无论是最原始的 plist 格式还是其他格式,都会被持久化,并带来安全问题。(如果玩家编辑游戏状态并获得1000万分作为最高分……等等)

有没有推荐的方法来解决这些问题?

我看到有的App直接放弃了保存游戏,恢复后会开始新的一轮。那些不是为了玩游戏而付费的,否则我可以想象用户会非常生气。

我见过一些应用程序可以保存游戏状态一段时间,但是当它被终止时,下次启动时,它将开始新一轮。在玩家实际为该回合付费的情况下,这似乎是不可接受的。

当考虑到崩溃的可能性时,我无法想出一个好的解决方案来确保付费客户能够玩一整轮游戏。如果有相关经验的人可以分享他们的想法,以及他们如何做出决定,那真的会对我有所帮助。

4

2 回答 2

3

为什么不将回合结束与付款联系起来?如果回合未结束,则不收取任何费用。如果该回合结束时用户的积分不足,您可以让他们选择立即购买更多积分(通过应用内购买)以完成当前回合。

这简化了您作为开发人员的任务,并且还提供了一种以不令人讨厌的方式提示用户进行额外付款的方法。

于 2011-08-15T06:13:48.840 回答
2

是一个关于使用 NSCoding 保存游戏状态的精彩教程。播放器在编辑文件时不会有任何问题,就像在 NSCoding 中所做的那样。如果用户真的想弄清楚如何取消编码文件并更改内容,这很疯狂,您可以在将数据写入文件之前对数据进行某种加密,这样用户就无法更改。希望有帮助!

于 2011-08-15T05:28:42.050 回答