Microsoft 游戏开发工具包可下载内容 (DLC) 包

GDK 的可下载内容 (DLC) 包是独立于主游戏的包。 DLC 包可以独立于游戏的其余部分或作为购买捆绑包的一部分进行出售和下载。

创建、发布和使用 DLC 包的过程在概念上与用于 Xbox One 主机游戏的对应过程是相同的,但某些包装文件的格式和运行时 API 已更新且更容易使用。

在电脑上使用相同的包装结构支持 DLC 包,并可以同时在主机和电脑使用相同的运行时 API 访问 DLC。

使用 Xbox Series X|S 和 Xbox One 主机,可生成一个 DLC 包存根文件,该文件可用于这两个平台。 如果 DLC 包包含真实内容差异,请使用 TargetDeviceFamilyForDLC 元素生成特定于平台的 DLC 包。

设置你的主程序包标识

  1. 在主游戏产品的游戏设置页面中查找主应用程序包的 Microsoft Store ID(由 12 个字符构成的字母数字字符串)。 (示例:9PNX12345AAA)

  2. 将 StoreId 元素添加到主程序包的 MicrosoftGame.config 文件中。

<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- Content omitted for brevity. -->
    <StoreId>**REPLACE WITH STOREID**</StoreId>
</Game>

创建 DLC 包

  1. 在合作伙伴中心内您的主要产品下的附加内容菜单中创建您的 DLC 包附加内容。

  2. 将 DLC 包的所有内容放入单个目录中。

  3. 使用下面的示例数据在与你的 DLC 包内容相同的目录中创建 MicrosoftGame.config 文件。

  4. 在 TargetDeviceFamilyForDLC 字段中,指定要为其创建此 DLC 包的目标设备系列。 允许的值为 Xbox One、Xbox Series X|S 或 PC。 对于 XboxOne 和 Xbox Series X|S 必需指定该值,对于 PC 则可选指定该值,前提是在使用 makepkg.exe 生成 DLC .MSIXVC 文件时使用了 /pc 标志。

  5. 在合作伙伴中心的游戏设置页面中查找主应用程序包的程序包/标识/名称字段,然后将标识名称放入 MainPackageDependency 字段中。 例如,MyPackageName

  6. 从合作伙伴中心中查找您的附加内容/DLC 程序包的 Microsoft Store ID(由 12 个字符构成的字母数字字符串),然后将其放置在下面的 StoreId 字段中。

  7. 在主游戏产品的游戏设置页面中查找主应用程序包的 Microsoft Store ID(由 12 个字符构成的字母数字字符串)。 将其放入下面的 AllowedProductId 字段中。 例如,9PNX12345AAA

<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <Identity Name="**REPLACE**"
        Publisher="**REPLACE**"
        Version="1.0.0.0"/>
    <ShellVisuals DefaultDisplayName="**REPLACE**"
                  PublisherDisplayName="**REPLACE**"
                  StoreLogo="Storelogo.png"
                  Square150x150Logo="Logo.png"
                  Square44x44Logo="SmallLog.png"
                  Description="**REPLACE**"
                  BackgroundColor="#000040"
                  SplashScreenImage="SplashScreen.png"/>
    <StoreId>**REPLACE WITH STOREID OF ADD-ON / DLC**</StoreId>
    <TargetDeviceFamilyForDLC>**REPLACE**</TargetDeviceFamilyForDLC>
    <AllowedProducts>
      <AllowedProduct>**REPLACE WITH STOREID OF BASE GAME**</AllowedProduct>
    </AllowedProducts>

<!-- The Desktop Registration section is for PC only. -->
    <DesktopRegistration>
      <MainPackageDependency Name="**REPLACE_WITH_IDENTITY_OF_PARENT_PRODUCT**" />
      <ProcessorArchitecture>x64</ProcessorArchitecture>
    </DesktopRegistration>
</Game>
  1. 在包含具有所有游戏内容的单个子文件夹的文件夹中打开 Microsoft 游戏开发工具包 (GDK) 命令提示符,并运行以下命令:
    MakePkg genmap /f layout.xml /d <Your_dlc_folder>

  2. 如果你在为电脑创建 DLC,使用以下命令:
    MakePkg pack /f layout.xml /lt /d <Your_dlc_folder_name> /pc /pd <Output_Folder_Name>

  3. 如果你在为主机创建 DLC,使用以下命令:
    MakePkg pack /f layout.xml /lt /d <Your_dlc_folder_name> /pd <Output_Folder_Name>

在以前的 SDK 中,你可以在命令行上使用 /ProductID 标志传递主要游戏的产品 ID GUID。 使用配置 DLC 程序包关系的 MicrosoftGame.Config 模型 - 您应该不再使用 /ProductID 参数。 MakePkg 会基于 MicrosoftGame.config 文件中列出的 StoreID 将相应信息自动放置到您的程序包中。

在运行时从您的游戏访问 DLC

在 DLC 包中组织内容的基本步骤如下:

  1. 枚举此包
  2. 检查目标包的有效用户许可
  3. 从枚举结果中获取 packageIdentifier,并将其传递给 XPackageMount API。

除非在 MicrosoftGame.config 中为 DlcCompatibility 字段指定了 XboxOne,否则在 Xbox Series X|S 主机上,只能使用具有 Xbox Series X|S TargetDeviceFamilyForDLC 的 DLC 包:

    <VirtualMachine>
        <DlcCompatibility>XboxOne</DlcCompatibility>
    </VirtualMachine>

Xbox Series X|S DLC 只能安装在快速存储上,而 Xbox One DLC 则没有此类限制,因此在选择加入游戏之前,请将此因素考虑在内。

部署和测试 DLC 包

请确保在安装 DLC 包之前安装主游戏包。

对于 Xbox 主机,使用以下命令安装 DLC 包:xbapp install <Your_DLC_Package.xvc>

对于 PC,使用以下命令安装 DLC 包:wdapp install <Your_DLC_Package.msixvc>

DLC内容也可以从包含松散文件的目录中注册,并且还可以使用从Microsoft Store下载的软件包进行测试。

有关详细信息,请参阅 管理和许可可下载内容"一文。