iPhone游戏暂停和恢复,值得实现吗?

Posted

技术标签:

【中文标题】iPhone游戏暂停和恢复,值得实现吗?【英文标题】:iPhone Game pause and resume, is it worth implementing? 【发布时间】:2011-08-15 04:19:55 【问题描述】:

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

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

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

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

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

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

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

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

我看到一些应用程序干脆放弃保存游戏,并在恢复时开始新一轮。那些不是为了玩游戏而付费的,否则我可以想象用户会很生气。

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

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

【问题讨论】:

一个快速简单的解决方案是在游戏结束后扣除硬币,而不是之前。 在我看来,在这种情况下,玩家在以下情况下免费玩游戏:(1)他们退出应用程序并被系统杀死(2)他们退出应用程序并在多任务处理中自己杀死它bar (3) 它崩溃了,这很公平.... 好吧,你必须问问自己,是否值得你花时间防止有人发现它并利用它进行几轮免费游戏。 不幸的是,在与我的同事一起考虑后,我们相信相当多的用户会选择不支付,尤其是当它只是双击时。所以是的,我们打算通过在游戏开始时扣除“硬币”来防止这种情况发生。 【参考方案1】:

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

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

【讨论】:

可能会让用户很容易避免为他们在这种情况下玩的回合付费。 首先感谢您的意见。这将使编程变得更容易,但这也为玩家提供了一个选择,即只为他们打得非常好的一轮付费。对于只想玩得开心的用户,他们现在可以选择完全不付费,这对任何试图通过他们的程序谋生的开发者来说都是不利的。 @Gapton 既然如此,我不明白你如何能够避免创建游戏存档。此时,您需要寻求服务器的帮助以确保不会对保存文件进行更改。要么将数据推送到设备外,要么将保存文件的哈希码推送到设备外。 @Gapton 想要添加最后一条评论:停止作弊和给您的客户带来不便之间只有一线之隔。作弊者不太可能成为客户(至少长期如此),因此您确实应该将客户的需求置于可能试图玩弄系统的人的需求之上。我知道某些类型的作弊会影响您的付费客户,这可能是您应该关注的,而将其他优先级较低的项目放在次要位置。我建议使用服务器,但如果用户离线,那显然会失败。将保护您的客户作为第一要务。 @Charles Chappell 谢谢你的建议,我明白你的意思。开发者通常认为作弊/破解总是他们最大的敌人,但实际上并不是那么简单。愿意购买的玩家、可能购买或不购买的玩家以及绝对不会购买我的游戏的玩家,实际上可以是我应该针对的 3 组不同的人群。是的,我知道无论他们的软件如何防作弊/防破解,开发人员都无法从第 3 组中榨取资金。【参考方案2】:

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

【讨论】:

感谢您的信息!这看起来像我可以使用的东西。我一定会阅读它,看看它如何融入游戏。唯一担心的是用它来保存大量复杂的对象....

以上是关于iPhone游戏暂停和恢复,值得实现吗?的主要内容,如果未能解决你的问题,请参考以下文章

applepay丢失模式后恢复

在 iphone 中暂停和恢复 CLLocation 跟踪

从 iPhone 应用程序暂停/恢复 Pandora

SpriteKit - 如何正确暂停和恢复应用程序

应用程序激活后保持游戏暂停?

关闭 iPhone/iPod 音乐后玩家返回游戏时游戏音乐不恢复