回復的運作方式
Game Saves 會追蹤玩家存檔資料的已完成版本。當您觸發回復時,服務會建立一個新版本,其內容與您要還原的先前狀態完全相同。回復會保留原始的版本歷程記錄。它不會刪除或覆寫先前的版本。回復後進行同步的其他裝置會將其視為一般更新。 回復有兩種類型。您可以將選項旗標傳遞給PFGameSaveFilesAddUserWithUiAsync 來觸發每一種類型:
如果沒有符合資格的還原點,這兩個選項都會回復到預設行為 (同步目前最新的版本)。
何時使用每種回復類型
回復至上次已知良好
當您懷疑最新的上傳有問題時,請使用RollbackToLastKnownGood。常見的觸發情況包括:
- 下載存檔後載入失敗或完整性檢查失敗。
- 在存檔作業期間或之後立即當機。
- 玩家回報狀態損毀或倒退。
回復至上次衝突
當玩家在衝突解決期間選擇了錯誤的一方時,請使用RollbackToLastConflict。如 Game Saves 衝突中所述,兩種解決選擇都會保留被捨棄的分支。此回復選項會還原該保留的分支。
呼叫 API
將適當的選項傳遞給PFGameSaveFilesAddUserWithUiAsync 以觸發回復。每位使用者只能呼叫此函式一次,因此若要為已新增的使用者回復,請先呼叫 PFGameSaveFilesUninitializeAsync 並等待其完成。
後援行為
如果所要求的回復類型沒有符合資格的還原點,呼叫的行為會如同您傳遞了PFGameSaveFilesAddUserOptions::None。目前最新的版本會正常同步。呼叫完成後,請檢查已同步的檔案,以確認是否發生了回復。
遊戲設定
您可以透過兩個設定旗標限制用戶端起始的回復。當您啟用任一旗標時,只有支援工具和 Game Manager 可以執行該類型的回復。
請在 Game Manager 的 Progression > Game Saves 下設定這些旗標。
錯誤處理
考量
- **回復會建立新版本。**它不會清除歷程記錄。玩家的版本順序會繼續向前推進。
- **服務會自動追蹤已知良好。**它會根據成功的載入後取代週期,判斷哪些版本符合資格。您的遊戲不需要明確標示版本。
- **每次新增使用者呼叫只能回復一次。**由於每位使用者只能呼叫
PFGameSaveFilesAddUserWithUiAsync一次,若要觸發第二次回復,需要先呼叫PFGameSaveFilesUninitializeAsync。 - **UI 回呼仍會引發。**回復會經過與一般新增使用者呼叫相同的同步流程。請在呼叫 API 之前註冊您的 UI 回呼。
- **視需要限制回復。**如果您的遊戲在伺服器端或透過支援工具處理復原,請使用遊戲設定旗標停用用戶端回復,以防止玩家意外還原進度。
- **回復適用於所有平台。**此 API 沒有平台特定的防護。
