개요
이 문서에서는 콘텐츠 업데이트를 전달하는 방법, 업데이트를 생성하고 측정하는 데 사용하는 도구, 그리고 예상되고 최적화된 동작을 보장하기 위해 주요 업데이트 시나리오를 테스트하는 방법을 설명합니다.콘텐츠 업데이트 작동 방식
게이밍 서비스는 게임 패키지에 업데이트를 제공할 때 항상 전송해야 하는 바이트 수를 최소화합니다. 이 최적화는 게이밍 장치의 고객과 패키지를 업로드하는 개발자 모두에게 적용됩니다. 시스템은 상위 수준에서 두 패키지 간의 4KiB 세그먼트 일치를 극대화하려는 알고리즘을 사용하여 이 차이(델타)를 계산합니다. 시스템은 이 델타를.xsp(업데이트 스트리밍 플랜) 파일의 일부로 인코딩합니다. 이러한 파일을 사용하여 시스템은 네트워크에서 어떤 바이트를 다운로드해야 하는지, 그리고 이를 가능한 모든 기존 패키지 버전에 어떻게 적용할지를 정확히 알게 됩니다.
개발 중에 정확한 델타 업데이트 동작을 시뮬레이션하고 테스트하려면 적절한 makepkg 옵션을 사용하여 패키지를 생성하세요. 또한 패키지를 설치하고 업데이트하기 위해 적절한 명령을 사용하세요.
이전 패키지 버전 기반으로 업데이트 만들기
패키지를 만들려면makepkg pack을 사용하세요. 이전 패키지를 사용하는 패키지를 만들려면 /priorpackage 매개변수를 사용하세요.
[new package name]_update-[old version number].[guid].xsp라는 이름의 .xsp 파일을 만듭니다. 예를 들어, 41336MicrosoftATG.ATGGameHubRequiredGame_200.0.0.0_neutral__dspnxghe87tn0_xs_update-100.0.0.0.5890f4a0-b449-4c5d-80ff-b78b19ed3439.xsp
이 파일은 이전 패키지에서 새 패키지로 업데이트할 때 무엇이 변경되어야 하는지를 인코딩하는 스트리밍 플랜입니다. 업데이트 테스트 섹션은 이 플랜을 사용하는 방법을 보여줍니다.
업데이트 크기 검토
앞의 명령을 실행하면 동일한 파일 이름을 가진 두 개의 추가 파일이 생성됩니다. .html 파일과 .json 파일입니다. 두 파일 모두 다음 정보를 포함합니다.- 업데이트가 다운로드하는 바이트의 요약
- 특정 태그, 언어 또는 장치 유형에 대해 업데이트가 설치하는 데이터의 양을 요약한 표
- 업데이트가 변경하는 바이트 수와 이 변경이 전체 파일 크기에서 차지하는 비율을 보여주는 정렬 가능한 파일 표
- 100% 업데이트되지 않은 각 파일에 대해, 업데이트가 변경하는 각 파일의 데이터 범위를 보여주는 개별 표에 대한 링크
packageutil compare도 이러한 동일한 파일을 생성하며 패키지 차이의 요약 출력을 제공합니다. 이 명령은 또한 .xsp 파일을 생성합니다.
델타 업로드
Partner Center에 대한 업로드는 자동으로 델타 계산 알고리즘을 활용합니다. 마지막으로 업로드한 패키지(해당 브랜치에 대한)와 업로드 중인 패키지 사이의 델타가 처음에 계산되므로, 변경된 데이터만 업로드 컴퓨터에서 수집 서비스로 전송됩니다.업데이트 테스트
시스템 UI에 표시되는 업데이트 크기를 검증하려면 다음 단계를 수행하세요.xbapp install[old version.xvc]xbapp update[new version.xvc] (/plan=[.xsp file])
wdapp 명령을 사용합니다. 패키지 파일은 .msixvc 파일 확장자를 사용하며, 설치 및 업데이트 진행 상황은 XBOX 앱과 Microsoft Store 앱 모두의 다운로드 대기열 섹션에서 볼 수 있습니다. wdapp update는 /plan 매개변수를 지원하지 않습니다. 대상 버전에 대해 생성된 .xsp 파일이 만들어졌다면 이를 사용합니다.
업데이트 알리기(advertising)
업데이트를 알리는 것은 다른 업데이트 방법과 약간 다릅니다. 업데이트를 알리면 게임에서 업데이트를 사용할 수 있게 되며, 이로 인해 특정 시스템 동작이 발생합니다. 사용 가능한 업데이트를 알리려면xbapp 또는 wdapp update에 /m 또는 /a 플래그를 적용하세요. 이 작업은 게임이 실행될 때까지 업데이트가 적용되지 않도록 합니다. 이 조건이 발생하면 다음과 같이 됩니다.
- 콘솔: 업데이트가 필요하다는 시스템 대화 상자가 표시됩니다.
- PC: 개발 빌드의 경우 시스템 프롬프트가 표시되지 않으며,
wdapp install또는 부트스트래퍼를 사용하여 빌드가 설치되지 않은 한 빌드를 자유롭게 실행할 수 있습니다. 이 경우 게임을 실행하면 PC 부트스트래퍼가 호출되어 업데이트를 확인하고 설치를 요청합니다.
XStore API가 반응하도록 하여 게임이 사용 가능한 업데이트를 감지할 수 있게 합니다. 이 동작은 DLC 패키지에 가장 관련이 있습니다. 자세한 내용은 업데이트 확인을 참조하세요.
Store 패키지 업데이트
앞의 예제는 로컬 패키지를 사용하여 설치 및 업데이트를 수행하는 것을 포함합니다. 일부 시나리오에서는 Partner Center에 업로드하고 Store CDN에서 다운로드한 패키지를 사용하여 업데이트를 테스트하고 싶을 수 있습니다. 이 프로세스는 두 가지를 검증합니다. Store에서 업데이트할 때의 성능과 수집 프로세스의 일환으로 생성되는 스트리밍 플랜의 활용입니다. 안타깝게도 서명 차이로 인해 로컬 패키지에서 Store 패키지로 업데이트할 수 없습니다. 별도의 도움 없이 할 수 있는 일은 Partner Center에 단일 버전을 업로드한 다음 하나 이상의 devkit에서 Store 앱을 통해 해당 버전을 설치하는 것입니다. 그런 다음 새 버전을 업로드합니다. 새 버전이 게시되면, 이전 버전이 설치된 devkit에서 새 버전이 감지되고 예상 델타 크기로 업데이트할 수 있는지 확인합니다. 이 테스트를 반복하려면 업데이트 전에 이전 버전 설치를 외부 드라이브에 복사하여 나중에 새 버전 위에 다시 복사할 수 있도록 하세요. 이 버전을 저장하지 않았다면xbapp install 또는 wdapp install을 사용하여 이전 버전을 설치할 수 있는 CDN URL을 요청할 수 있습니다. 이전 버전을 설치한 후 업데이트 테스트를 반복할 수 있습니다.
