> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 支援遊戲即服務 (GaaS)

> 支援遊戲即服務 (GaaS)

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

## GDK 採用

每個 GDK 僅支援一年。雖然現有遊戲可以繼續使用已淘汰的 GDK 出貨，但這對於以服務形式出貨的遊戲
可能會造成問題。在 GDK 淘汰後推出新功能的遊戲，可能會遇到在先前 GDK 使用案例中未曾出現的
錯誤或整合問題。同樣地，遊戲可能想要利用僅在最新發行之 GDK 中才有的
功能。

遊戲必須針對單一 GDK 建置。遊戲不能混用不同 GDK 的元件。在
主機上，遊戲只包含單一 Game OS，而各種 GDK 程式庫可能會相依於該基礎 OS。
在 PC 上，只有一個版本的遊戲執行階段會載入遊戲處理程序，形成與主機類似的「單一版本」環境。

建議 GaaS 作品定期更新至仍受支援的較新發行
GDK。

## Intelligent Delivery

隨著新內容的推出，GaaS 作品可能會逐年變得越來越大。玩家
的儲存空間可能有限。這可能會影響他們安裝遊戲最新更新的能力。雖然玩家確實能夠管理自己的儲存空間，
但使用 [Intelligent Delivery](/zh-TW/build/core-features/common/packaging/overviews/intelligentdelivery) 建置的遊戲能讓玩家在使用儲存空間時擁有更多彈性和
選擇，而不只是解除安裝整個遊戲，也能讓
玩家在其裝置上保留更多遊戲更長的時間。

使用 Intelligent Delivery，遊戲可以利用
[功能和配方](/zh-TW/build/core-features/common/packaging/intelligentdelivery-features-recipes)，選擇預設要安裝的內容，
並讓遊戲能夠管理要保留安裝遊戲的哪些部分，
以及因為不再使用而可能想要移除的部分。

GaaS 作品可以選擇將其新內容放入個別的功能中，以實現這類
管理。其概念是新內容是一個 [耐久性項目](https://learn.microsoft.com/build/store/commerce/fundamentals/xstore-dwobs)。以下是一項讓管理更容易的
建議：

1. 在遊戲的配置檔案中，讓每個耐久性項目對應一個 **Feature**。
2. **Feature** 會宣告一或多個 **Tags**，可用來指出如果玩家擁有該內容的授權，
   應安裝配置檔案中的哪些區塊。
3. 確定配置檔案包含具有 Store ID 子項目的 **Recipe**。此配方
   應參考對應至相同 Store ID 的單一功能。新增配方可
   確保如果玩家先前已購買此內容，該內容會自動
   安裝。
   > \[!NOTE]
   > 可能還有其他與耐久性項目無關的功能和配方。

遵循此建議表示遊戲接著可以：

1. 呼叫 [XPackageEnumerateFeatures](/zh-TW/reference/system/xpackage/functions/xpackageenumeratefeatures) 來列舉功能。
2. 使用 [XPackageFeature](/zh-TW/reference/system/xpackage/structs/xpackagefeature) 中傳回的 Store ID 來檢查
   授權、查詢更多詳細資料，或叫用市集購買流程。

所有大於 40 GB 的遊戲都應強烈考慮使用
[Intelligent Delivery](/zh-TW/build/core-features/common/packaging/overviews/intelligentdelivery)。遊戲可以考慮使用耐久性項目來支援 GaaS。

## 可下載內容

有些 GaaS 作品可能不會持續演進其基礎套件，而是選擇多年來使用
[可下載內容 (DLC)](/zh-TW/build/core-features/common/packaging/packaging-downloadable-content-dlc) 來演進。遊戲可以選擇
將資產或可執行程式碼放入該 DLC。對於可執行程式碼，有兩種可能的
途徑：DLL 和 EXE。

如果遊戲將 DLL 放入其 DLC，則可以：

1. 使用 [XPackageMountWithUiAsync](/zh-TW/reference/system/xpackage/functions/xpackagemountwithuiasync) 掛接該 DLC。
2. 使用 [LoadLibraryEx](https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexa)。
3. 所有先前掛接的 DLC 都會保持掛接狀態。

如果遊戲將 EXE 放入其 DLC，則可以：

1. 使用 [XPackageMountWithUiAsync](/zh-TW/reference/system/xpackage/functions/xpackagemountwithuiasync) 掛接該 DLC。
2. 使用已掛接 DLC 中的路徑呼叫 [XLaunchNewGames](/zh-TW/reference/system/xgame/functions/xlaunchnewgame)。
3. 現有的遊戲處理程序將會終止。
4. 除了 **XLaunchNewGames** 的目標之外，所有 DLC 都會被卸載。
5. **G:** 磁碟機會繼續指向基礎套件的根目錄，而不是新
   啟動的 EXE。

建議將可執行程式碼放入 DLC 的遊戲使用
[LoadLibraryEx](https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexa) 存取該可執行程式碼。

## 參考 API 文件

* [XPackage (API 內容)](/zh-TW/reference/system/xpackage/xpackage_members)
  * 函式
    * [XPackageEnumerateFeatures](/zh-TW/reference/system/xpackage/functions/xpackageenumeratefeatures)
    * [XPackageMountWithUiAsync](/zh-TW/reference/system/xpackage/functions/xpackagemountwithuiasync)
  * 結構
    * [XPackageFeature](/zh-TW/reference/system/xpackage/structs/xpackagefeature)
* [xgame (API 內容)](/zh-TW/reference/system/xgame/xgame_members)
  * 函式
    * [XLaunchNewGames](/zh-TW/reference/system/xgame/functions/xlaunchnewgame)

## 另請參閱

[可下載內容 (DLC)](/zh-TW/build/core-features/common/packaging/packaging-downloadable-content-dlc)
[功能和配方](/zh-TW/build/core-features/common/packaging/intelligentdelivery-features-recipes)
[Intelligent Delivery](/zh-TW/build/core-features/common/packaging/overviews/intelligentdelivery)
[XPackageMountWithUiAsync](/zh-TW/reference/system/xpackage/functions/xpackagemountwithuiasync)


## Related topics

- [支持游戏即服务(GaaS)](/zh-CN/build/core-features/common/packaging/supporting-games-as-a-service.md)
- [使用 PlayFab 加入後端服務](/zh-TW/home/build-first-title/add-backend-services.md)
- [XBOX 遊戲的 XBOX 需求](/zh-TW/publishing/certification/xbox-requirements.md)
- [XBOX 需求與原則支援內容](/zh-TW/publishing/certification/xr/overview.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
