跳轉到主要內容
本指南專門涵蓋使用 2025 年 10 月 GDK 實作 PlayFab Game Saves 時的 Steam Deck 實作需求。實作 Steam Deck 支援之前,請確定您已完成基本的 2025 年 10 月 GDK 實作需求。

概觀

根據您的跨平台需求,Steam Deck Game Saves 整合可以用不同的複雜度實作。您可以選擇簡化的僅限 Steam 做法,或是驗證流程較複雜的完整 XBOX 生態系統整合。
重要差異 - 同步行為:Windows 上的 Game Saves 可以完全跨處理序執行,並在遊戲存留期之後繼續同步。在 Steam Deck 上,Game Saves 只在同處理序中執行。這表示存檔同步會在遊戲關閉時停止,遊戲必須採用頻繁的同步模式,以避免遺失未同步的進度。適用於所有平台的最佳做法:雖然這些同步模式是 Steam Deck 所必需的,但強烈建議所有平台都使用,特別是手持裝置或任何可能發生突然關機的情況 (電池耗盡、系統當機、強制關閉事件)。

同步引擎行為差異

通用同步建議 (對所有平台都有益):
  • 經常同步存檔資料 (例如,在每個關卡、檢查點或重大進度之後)
  • 一律在顯示「結束遊戲」確認之前進行同步
  • 考慮在遊戲轉換期間進行背景同步
  • 實作同步進度指標,以確保在關閉之前完成
  • 對於經常發生電池耗盡或突然關機的手持裝置尤其重要

先決條件

實作 Steam Deck 支援之前,請確定您已:
  1. 完成 2025 年 10 月 GDK 設定:依照 2025 年 10 月 GDK 實作指南操作
  2. Steam API 整合:基本的 Steam API 初始化和 Steam Deck 偵測
  3. 選擇整合做法:在 XBOX 生態系統或自訂身分識別整合之間做出決定 (請參閱下方)
  4. 所有必要的 DLL:Unified SDK DLL 必須與您的 Steam 組建一起部署

實作做法

Steam Deck 提供兩種實作做法,具有不同的複雜度和跨平台功能。PlayFab Game Saves 對於 Steam 生態系統之外的跨平台存檔同步很有價值——您需要 XBOX Live 整合 (做法 1) 或您自己的自訂玩家身分識別系統 (做法 2)。

做法 1:XBOX 生態系統整合 (建議)

優點:
  • 完整的跨平台同步:存檔資料會在 Steam Deck、XBOX 主機、Microsoft Store PC 和其他支援 XBOX 的平台之間同步
  • XBOX Live 整合:玩家使用其 XBOX 玩家代號,並可存取 XBOX 社交功能
  • 統一的玩家身分識別:所有平台上使用相同的玩家設定檔
  • 經過驗證的驗證機制:運用 XBOX Live 成熟的驗證基礎結構
  • XBOX Game Studios 相容性:為 XBOX 第一方和合作夥伴工作室提供順暢的整合
複雜度:
  • 複雜的驗證:需要自訂 XUser 事件處理常式和 UI 回呼
  • 開發沙箱設定:非零售測試環境所必需
  • 系統管理員權限:在沙箱設定期間修改登錄所必需
  • 額外的 UI 實作:QR 碼驗證和玩家代號選取對話方塊
何時選擇:以包括 XBOX 主機在內的多個平台為目標的遊戲、XBOX Game Studios 遊戲,或需要完整 XBOX Live 生態系統整合的遊戲。

做法 2:自訂身分識別實作 (替代方案)

優點:
  • 可能降低登入複雜度:不需要 XBOX 使用者驗證
  • 不需要登錄設定:不需要沙箱設定
  • 不需要 XUser API:消除複雜的事件處理常式
  • 自訂身分識別的彈性:實作您自己的跨平台玩家身分識別系統
複雜度:
  • 手動管理玩家:必須實作您自己的跨平台玩家身分識別系統
  • 有限的生態系統整合:無法存取 XBOX Live 社交功能或現有的 XBOX 玩家群
  • 平台橋接:需要自訂解決方案來連接不同平台上的玩家
  • 額外的身分識別基礎結構:需要建置或整合第三方身分識別系統
何時選擇:以 Steam 為主的遊戲、已有自訂身分識別系統的遊戲,或不需要或不想要 XBOX Live 整合的開發案例。 OpenID Connect:對於做法 2,PlayFab 透過 LoginWithOpenIdConnect API 呼叫支援 OpenID Connect 驗證,可與支援 OpenID Connect 標準的自訂身分識別提供者整合。

通用設定 (兩種做法)

無論您選擇哪種實作做法,都需要下列設定步驟。

1. DLL 部署需求

Steam Deck 需要將所有 Unified SDK DLL 與您的遊戲一起部署: 必要的 DLL:
  • libHttpClient.dll - HTTP 作業
  • PlayFabCore.dll - 驗證和核心服務
  • PlayFabGameSave.dll - Game Saves 功能
  • xgameruntime.dll - 核心 SDK 功能和 XBOX 登入
選用的 DLL:
  • PlayFabServices.dll - 其他 PlayFab 服務 (建議)
Steam Deck 部署結構:

2. Steam 整合先決條件

Steam API 整合

平台偵測

在初始化的早期實作平台偵測:

3. UI 回呼實作

Steam Deck UI 需求:無論您選擇哪種實作做法,在 Steam Deck 上所有 PlayFab Game Saves UI 回呼都是必要的。這是因為 Steam Deck 沒有可用於 Game Saves 作業的內建 UI,因此您的應用程式必須提供所有 UI 對話方塊。

Game Saves UI 回呼 (兩種做法都需要)

