支持游戏即服务 (GaaS)

有些游戏不是单独在特定时间点发布,而是一种模式,将它们视为服务,即获得季节或更新内容,从而让这些游戏能够保持多年的新鲜感。 此模型称为游戏即服务 (GaaS)。 GDK 对此模型有良好的支持。 本文档概述了使用 GDK 支持将游戏发布为服务时要考虑的最佳做法。

GDK 采用

每个 GDK 仅支持一年。 虽然现有的游戏可以继续使用已停版发行的 GDK,但对于以服务形式发行的游戏来说,这可能存在问题。 在 GDK 停用后引入新功能的游戏可能会遇到 GDK 早期用例中未出现的 bug 或集成问题。 同样,游戏可能希望利用仅在最新发布的 GDK 中找到的功能。

必须针对单个 GDK 构建游戏。 游戏不能将一个 GDK 中的组件与另一个 GDK 混合。 在控制台上,游戏仅包含单个游戏 OS,各种 GDK 库可能依赖于该基础 OS。 在电脑上,只有一个版本的游戏运行时会加载到游戏过程中,从而创建类似的“单一版本”环境,如主机上所示。

建议 GaaS 游戏定期更新到仍受支持的最近发布的 GDK。

智能交付

通过引入新内容,GaaS 游戏可能会在过去几年中变得越来越大。 玩家的存储空间可能有限。 这可能会影响他们安装游戏最新更新。 尽管玩家确实能够管理自己的存储空间,但使用 智能交付 构建的游戏在如何使用其存储空间方面提供了更大的灵活性和选择性,除了卸载整个游戏之外,还使玩家能够将更多的游戏安装在设备上更长的时间。

使用智能交付,游戏可以利用 功能和配置,选择默认安装内容,并让游戏能够管理要保留安装的游戏部分,以及他们可能想要删除的游戏部件,因为它们不再使用它。

GaaS 游戏可以选择将其新内容放入单独的功能,以启用此类管理。 其理念是,新内容是具有 持久性。 下面是一个建议,可以更轻松地进行管理:

  1. 在游戏布局文件中,使每个持久性对应一个功能
  2. 如果玩家具有该内容的许可证,该 功能 将申请一个或多个可用于指示应安装布局文件中那些区块的 标记
  3. 确保布局文件包含具有应用商店 ID 子级的 部署。 此部署应引用与同一应用商店 ID 对应的单个功能。 添加该部署将确保如果玩家以前购买过此内容,它将自动安装。

    注意

    可能还有其他与耐用品无关的功能和部署。

遵循此建议意味着游戏可以:

  1. 调用 XPackageEnumerateFeatures 来枚举这些功能。
  2. 使用 XPackageFeature 中返回的应用商店 ID 检查许可证、查询更多详细信息或调用商店购买流。

所有大于 40 GB 的游戏都应强烈考虑使用 智能交付。 游戏可以考虑使用耐用品来支持 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。

建议使用 LoadLibraryEx 将可执行代码放入其可执行代码的 DLC 访问中。

另请参阅

可下载内容 (DLC) 功能和部署智能交付XPackageMountWithUiAsync