기존 MSIXVC 형식에 특정한 콘텐츠 업데이트 가이드는 콘텐츠 업데이트 모범 사례를 참조하세요.
MSIXVC2 콘텐츠 업데이트 작동 방식
콘텐츠 기반 세분화
MSIXVC2는 고정 블록 경계가 아닌 실제 콘텐츠를 기반으로 파일 데이터를 가변 크기 세그먼트로 나눕니다. 각 세그먼트는 그 콘텐츠의 해시로 식별됩니다. 이 방식이 의미하는 바는 다음과 같습니다.- 파일을 청크 간에 이동해도 재다운로드가 트리거되지 않습니다. 파일의 콘텐츠 해시는 어떤 청크에 속하든 동일하게 유지됩니다.
- 청크 내에서 파일 순서를 재정렬해도 재다운로드가 트리거되지 않습니다. 세그먼트 경계는 위치가 아닌 콘텐츠에 의해 결정됩니다.
- 청크 순서를 재정렬해도 재다운로드가 트리거되지 않습니다. 청크 레이아웃은 데이터의 물리적 세분화에 영향을 미치지 않는 논리적 개념입니다.
- 데이터를 삽입하거나 제거해도 연쇄 효과가 없습니다. 고정 블록 시스템과 달리 작은 삽입이 이후의 모든 블록을 이동시키고 변경되지 않은 콘텐츠의 재다운로드를 강제하지 않습니다.
업로드 시 중복 제거
모든 세그먼트는 업로드 전에 해시됩니다. 업로드 프로세스는 이전 버전에서 이미 존재하는 세그먼트가 무엇인지 확인하기 위해 CDN에 쿼리합니다. 새 세그먼트나 변경된 세그먼트만 업로드되어 플레이어에게 전달됩니다. 이 중복 제거는 자동으로 발생하며, 개발자의 조치가 필요하지 않습니다.세그먼트별 암호화 및 압축
각 세그먼트는 독립적으로 압축되고 암호화됩니다. 이는 하나의 세그먼트를 업데이트해도 다른 세그먼트에 영향을 주지 않도록 보장합니다.MSIXVC에서 변경되는 사항
MSIXVC 콘텐츠 업데이트의 다음 정렬 및 레이아웃 제약 조건은 MSIXVC2에는 적용되지 않습니다.업데이트 크기 비교
다음 데이터는 동일한 타이틀 빌드에 대해 MSIXVC와 MSIXVC2 사이의 콘텐츠 업데이트 크기를 비교합니다. 게임에 대한 변경 사항은 없습니다. 동일한 자산, 동일한 빌드, 다른 패키징 형식입니다.
Game D는 이미 MSIXVC 콘텐츠 업데이트(CUv3)에 대해 수동 최적화가 이루어진 타이틀이기 때문에 개선율이 더 작습니다. 이러한 최적화 작업을 하지 않은 대부분의 타이틀은 더 큰 감소를 보게 됩니다. MSIXVC2에서는 이러한 최적화 작업이 더 이상 필요하지 않습니다.
패키지 오버헤드 감소
모든 MSIXVC 패키지에는 크기가 총 게임 크기에 따라 확장되는 고정된 최소 해시 트리가 포함됩니다. 이 오버헤드는 매 업데이트마다 항상 전체가 다운로드됩니다. 대형 타이틀의 경우 이 오버헤드는 상당합니다.
MSIXVC2 오버헤드는 부분적으로도 다운로드할 수 있어, 플레이어는 업데이트와 관련된 메타데이터 부분만 받게 됩니다.
기본 게임 크기 개선
콘텐츠 기반 세분화와 내장 압축은 기본 게임 다운로드 크기도 줄입니다.
압축되지 않은 콘텐츠나 청크 간에 상당한 중복 데이터가 있는 타이틀에서 가장 큰 기본 크기 감소가 나타납니다. 이미 모든 콘텐츠를 압축하고 중복이 없는 타이틀(예: Game D)은 더 작지만 여전히 의미 있는 개선을 보게 됩니다.
타이틀에 대한 MSIXVC2 평가
자신의 타이틀에 대한 콘텐츠 업데이트 개선을 측정하려면 다음 단계를 수행하세요.- 게임의 순차적인 두 빌드를 준비합니다(예: 릴리스 빌드와 이후 패치).
makepkg를 사용하여 두 빌드를 모두 패키징합니다.
- 결과 업데이트 크기를 동일한 MSIXVC(v1) 빌드와 비교합니다.
- 비교 결과를 사용하여 MSIXVC2로의 마이그레이션을 계획하세요.
MSIXVC2 패키지는 Partner Center의 별도 브랜치(예:
msixvc2)에 업로드하세요. 동일한 브랜치에 MSIXVC2와 MSIXVC 패키지를 혼합하지 마세요. 브랜치를 MSIXVC2에서 MSIXVC로 되돌리는 것은 전체 재업로드가 필요하며, 해당 브랜치의 플레이어에게 전체 재다운로드가 발생합니다. 자세한 내용은 패키지 브랜치 모범 사례를 참조하세요.