自訂身分識別和 XBOX 生態系統實作都需要相同的 PlayFab Game Saves UI 回呼:
必要的 Game Saves UI 對話方塊 (兩種做法):
  • 進度對話方塊:在存檔作業期間顯示同步進度
  • 錯誤處理:顯示同步失敗訊息和重試選項
  • 衝突解決:處理裝置之間的存檔衝突
  • 裝置爭用:處理多部裝置存取的案例
  • 儲存空間管理:通知使用者儲存空間配額問題

做法 1:XBOX 生態系統整合 - 完整實作

此做法在 Steam Deck、XBOX 主機、Microsoft Store PC 和其他支援 XBOX 的平台之間提供完整的跨平台同步。如果您的遊戲以 XBOX 平台為目標或需要 XBOX Live 整合,請選擇此做法。

概觀

先決條件:
  • 已完成通用設定 (上方第 1-3 節)
  • 可存取開發沙箱以進行測試
  • 用於登錄設定的系統管理員權限 (僅限開發/測試)

1. 登錄設定

Steam Deck 需要 XBOX Live 沙箱設定才能進行非零售沙箱測試:
設定詳細資料:
  • 機碼:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\XboxLive\Sandbox
  • 值:開發沙箱識別碼 (例如 “XDKS.1”)
  • 時機:必須在 XBOX Live 服務初始化之前設定
  • 權限:需要系統管理員存取權
  • 用法:只有在非零售沙箱 (開發/測試環境) 中測試時才需要

2. XUser 平台事件處理常式

Steam Deck 需要兩組關鍵的事件處理常式來進行 XBOX 驗證:

A. 遠端連線事件處理常式

處理遠端驗證流程 (QR 碼/URL 顯示):

B. SPOP (登入提示) 事件處理常式

處理當使用者的帳戶已在另一部裝置上登入時所使用的 SPOP 登入提示:
處理常式必須呈現 UI,讓玩家選擇動作 (在此登入、切換帳戶或取消),並以所選結果呼叫 XUserPlatformSpopPromptComplete(operation, result)。

3. 驗證 UI 實作

除了 Game Saves UI 回呼 (第 3 節) 之外,XBOX 生態系統整合還需要:
  • 遠端連線對話方塊:顯示 QR 碼和 URL,讓使用者在另一部裝置上進行驗證
  • SPOP 提示對話方塊:允許使用者選取/確認其 XBOX 玩家代號

4. 初始化順序

針對 XBOX 生態系統整合,請依照此初始化順序:

5. 登出實作

Steam Deck 需要特殊的登出處理,以清除儲存的 XBOX 認證:

6. 測試檢查清單

使用此檢查清單驗證您的 XBOX 生態系統實作:
  • 驗證流程:測試遠端連線 (QR 碼/URL) 驗證
  • UI 回呼:確認所有 Game Saves UI 對話方塊都正確顯示
  • SPOP 提示:測試玩家代號選取和確認
  • 認證持續性:測試在應用程式重新啟動之間的登入持續性
  • 登出:確認登出時正確清除認證
  • 同步行為:測試頻繁同步模式和關閉前同步
  • 防止資料遺失:確認在強制關閉案例中遺失的進度最少
  • 跨平台同步:測試 Steam Deck、XBOX 主機和 Microsoft Store PC 之間的存檔同步
  • 登錄設定:確認沙箱設定在開發環境中可運作
  • XUser 事件處理常式:確認遠端連線和 SPOP 處理常式正確運作

做法 2:自訂身分識別實作 - 完整實作

此做法可讓您在沒有 XBOX Live 整合的情況下使用自己的玩家身分識別系統。如果您的遊戲以 Steam 為主,或您已有自訂身分識別系統,請選擇此做法。

概觀

先決條件:
  • 已完成通用設定 (上方第 1-3 節)
  • 供生產使用的自訂玩家身分識別系統
優點:
  • 不需要 XBOX 驗證
  • 不需要登錄設定
  • 不需要系統管理員權限
  • 較簡單的 UI (沒有 QR 碼或玩家代號選取)
限制:
  • 必須實作您自己的跨平台玩家身分識別
  • 沒有 XBOX Live 社交功能
  • 需要自訂平台橋接解決方案

1. 自訂身分識別驗證

實作您自己的身分識別系統,以進行跨平台玩家驗證:

2. 初始化順序

3. 登出實作

4. 測試檢查清單

使用此檢查清單驗證您的自訂身分識別實作:
  • 自訂身分識別系統:測試您的自訂玩家驗證和身分識別系統
  • PlayFab 驗證:使用 LoginWithOpenIdConnect (如果使用 OpenID Connect) 或自訂驗證方法測試 PlayFab 登入
  • 跨平台 Game Saves 同步:測試所有目標平台之間的存檔同步
  • UI 回呼:確認所有 Game Saves UI 對話方塊都正確顯示
  • 衝突解決:測試不同平台上裝置之間的存檔衝突
  • 同步行為:測試頻繁同步模式和關閉前同步
  • 防止資料遺失:確認在強制關閉案例中遺失的進度最少
  • 自訂驗證:測試您身分識別系統的登入/登出流程
  • 平台涵蓋範圍:在您的遊戲所針對的所有平台上進行測試 (不只是 Steam 裝置)
  • 網路案例:測試離線/線上轉換
  • 效能:確認同步作業不會影響遊戲效能

範例程式碼參考

如需兩種做法的完整實作範例,請參閱範例專案:
  • 位置:PlayFabGameSaveSample-Windows
  • 主要檔案:
    • SteamIntegration.cpp/.h - Steam Deck 偵測、登錄設定、驗證處理常式
    • GameSaveIntegrationUI.cpp/.h - 兩種做法的 UI 回呼實作

相關文件

最後修改於 2026年10月8日