다음을 통해 공유


지능형 전송 기능 및 레시피

이 항목은 게임 초기 및 이후 설치 시간을 개선하기 위한 기능 및 레시피를 사용하는 방법을 설명합니다. 기능과 레시피는 함께 작동하여 사용자가 초기 설치하는 경우뿐만 아니라 나중에 셸 내에서 추가 및 제거할 수 있는 기본 게임 내 콘텐츠 그룹을 정의합니다. 런타임 API를 사용하여 기능의 설치 상태를 동적으로 쿼리하고 기능의 추가 및 제거를 트리거할 수도 있습니다.

기능은 개발자 대상 ID 문자열 특성을 지정하는 XML 요소입니다. 또한 셸에 표시할 사용자에게 표시되는 현지화 가능 표시 이름 및 이미지를 지정합니다. 이 기능은 하나 이상의 태그를 지정합니다. 설치 및 업데이트 시 시스템은 설치된 기능에서 참조하는 모든 태그를 찾아 해당 태그가 포함된 모든 청크를 설치합니다.

Recipe는 설치할 기능 목록을 지정하는 XML 요소입니다. 언제나 기본 레시피가 있으며 레시피에 포함된 기능은 항상 설치되어 있습니다. 추가 레시피를 정의할 수 있습니다. 다음 코드와 같이 사용자 또는 현재 콘솔에 지정된 StoreIds 중 하나에 대한 사용 권한이 있는 경우 레시피는 설치 시 활성화됩니다.

<Recipes>
    <!-- A recipe is always active if it has no child StoreId elements—the name "default" is a convention. -->
    <Recipe Id="default" IncludedFeatures="CampaignFeature;MultiPlayerFeature"/>

    <!-- This recipe is active by default, but only on Xbox Series X hardware.  -->
    <Recipe Id="default-anaconda" IncludedFeatures="HDFeature" Devices="Xbox-Anaconda"/>

    <!-- PremiumProduct recipe is active, which means PremiumFeature installs if user owns 9PXXXXXXXXXX. -->
    <Recipe Id="PremiumProduct" IncludedFeatures="PremiumFeature">
        <StoreId>9PXXXXXXXXXX</StoreId>
    </Recipe>
</Recipes>
<Features>
    <Feature Id="CampaignFeature" DisplayName="ms-resource:CampaignFeatureName" Image="campaignlogo.png" Tags="Campaign1;Campaign2"/>
    <Feature Id="MultiPlayerFeature" DisplayName="ms-resource:MultiPlayerFeatureName" Image="MPlogo.png" Tags="Multiplayer1;Multiplayer2" />
    <Feature Id="HDFeature" DisplayName="ms-resource:HDTexturesFeatureName" Image="HDlogo.png" Tags="hd"/>
    <Feature Id="PremiumFeature" DisplayName="ms-resource:PremiumFeatureName" Image="Premiumlogo.png" Tags="extras"/>
</Features>


<Chunk Id="8000" Tags="Campaign1">
<Chunk Id="8001" Tags="Campaign2">
<!-- This chunk uses the # character, so it's only installed if both the Campaign and HD features are active. -->
<Chunk Id="8001" Tags="Campaign1#hd"> 

<Chunk Id="9000" Tags="Multiplayer1">
<!-- This chunk uses the # character, so it's only installed if both the Multiplayer and HD features are active. -->
<Chunk Id="9001" Tags="Multiplayer1#hd"> 

<!-- This chunk is installed if either the Multiplayer or SinglePlayer features are active. -->
<Chunk Id="10000" Tags="Multiplayer1;Campaign1">
<!-- This chunk is installed if either the (Multiplayer feature and HD feature) or (SinglePlayer feature and HD feature) are active. -->
<Chunk Id="10001" Tags="Multiplayer1#hd;Campaign1#hd">

<Chunk Id="11000" Tags="extras">
<!-- This chunk uses the # character, so it's only installed if both the Premium and HD features are active. -->
<Chunk Id="11001" Tags="extras#hd"> 

참고 항목

기능에는 세미콜론으로 구분된 두 개 이상의 태그 속성이 포함될 수 있습니다. 청크의 태그 중 하나라도 활성 기능에 의해 포함된 경우 청크가 설치에 포함됩니다. # 기호는 #의 양쪽에 있는 태그가 활성 상태인 경우 태그를 설치합니다.

기능 표시 이름 현지화

DisplayNames의 현지화는 MicrosoftGame.config 파일 내의 이름 특성의 현지화와 동일한 방식으로 수행됩니다. 이 작업은 ms-resource:name 형식과 게임의 문자열 디렉토리에 있는 .resw 파일 및 적절한 이름의 하위 디렉토리에서 로케일별 문자열을 함께 사용하여 수행됩니다. 자세한 내용은 MicrosoftGame.config 현지화를 참조하세요.

참고 항목

MicrosoftGame.config, 지능형 전송과 함께 이용되는 현지화된 문자열과 이미지는 게시된 패키지 내 개발자 샌드박스나 리테일에서 암호화되지 않습니다. 타이틀, 아이콘 및 중요한 내용에 대해 게임 내 자리 표시자 값을 사용합니다. 중요한 콘텐츠에는 개발 중, 타이틀을 공개하기 전에 지능형 전송에서 참조하는 콘텐츠 또는 타이틀에 포함된 특정 콘텐츠가 포함됩니다.

숨겨진 기능

기능이 숨김으로 표시되어 이로 인해 설치 시 선택 가능한 옵션으로 표시되는지 또는 타이틀 설치 후 셸을 관리할 때 사용자가 확인할 수 없습니다. 숨김 기능을 사용하거나 제거할 수 있는 유일한 방법은 타이틀 내의 API를 사용하는 것이기 때문에 이 기능을 사용할 때 주의하세요. 타이틀에서 검색된 버그는 해당 버그를 수정하기 위한 콘텐츠 업데이트를 제공할 때까지 콘텐츠에 액세스할 수 없게 될 수 있습니다. 다음 코드는 숨김으로 표시된 기능의 예입니다.

  <Feature Id="HiddenFeature" Hidden="true" Tags="HiddenFeature1" />

기능 설치 상태 확인

기능을 사용하여 해당 기능에 지정된 태그가 있는 모든 청크가 있는지 확인할 수 있습니다. 이러한 런타임 쿼리를 수행할 때 장치 및 언어 지정자를 고려합니다. 기능 안에 장치 또는 언어에 한정된 콘텐츠가 있다면 해당 기능 안에 현재 장치에 적용되는 한 언어와 모든 청크가 설치되어 있는 한 계속해서 true(으)로 반환됩니다.

예를 들어 캠페인 기능의 자산이 청크 8000, 8001, 8002에 들어 있다면 XPackageFindChunkAvailability 메서드를 호출하여 그 청크 집합이 제대로 설치되어 플레이할 수 있는지 판단하지 않고 세 청크 모두에 사용자 지정 태그 "campaign1"을 지정하고 캠페인 기능에서 "campaign1"을 참조할 수 있습니다. 그런 다음 캠페인 기능 ID가 있는 XPackageChunkSelector를 사용하여 XPackageFindChunkAvailability 메서드를 호출하면 해당 데이터 세트의 설치 상태를 쉽게 확인할 수 있습니다.

참고 항목

지능형 전송 소개
XPackageChunkSelector
XPackageInstallChunks
MicrosoftGame.Config 지역화