playfab.gamesave 命名空間中的 title_player_account 實體發出。
事件
gamesave_version_finalized
每次完成遊戲存檔版本時發出。所有檔案都已上傳,且版本已完成。此事件是追蹤存檔活動的主要信號。
Conflict (巢狀物件,只在衝突解決期間存在):
gamesave_version_marked_known_good
當遊戲存檔版本被明確標示為「已知良好」時發出。已知良好的版本可作為受信任的還原點。如果玩家或遊戲需要從不良的存檔狀態中復原,系統會回復至此版本。
案例
案例:標準跨裝置使用
典型的跨裝置流程看起來像是玩家在一部裝置上存檔,然後在另一部裝置上繼續。在 PlayStream 中,此模式會顯示為一系列Version 號碼遞增的 gamesave_version_finalized 事件。
您會看到:
- 每次玩家存檔時都會有一個
gamesave_version_finalized事件,其中DeviceType和PlayerIdentityProvider指出所使用的裝置和身分識別提供者。 NewFileCount和NewFilesSizeBytes顯示與先前版本相比變更了多少資料。NewFileCount為 0 的版本表示玩家完成了沒有新檔案內容的版本 (例如僅限中繼資料的更新)。- 對於正常存檔,
Conflict為null,且IsGeneratedByRollback為false。
- 每位玩家的存檔頻率:追蹤完成事件的速率,以了解玩家參與度和存檔行為。
- 存檔大小隨時間的變化:監視
TotalSizeBytes和NewFilesSizeBytes,以發現存檔資料中可能影響儲存成本或同步時間的非預期成長。 - 裝置分佈:彙總
DeviceType,以了解玩家最常從哪些平台存檔。
案例:衝突解決
當兩部裝置針對相同的基礎版本完成遊戲存檔版本時,就會發生衝突。例如,玩家可能同時在主機和 PC 上離線遊玩,而兩部裝置在恢復上線時都嘗試同步。 您會看到:- 在衝突解決期間,用戶端一律會將其本機檔案上傳至新的資訊清單,並完成該資訊清單。此程序會產生單一
gamesave_version_finalized事件,其中包含非 null 的Conflict物件。現有的雲端版本 (已在先前的事件中完成) 不會產生新事件。 Conflict.IsWinner會告訴您玩家的本機變更是否在衝突中勝出:true——玩家選擇了保留本機。新的資訊清單成為標準版本,先前的雲端版本被取代。false——玩家選擇了保留遠端。新的資訊清單被保留為回復點 (包含被拒絕的本機資料),而現有的雲端版本仍為標準版本。
Conflict.ConflictingVersion指向發生衝突的現有雲端版本。
- 衝突率——篩選存在
Conflict的gamesave_version_finalized事件。衝突率上升可能表示玩家經常在未同步的情況下切換裝置,或是您遊戲的存檔頻率造成不必要的版本衝突。 - 本機與遠端偏好——比較
IsWinner = true(保留本機) 與IsWinner = false(保留遠端) 的比例,以了解玩家如何解決衝突。強烈偏向某一方可能表示衝突提示有 UX 問題。 - 跨裝置衝突模式——使用衝突事件上的
DeviceType和PlayerIdentityProvider,了解哪些平台組合最容易發生衝突。
案例:已知良好和回復
「已知良好」機制可讓您將特定版本標示為受信任的還原點。如果玩家的存檔損毀或需要復原,系統可以回復至最近的已知良好版本,並從中建立新版本。 您會看到:- 當您將某個版本指定為還原點時,會有一個
gamesave_version_marked_known_good事件,其中包含Version號碼和MarkedAt時間戳記。 - 如果發生回復,系統會發出新的
gamesave_version_finalized事件,其中IsGeneratedByRollback = true。此新版本的內容以已知良好版本為基礎,但會取得新的遞增版本號碼。 - 如果回復是在衝突解決過程中觸發的,回復產生的版本也可能包含
Conflict資料。
- 回復頻率——追蹤
IsGeneratedByRollback = true的gamesave_version_finalized事件。遊戲頻繁回復可能表示存檔損毀問題,或遊戲的存檔邏輯有問題。 - 已知良好的新鮮度——將
gamesave_version_marked_known_good中的Version與同一位玩家最新完成的Version進行比較。差距很大表示如果需要回復,玩家將會遺失大量進度。 - 回復與衝突的關聯——如果回復產生的版本經常與衝突資料一起出現,此模式可能表示您的衝突解決策略會產生回復的副作用。
