DLC 개발 워크플로
DLC 콘텐츠 구성 방법 및 MicrosoftGame.config를 통해 기본 게임과 연결하는 방법에 대해 자세히 알아보려면 Downloadable content (DLC) packages 문서를 참고하세요. DLC를 설치하는 방법에는 세 가지가 있습니다.1. Loose DLC 배포
loose DLC MicrosoftGame.config 및 자산 파일을 가리키는 디렉터리를 설치합니다. XBOX:2. DLC 패키지 로컬 설치
makepkg로 생성한 .xvc/.msixvc를 설치합니다. XBOX:3. 스토어에서 DLC 패키지 설치
개발 샌드박스에 로그인된 테스트 계정으로 Store 앱에서 DLC 제품 페이지를 검색하거나 직접 연결하여 설치합니다.DLC 설치 확인
XBOX:get-appxpackage를 사용해 특정 타이틀에 대해 설치된 DLC를 확인할 수도 있습니다. Dependencies 섹션을 참고하세요.
DLC 구매 및 설치
카탈로그를 열거하고 추가 기능 구매 기능을 제공하는 방법에 대해 알아보려면 기본 스토어 작업 문서를 참고하세요. 추가 기능 제품은[XStoreProduct](/reference/system/xstore/xstore_members).hasDigitalDownload를 검사하여 DLC로 판단할 수 있습니다.
DLC가 스토어에서 구매된 경우 DLC는 다운로드를 위해 큐에 대기됩니다.
XStoreShowPurchaseUiAsync를 사용해 DLC를 구매하면 DLC가 다운로드를 위해 큐에 대기되지 않습니다. 대신 게임은 다음 코드에 따라 수동으로 다운로드를 요청해야 합니다. 선택적으로 진행 상황을 추적하기 위한 모니터를 만들 수 있습니다.
패키지 식별자는 특정 패키지를 식별하는 불투명 문자열입니다. 이 식별자는 패키지마다 고유하지만 게임이 실행될 때마다 다릅니다. 따라서 식별자를 현재 세션을 넘어서 저장하거나 재사용하지 마세요.
시나리오에 따라 다음 방법을 사용해 패키지의 패키지 식별자를 얻을 수 있습니다.
- 패키지를 다운로드하고 설치하기 위해 XStoreDownloadAndInstallPackagesAsync를 호출한 후 XStoreDownloadAndInstallPackagesResult를 호출하여 해당 패키지의 패키지 식별자를 얻을 수 있습니다.
- XPackageEnumeratePackages를 호출한 다음 각 열거된 패키지에 대해 XPackageEnumerationCallback 콜백 함수로 전달된 XPackageDetails 구조체에서 패키지 식별자를 검색하여 이미 다운로드되고 설치된 패키지의 패키지 식별자를 얻을 수 있습니다.
- XPackageGetCurrentProcessPackageIdentifier를 호출하여 현재 게임의 패키지 식별자를 얻을 수 있습니다.
DLC 패키지 열거
DLC가 설치되는 방식과 관계없이 사용 전에 게임에서 설치된 DLC를 열거해야 합니다. 설치된 DLC를 열거하는 것은 패키지 식별자를 얻는 곳입니다.DLC 패키지가 설치되었음을 감지
DLC 라이선스 획득
개발 시에는 개발 중 DLC 라이선싱 테스트의 참고 사항을 참고하세요. 기본 게임은 DLC의 라이선스를 획득하여 콘텐츠에 대한 액세스를 사용자에게 부여할지 여부를 결정해야 합니다. 일반적으로 게임은 Restrictive Licensing을 사용합니다. 이는 게임이 패키지에 대한 라이선스를 획득한 후 패키지에 대한 액세스가 해당 디바이스와 제품 인스턴스에 잠기는 방식입니다. 다른 인스턴스 또는 디바이스가 액세스 권한과 라이선스를 획득하려면 게임이 라이선스를 해제해야 합니다. 게임이 Restrictive Licensing(Partner Center에서 구성되지 않음)을 사용하도록 구성되어 있는지 Microsoft 계정 담당자에게 확인하세요. 자세한 내용은 개방형 및 제한적 라이선싱을 참고하세요. 게임이 라이선스를 해제해야 하므로, 게임은 획득한 모든 DLC 라이선스를 추적하고 더 이상 필요하지 않거나 종료 시 라이선스를 해제할 책임이 있습니다. 게임이 라이선스를 해제하지 못하면 타임아웃 기간 이후 자동으로 라이선스가 해제됩니다.DLC의 라이선스 소스 판단
식별자 유형에 따라 XStoreCanAcquireLicenseForPackageAsync 또는 XStoreCanAcquireLicenseForStoreIdAsync를 사용해 다음을 판단할 수 있습니다.- 라이선스 부여 가능한지, 그렇지 않다면 구매 옵션을 표시할 수 있습니다.
- 디스크 또는 디지털 라이선스로 라이선스 부여 가능한지
DLC 마운트 및 마운트 해제
DLC 라이선스가 성공적으로 획득되면 DLC 콘텐츠를 마운트하고 액세스할 수 있습니다.DLC 제거
DLC 패키지를 제거하려면 XPackageUninstallPackage를 사용하세요. 패키지는 먼저 마운트 해제되어야 합니다.Smart Delivery 및 DLC
XBOX Series X/S 타이틀이 XBOX One 타이틀용으로 만들어진 DLC를 라이선스 부여하고 마운트할 수 있습니다. 일반적으로 이 시나리오는 DLC 패키지에 게임에서 사용되는 데이터가 포함되어 있지 않을 때 발생합니다. 확인할 수 있는 유일한 방법은 ERA DLC의 package.appxmanifest에 있는 GUID인AllowedProduct ID가 Partner Center에서 제품에 할당된 Legacy XBOX Product ID와 일치하는지 확인하는 것입니다.
그렇지 않은 경우, 타이틀은 아마도 폐기된 XBOX Developer Portal(XDP)에서 마이그레이션되었을 수 있으며, XBOX Series X/S 버전이 XBOX One의 제품 ID에 할당되어 있으므로 스토어에서 다운로드한 패키지에서만 작동합니다. 개발 목적으로는 문제 해결 섹션의 참고 사항을 참고하세요.
