跳轉到主要內容
PlayFab Game Saves 會發出 PlayStream 事件,您可以使用這些事件追蹤玩家如何儲存、同步及管理其遊戲資料。使用這些事件監視存檔活動、偵測衝突,並了解玩家群中的跨裝置使用模式。 所有 Game Saves 事件都會針對 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 進行比較。差距很大表示如果需要回復,玩家將會遺失大量進度。
  • 回復與衝突的關聯——如果回復產生的版本經常與衝突資料一起出現,此模式可能表示您的衝突解決策略會產生回復的副作用。
最後修改於 2026年10月8日