GDK 采用
每个 GDK 仅支持一年。虽然已有游戏可以继续使用已停止支持的 GDK 发布,但对于以服务方式 发布的游戏而言这可能会有问题。在 GDK 停止支持之后引入新功能的游戏可能会遇到早期 GDK 使用中未见过的 Bug 或集成问题。同样,游戏可能希望利用只出现在最新发布的 GDK 中的 功能。 一款游戏必须基于单一 GDK 构建。游戏不能混用来自不同 GDK 的组件。在主机上,游戏只包含 单一的 Game OS,而各种 GDK 库可能对该底层 OS 存在依赖。在 PC 上,只有一个版本的 gaming runtime 会被加载到游戏进程,从而创建与主机上类似的“单版本”环境。 我们建议 GaaS 游戏定期更新到仍受支持的较新发布的 GDK。智能交付
随着新内容的引入,GaaS 游戏可能会随着时间的推移变得越来越大。玩家的存储空间可能有限。 这可能会影响他们安装游戏最新更新的能力。虽然玩家确实有能力管理自己的存储空间,但使用 智能交付 构建的游戏能为玩家提供更大的灵活性,让他们在使用存储空间方面有更多选择, 而不仅限于整体卸载整个游戏,并让玩家能够将更多游戏在设备上保留更长时间。 使用智能交付,游戏可以利用 feature 和 recipe,选择默认安装的内容,并让游戏能够管理它 希望保留哪些部分,以及可能希望移除哪些不再使用的部分。 GaaS 游戏可以选择将新内容放入单独的 feature 中以启用此类管理。其思路是新内容是一个 持久内容(durable)。以下是一种便于管理的建议:- 在游戏的布局文件中,让每个 durable 对应一个 Feature。
- Feature 声明一个或多个 Tags,用于指示如果玩家拥有该内容的许可证,布局文件中的哪些 区块应被安装。
- 确保布局文件中包含一个带有 Store ID 子节点的 Recipe。该 recipe 应
引用一个与相同 Store ID 对应的 feature。添加该 recipe 可确保如果玩家之前购买过
此内容,则会自动安装。
[!NOTE] 可能还会有其他与 durable 无关的 feature 和 recipe。
- 调用 XPackageEnumerateFeatures 枚举 feature。
- 使用 XPackageFeature 中返回的 Store ID 检查许可证、 查询更多详情或触发商店购买流程。
可下载内容
一些 GaaS 游戏可能不选择持续演进其基础包,而是选择使用 可下载内容(DLC) 来在多年内持续演进。游戏可以选择 将资源或可执行代码放入该 DLC。对于可执行代码有两条可能的路径:DLL 和 EXE。 如果游戏将 DLL 放入其 DLC,可以:- 使用 XPackageMountWithUiAsync 挂载该 DLC。
- 使用 LoadLibraryEx。
- 所有先前挂载的 DLC 保持挂载。
- 使用 XPackageMountWithUiAsync 挂载该 DLC。
- 使用挂载 DLC 中的路径调用 XLaunchNewGames。
- 现有游戏进程将被终止。
- 除 XLaunchNewGames 的目标之外的所有 DLC 都将被卸载。
- G: 驱动器将继续指向基础包的根,而不是新启动的 EXE。
参考 API 文档
- XPackage(API 内容)
- Functions
- Structures
- xgame(API 内容)
- Functions
