我正在开发一款游戏。它将使用Game Center进行多人游戏。我希望能够使用CloudKit存储级别和本地CloudKit容器来存储游戏进度。问题是这需要不同的帐户。关于如何将它们联系在一起的任何想法?
答案 0 :(得分:3)
我最近在与我的游戏Qiktionary进行同步时遇到了困难。起初,我将单人游戏数据与当前登录的游戏中心玩家联系起来。因此,当我开始进行同步时,我通过在每个Game Center播放器中使用单独的CKRecordZone(在私有数据库中)将CloudKit中的单人游戏数据与Game Center玩家相关联。
我最终放弃了这种方法,因为事实证明这会导致一些看起来像数据丢失的行为。例如,GC播放器A登录到您的游戏并播放10个单人游戏(或者在您的情况下,级别)。后来他们碰巧退出游戏中心,甚至比他们回到你的游戏更晚,因为他们已经退出,他们不再看到他们的10场比赛。游戏数据不存在但不仅仅是“#34;缺失”并不是很明显。因为他们现在已退出GC。
我做了一些研究,其他大多数游戏都没有这样做。单人游戏进度与登录的Game Center玩家无关。这意味着CloudKit中的单人游戏数据也不应该与游戏中心玩家相关联。
这甚至是GameKit的GKSavedGame
API的工作原理。根据{{3}}:
已保存的游戏与iCloud帐户绑定,而非游戏中心帐户