> ## 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.

# Paquetes de contenido descargable (DLC) del GDK

> Paquetes de contenido descargable (DLC) del Microsoft Game Development Kit

Los paquetes de contenido descargable (DLC) del Microsoft Game Development Kit (GDK) son paquetes independientes del juego principal. Los paquetes de DLC se venden y descargan de forma independiente del resto del juego, o como parte de lotes de compra.

El proceso de creación, publicación y consumo de paquetes de DLC es conceptualmente el mismo que para los títulos de consola XBOX One, pero algunos de los formatos de archivo de empaquetado y las API en tiempo de ejecución se han actualizado y son más fáciles de usar.

Los paquetes de DLC son compatibles con PC mediante la misma estructura de empaquetado, y se accede a ellos con las mismas API en tiempo de ejecución tanto en consola como en PC.

Con las consolas XBOX Series X|S y XBOX One, se puede generar un archivo stub de paquete de DLC y usarse para ambas plataformas. Si el paquete de DLC contiene diferencias de contenido reales, usa el elemento `TargetDeviceFamilyForDLC` para generar paquetes de DLC específicos de cada plataforma.

## Configurar la identidad del paquete principal

1. Busca el Store ID (cadena alfanumérica de 12 caracteres) del paquete de aplicación principal en la página **Game Setup** del producto de tu juego principal. (Ejemplo: 9PNX12345AAA)

2. Agrega el elemento `StoreId` al archivo MicrosoftGame.config de tu paquete principal.

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

## Crear un paquete de DLC

1. Crea el complemento de tu paquete de DLC en Partner Center desde el menú **Add-Ons** de tu producto principal.

2. Coloca todo el contenido de tu paquete de DLC en un único directorio.

3. Crea un archivo MicrosoftGame.config en el mismo directorio que el contenido de tu paquete de DLC usando los datos de ejemplo siguientes.

4. Especifica la **Target Device Family** para la que se crea este paquete de DLC en el campo `TargetDeviceFamilyForDLC`. Los valores permitidos son XBOX One, XBOX Series X|S o PC. Es obligatorio especificarlo para XBOX One y XBOX Series X|S, y es opcional en PC siempre que se use la marca `/pc` al generar el archivo .MSIXVC de DLC mediante makepkg.exe.

5. Busca el campo **Package/Identity/Name** del paquete de aplicación principal en la página **Game Setup** de Partner Center y, a continuación, coloca el Identity Name en el campo `MainPackageDependency`. Por ejemplo, MyPackageName

6. Busca el Store ID (cadena alfanumérica de 12 caracteres) de tu paquete de complemento/DLC en Partner Center y, a continuación, colócalo en el campo `StoreId` como se indica a continuación.

7. Busca el Store ID (cadena alfanumérica de 12 caracteres) del paquete de aplicación principal en la página **Game Setup** del producto de tu juego principal. Colócalo en el campo `AllowedProduct` como se indica a continuación. Por ejemplo, 9PNX12345AAA

```xml theme={null}
<?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>
```

8. Abre un símbolo del sistema del Microsoft Game Development Kit (GDK) en la carpeta que contiene una única carpeta con todo el contenido de tu juego y, a continuación, ejecuta el siguiente comando.

`MakePkg genmap /f layout.xml /d <Your_dlc_folder>`

9. Si estás creando DLC para PC, usa el siguiente comando.

`MakePkg pack /f layout.xml /lt /d <Your_dlc_folder_name> /pc /pd <Output_Folder_Name>`

10. Si estás creando DLC para consola, usa el siguiente comando.

`MakePkg pack /f layout.xml /lt /d <Your_dlc_folder_name> /pd <Output_Folder_Name>`

En SDK anteriores, se pasaba el GUID del Product ID del juego principal en la línea de comandos con la marca `/ProductID`.
Con el modelo de MicrosoftGame.Config para configurar las relaciones de tus paquetes de DLC, no uses el parámetro `/ProductID`. MakePkg coloca automáticamente la información adecuada en tu paquete según los StoreID indicados en tu archivo MicrosoftGame.config.

## Acceso a los paquetes de DLC en tiempo de ejecución desde el juego

Los pasos básicos para consumir contenido dentro de un paquete de DLC son los siguientes.

1. [Enumerar los paquetes](/reference/system/xpackage/functions/xpackageenumeratepackages)
2. [Comprobar que existe una licencia de usuario válida para el paquete de destino](https://learn.microsoft.com/build/store/commerce/fundamentals/xstore-manage-and-license-optional-packages)
3. Toma el `packageIdentifier` de los resultados de la enumeración y pásalo a la API [XPackageMount](/reference/system/xpackage/functions/xpackagemount).

En las consolas XBOX Series X|S, solo puedes consumir paquetes de DLC con un `TargetDeviceFamilyForDLC` de XBOX Series X|S a menos que especifiques `XboxOne` en el campo `DlcCompatibility` de tu MicrosoftGame.config:

```xml theme={null}
    <VirtualMachine>
        <DlcCompatibility>XboxOne</DlcCompatibility>
    </VirtualMachine>
```

El DLC de XBOX Series X|S solo puede instalarse en almacenamiento rápido, mientras que el DLC de XBOX One no tiene esa restricción, así que asegúrate de tenerlo en cuenta antes de habilitar tu juego.

## Implementación y prueba de un paquete de DLC

Asegúrate de instalar el paquete de tu juego principal antes de instalar tu paquete de DLC.

Para consola XBOX, instala tu paquete de DLC con el siguiente comando.
`xbapp install <Your_DLC_Package.xvc>`

Para PC, instala tu paquete de DLC con el siguiente comando.
`wdapp install <Your_DLC_Package.msixvc>`

El contenido de DLC también puede registrarse desde un directorio con archivos sueltos, y las pruebas también pueden realizarse con paquetes descargados desde Microsoft Store.

Para obtener más información, consulta [Administración y concesión de licencias de contenido descargable](https://learn.microsoft.com/build/store/commerce/fundamentals/xstore-manage-and-license-optional-packages).

## Documentación de referencia de la API

* [XPackage (contenido de la API)](/reference/system/xpackage/xpackage_members)
  * Funciones
    * [xpackageenumeratepackages](/reference/system/xpackage/functions/xpackageenumeratepackages)
    * [XPackageMount](/reference/system/xpackage/functions/xpackagemount)
