2015-07-18 72 views
1

我正在製作遊戲。它將使用Game Center進行多人遊戲。我希望能夠使用CloudKit存儲級別以及用於存儲遊戲進度的本地CloudKit容器。問題是這需要不同的帳戶。關於如何將它們連接在一起的任何想法?CloudKit和GameCenter在遊戲中?

回答

2

我最近在與我的遊戲Qiktionary同步建設時苦苦掙扎。起初,我將單人遊戲數據與當前登錄的Game Center玩家相關聯。因此,當我開始同步工作時,我通過爲每個Game Center播放器使用單獨的CKRecordZone(在私人數據庫中)將CloudKit中的單人遊戲數據與Game Center玩家關聯起來。

我最終放棄了這種方法,因爲事實證明這會導致一些看起來像用戶一樣的行爲,如數據丟失。例如,GC玩家A登錄到您的遊戲並玩10個單人遊戲(或在您的情況下,級別)。後來他們碰巧註銷了Game Center,甚至晚於他們回到遊戲中,並且在他們退出後,他們不再看到他們的10場比賽。遊戲數據並不是很明顯,但只是「失蹤」,因爲他們現在已經從GC註銷。

我做了一些研究,其他大多數遊戲都不行。單人遊戲進程未與已登錄的Game Center玩家相關聯。這意味着CloudKit中的單人遊戲數據不應該鏈接到Game Center玩家。

這甚至是GameKit的GKSavedGame API的工作原理。據the docs

保存遊戲被拴在iCloud帳戶,而不是遊戲中心賬戶