本指南專門涵蓋使用 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 支援之前,請確定您已:- 完成 2025 年 10 月 GDK 設定:依照 2025 年 10 月 GDK 實作指南操作
- Steam API 整合:基本的 Steam API 初始化和 Steam Deck 偵測
- 選擇整合做法:在 XBOX 生態系統或自訂身分識別整合之間做出決定 (請參閱下方)
- 所有必要的 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 碼驗證和玩家代號選取對話方塊
做法 2:自訂身分識別實作 (替代方案)
優點:- 可能降低登入複雜度:不需要 XBOX 使用者驗證
- 不需要登錄設定:不需要沙箱設定
- 不需要 XUser API:消除複雜的事件處理常式
- 自訂身分識別的彈性:實作您自己的跨平台玩家身分識別系統
- 手動管理玩家:必須實作您自己的跨平台玩家身分識別系統
- 有限的生態系統整合:無法存取 XBOX Live 社交功能或現有的 XBOX 玩家群
- 平台橋接:需要自訂解決方案來連接不同平台上的玩家
- 額外的身分識別基礎結構:需要建置或整合第三方身分識別系統
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 登入
PlayFabServices.dll- 其他 PlayFab 服務 (建議)
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 回呼:- 進度對話方塊:在存檔作業期間顯示同步進度
- 錯誤處理:顯示同步失敗訊息和重試選項
- 衝突解決:處理裝置之間的存檔衝突
- 裝置爭用:處理多部裝置存取的案例
- 儲存空間管理:通知使用者儲存空間配額問題
做法 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 登入提示: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 回呼實作
