Skip to main content
有些遊戲不再是在特定時間點發行的獨立遊戲,而是轉向將遊戲視為服務的模式,透過季度或更新讓 遊戲在多年間保持新鮮感。此模式稱為遊戲即服務 (GaaS)。GDK 對此模式提供了良好的 支援。本文件概述使用 GDK 支援以服務形式發行遊戲時應考量的最佳做法。

GDK 採用

每個 GDK 僅支援一年。雖然現有遊戲可以繼續使用已淘汰的 GDK 出貨,但這對於以服務形式出貨的遊戲 可能會造成問題。在 GDK 淘汰後推出新功能的遊戲,可能會遇到在先前 GDK 使用案例中未曾出現的 錯誤或整合問題。同樣地,遊戲可能想要利用僅在最新發行之 GDK 中才有的 功能。 遊戲必須針對單一 GDK 建置。遊戲不能混用不同 GDK 的元件。在 主機上,遊戲只包含單一 Game OS,而各種 GDK 程式庫可能會相依於該基礎 OS。 在 PC 上,只有一個版本的遊戲執行階段會載入遊戲處理程序,形成與主機類似的「單一版本」環境。 建議 GaaS 作品定期更新至仍受支援的較新發行 GDK。

Intelligent Delivery

隨著新內容的推出,GaaS 作品可能會逐年變得越來越大。玩家 的儲存空間可能有限。這可能會影響他們安裝遊戲最新更新的能力。雖然玩家確實能夠管理自己的儲存空間, 但使用 Intelligent Delivery 建置的遊戲能讓玩家在使用儲存空間時擁有更多彈性和 選擇,而不只是解除安裝整個遊戲,也能讓 玩家在其裝置上保留更多遊戲更長的時間。 使用 Intelligent Delivery,遊戲可以利用 功能和配方,選擇預設要安裝的內容, 並讓遊戲能夠管理要保留安裝遊戲的哪些部分, 以及因為不再使用而可能想要移除的部分。 GaaS 作品可以選擇將其新內容放入個別的功能中,以實現這類 管理。其概念是新內容是一個 耐久性項目。以下是一項讓管理更容易的 建議:
  1. 在遊戲的配置檔案中,讓每個耐久性項目對應一個 Feature。
  2. Feature 會宣告一或多個 Tags,可用來指出如果玩家擁有該內容的授權, 應安裝配置檔案中的哪些區塊。
  3. 確定配置檔案包含具有 Store ID 子項目的 Recipe。此配方 應參考對應至相同 Store ID 的單一功能。新增配方可 確保如果玩家先前已購買此內容,該內容會自動 安裝。
    [!NOTE] 可能還有其他與耐久性項目無關的功能和配方。
遵循此建議表示遊戲接著可以:
  1. 呼叫 XPackageEnumerateFeatures 來列舉功能。
  2. 使用 XPackageFeature 中傳回的 Store ID 來檢查 授權、查詢更多詳細資料,或叫用市集購買流程。
所有大於 40 GB 的遊戲都應強烈考慮使用 Intelligent Delivery。遊戲可以考慮使用耐久性項目來支援 GaaS。

可下載內容

有些 GaaS 作品可能不會持續演進其基礎套件,而是選擇多年來使用 可下載內容 (DLC) 來演進。遊戲可以選擇 將資產或可執行程式碼放入該 DLC。對於可執行程式碼,有兩種可能的 途徑:DLL 和 EXE。 如果遊戲將 DLL 放入其 DLC,則可以:
  1. 使用 XPackageMountWithUiAsync 掛接該 DLC。
  2. 使用 LoadLibraryEx。
  3. 所有先前掛接的 DLC 都會保持掛接狀態。
如果遊戲將 EXE 放入其 DLC,則可以:
  1. 使用 XPackageMountWithUiAsync 掛接該 DLC。
  2. 使用已掛接 DLC 中的路徑呼叫 XLaunchNewGames。
  3. 現有的遊戲處理程序將會終止。
  4. 除了 XLaunchNewGames 的目標之外,所有 DLC 都會被卸載。
  5. G: 磁碟機會繼續指向基礎套件的根目錄,而不是新 啟動的 EXE。
建議將可執行程式碼放入 DLC 的遊戲使用 LoadLibraryEx 存取該可執行程式碼。

參考 API 文件

另請參閱

可下載內容 (DLC) 功能和配方 Intelligent Delivery XPackageMountWithUiAsync
Last modified on October 6, 2026