【发布时间】:2012-01-11 19:52:00
【问题描述】:
我正在开发一款 iOS 回合制游戏(游戏中心)。问题是:我什么时候必须保存游戏数据?当然,当轮到玩家时,应用程序会在玩家的移动传递给其他玩家之前进入后台或终止,但是否还有其他需要保存游戏数据的场景?
【问题讨论】:
标签: ios persistence game-center save multiplayer
我正在开发一款 iOS 回合制游戏(游戏中心)。问题是:我什么时候必须保存游戏数据?当然,当轮到玩家时,应用程序会在玩家的移动传递给其他玩家之前进入后台或终止,但是否还有其他需要保存游戏数据的场景?
【问题讨论】:
标签: ios persistence game-center save multiplayer
一般来说,对于任何客户端-服务器应用程序(游戏或其他),只要用户执行服务器需要知道的操作,客户端就应该将数据持久化回服务器。
换句话说,如果用户采取了行动而服务器从不知道它会导致问题,那么它需要被持久化。
例如,如果用户做了 X,然后他们的手机爆炸了,那么当他们在新手机上打开应用程序时,X 还没有完成,会不会有问题?如果答案是“OMG 当然会是个问题!!!1”,那么 X 应该被持久化。
一般来说,我总是假设在客户端上执行的每个操作都应该尽可能地持久化到服务器上。这可以在有意义的情况下异步发生,但服务器的应用程序状态记录是唯一真正重要的事情。
【讨论】:
据我所知,在使用游戏中心的 turnBased API(假设我的回合尚未结束)时将数据持久保存在服务器上的唯一方法是使用以下内容:
[myTurnBasedMatch endTurnWithNextParticipant:me matchData:data completionHandler:^(NSError *error)];
这是在更新数据时将轮到自己。这工作正常,但使用同一 Game Center 帐户登录的所有其他设备都会收到“轮到你了”的通知,有人知道解决方法吗?
【讨论】: