遊戲進度存檔

遊戲進度存檔服務可以讓您在 Google 伺服器儲存玩家的遊戲進度,非常便利。遊戲可以擷取遊戲進度存檔資料,讓玩家用任何裝置重新開啟遊戲後能從上次的儲存點繼續進行遊戲。

遊戲進度存檔服務可以跨多個裝置同步處理玩家的遊戲資料。舉例來說,如果您有在 Android 執行的遊戲,就能利用遊戲進度存檔服務讓玩家在 Android 手機上開始遊戲,之後再用平板電腦繼續進行遊戲,而不會損失任何遊戲進度。利用這個服務,也能確保玩家即使在遺失裝置、裝置損毀,或是換購更新型號之後,仍然可以接續遊戲進度。

如果想瞭解如何為您使用的平台實作遊戲進度存檔,請參閱「用戶端實作」。

遊戲進度存檔基礎知識

遊戲進度存檔由兩個部分組成:

  • 非結構化的二進位檔 blob - 這個資料可以代表任選內容,您的遊戲須負責剖析及寫入。
  • 結構化中繼資料 - 與二進位資料相關聯的額外「屬性」,可讓 Google Play 遊戲服務以預設「已儲存遊戲」清單使用者介面 (UI) 顯示已儲存的遊戲,以及在 Google Play 遊戲應用程式中顯示實用資訊 (例如上次更新的時間戳記)。

只要遵守使用者配額,每一位玩家的遊戲都可以寫入任意數量的遊戲進度存檔,因此並未強制規定玩家只能擁有一組存檔。

封面圖片

除了保持進度的功能之外,遊戲進度存檔服務也能在視覺上提供使用者體驗。我們強烈建議您為存檔準備相對應的代表圖片,並為兩者建立關聯。如果您在遊戲中使用 Play 遊戲 SDK 提供的預設「已儲存遊戲」清單的使用者介面 (UI),則 UI 會顯示這些封面圖片。Google Play 遊戲應用程式也可能會顯示這些封面圖片。

說明

您可以提供簡短的文字,藉此說明特定遊戲進度存檔的內容。玩家可以直接看到這段說明,而說明內容應該要能概略說明這個遊戲進度存檔所代表的狀態,例如「在黑暗森林和哥布林戰鬥」。

配額

開發人員不需為雲端儲存的遊戲進度存檔資料付費。這些資料都會按照玩家的 Google 雲端硬碟配額計算,您不需擔心這個問題。遊戲開發人員只要注意 Google Drive API 配額即可。

讀取/寫入隔離

所有遊戲進度存檔都會儲存在玩家的 Google 雲端硬碟的應用程式資料資料夾內。只有您的遊戲才能讀取並寫入這個資料夾,其他開發人員推出的遊戲無法檢視或修改內容,讓資料更安全、更不容易損毀。另外,系統會防止玩家直接竄改遊戲進度存檔,避免玩家修改特定的遊戲進度存檔。

支援離線使用

當玩家的裝置處於離線狀態時,您的遊戲仍可讀取和寫入已儲存的遊戲,但必須等到網路連線成功後,才能與 Google Play 遊戲服務同步處理。重新連線後,Google Play 遊戲服務會以非同步方式更新儲存在 Google 伺服器上的遊戲資料。

衝突解決

當遊戲使用遊戲進度存檔服務時,可能會在嘗試儲存資料時發生衝突。如果有使用者透過不同裝置或電腦執行多個應用程式執行個體,就有可能發生這種衝突。您的應用程式必須有可以解決這種衝突的能力,以便提供最佳使用者體驗。

會發生資料衝突,通常是因為應用程式執行個體在嘗試要載入或儲存資料時無法取得遊戲進度存檔服務。一般而言,避免發生資料衝突最合適的方式是一律在應用程式啟動或恢復執行的時候載入服務上的最新資料,並按照合理的頻率把資料儲存到服務上。不過,有時依然無法避免資料衝突。應用程式應該要能盡力解決衝突問題,藉此保存使用者資料,並提供良好的使用體驗。

限制

Google Play 遊戲服務目前針對二進制資料設有大小限制,且大小限制分別為 3 MB 和 800 KB。

遊戲進度存檔中繼資料

遊戲進度存檔的結構化中繼資料含有以下屬性:

資源 說明
ID Google Play 遊戲服務為這個已儲存遊戲產生的專屬字串。您可以在遊戲用戶端用這組 ID 參照遊戲進度存檔。
名稱 開發人員為遊戲進度存檔取的簡短名稱,例如「Save slot 1」或「PlayerName_Save1」。玩家不會看到這個內容。
說明 開發人員提供的遊戲進度存檔說明。
上次修改時間 Google Play 遊戲服務針對儲存的遊戲上次更新時的時間戳記 (以毫秒為單位)。
遊戲進行時間 開發人員在遊戲進度存檔上顯示的時間 (以毫秒為單位)。這個值應該代表玩家遊玩相應遊戲進度存檔的時間。舉例來說,Google Play 遊戲服務會將播放時間值 3600000 顯示為「1 小時」。
封面圖片 這是由開發人員提供的非必要屬性,內含封面圖片的資訊。

用戶端實作

如要瞭解如何為您的平台實作「遊戲進度存檔」功能,請參閱下列資源: