Creating a disc subset

This topic describes how to create a disc that has a subset of the game’s content (also called disc subsetting) so that it fits on one disc.

Game packages are often larger than what fits on a 50 GB Blu-ray Disc. To make a large game available on discs, you must either put the game on more than one disc (see Multi-disc functionality or trim the game down to a subset of the content so that it fits on one disc.

Exclude content from your game by using the Exclude attribute

You can create a subset of content by using the Exclude attribute in the subset .xml file that you pass to splitpkg. Use Exclude to exclude devices, features, tags, or languages. For example, your game might have sections for a single-player campaign and multiplayer online play. You might already be using Intelligent Delivery to offer the Campaign and Multiplayer features. For the disc, you might decide to offer only the Campaign feature. You can create a game disc that excludes the Multiplayer feature as shown in the following example.

<Packages>
  <Package Name="GameDisc" MaxDiscs="1">
    <Exclude Features="Multiplayer" />
  </Package>
</Packages>

When this game disc is installed, it doesn’t have content for the Multiplayer feature.

Note

If the game receives an update later (or the update is installed when the game disc is installed), the Multiplayer feature is downloaded from the Xbox content delivery network.

Remove content from your game

You can reduce the size of a game disc by removing content from your game. As an example, perhaps you have both the Campaign and Multiplayer features, but they each also have optional 4K assets. You can declare a chunk as requiring multiple tags by separating them with # as shown in the following example.

<Features>
  <Feature Id="Campaign" DisplayName="Campaign" Tags="Campaign;4kAssets"
  <Feature Id="Multiplayer" DisplayName="Multiplayer" Tags="Multiplayer;4kAssets"
</Features>
 
<Chunk Id="1" Tags="Campaign" />
<Chunk Id="2" Tags="Campaign#4kAssets" Devices="Xbox-Scarlett" />
<Chunk Id="3" Tags="Multiplayer" />
<Chunk Id="4" Tags="Multiplayer#4kAssets" Devices="Xbox-Scarlett" />

Here, chunk 2 is downloaded only to Xbox Series X|S consoles, and only if both Campaign and 4kAssets are specified. When creating a disc subset file, all 4kAssets can be excluded from the game disc as shown in the following example.

<Packages>
  <Package Name="GameDisc" MaxDiscs="1">
    <Exclude Tags="4kAssets" />
  </Package>
</Packages>

Another way to use this type of tagging is to define a tag for all the chunks that you don’t want on the game disc as shown in the following example.

<Features>
  <Feature Id="Campaign" DisplayName="Campaign" Tags="Campaign"
  <Feature Id="Multiplayer" DisplayName="Multiplayer" Tags="Multiplayer"
  <Feature Id="Default" Tags="OmitFromDisc" Hidden="true"
</Features>
 
<Recipes>
  <Recipe Id="Default" IncludedFeatures="Default" />
</Recipes>
 
<Chunk Id="1" Tags="Campaign" />
<Chunk Id="2" Tags="Multiplayer" />
<Chunk Id="3" Tags="OmitFromDisc" />
<Chunk Id="4" Tags="OmitFromDisc" />

Here, any chunks with OmitFromDisc tags get added to a default feature that’s always included by default. (This is because there is a recipe that includes the feature ID that has no Microsoft Store ID elements). Creating this subset .xml file for splitpkg prevents any OmitFromDisc chunks from becoming part of the game disc as shown in the following example.

<Packages>
  <Package Name="GameDisc" MaxDiscs="1">
    <Exclude Tags="OmitFromDisc" />
  </Package>
</Packages>