> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Atualizações de conteúdo com MSIXVC2

> Atualizações de conteúdo com MSIXVC2

O MSIXVC2 altera fundamentalmente a forma como as atualizações de conteúdo são calculadas e entregues. Com o formato MSIXVC original, as atualizações de conteúdo operam em limites fixos de blocos de 4 KB e são sensíveis ao layout dos arquivos, à ordem dos chunks e ao alinhamento dentro dos arquivos de pacote (pack files). Com o MSIXVC2, as atualizações de conteúdo usam segmentação baseada em conteúdo para rastrear alterações no nível de byte, eliminando as restrições de alinhamento que aumentam o tamanho das atualizações no MSIXVC.

<Note>
  Para obter orientações sobre atualizações de conteúdo específicas do formato MSIXVC original, confira [Práticas recomendadas de atualização de conteúdo](/pt-BR/build/core-features/common/packaging/packaging-updates).
</Note>

## Como funcionam as atualizações de conteúdo do MSIXVC2

### Segmentação baseada em conteúdo

O MSIXVC2 divide os dados dos arquivos em segmentos de tamanho variável com base no conteúdo real, em vez de limites fixos de blocos. Cada segmento é identificado por um hash do seu conteúdo.

Essa abordagem significa que:

* **Mover um arquivo entre chunks não dispara um novo download.** Os hashes de conteúdo do arquivo permanecem os mesmos, independentemente do chunk ao qual ele pertence.
* **Reordenar arquivos dentro de um chunk não dispara um novo download.** Os limites dos segmentos são determinados pelo conteúdo, não pela posição.
* **Reordenar chunks não dispara um novo download.** O layout de chunks é um conceito lógico que não afeta a segmentação física dos dados.
* **Inserir ou remover dados não gera efeito cascata.** Diferentemente dos sistemas de blocos fixos, uma pequena inserção não desloca todos os blocos subsequentes nem força novos downloads de conteúdo inalterado.

### Eliminação de duplicação no carregamento

Cada segmento recebe um hash antes do carregamento. O processo de carregamento consulta a CDN para determinar quais segmentos já existem de versões anteriores. Somente os segmentos novos ou alterados são carregados e entregues aos jogadores. Essa eliminação de duplicação acontece automaticamente, sem necessidade de nenhuma ação do desenvolvedor.

### Criptografia e compactação por segmento

Cada segmento é compactado e criptografado de forma independente. Isso garante que a atualização de um segmento não afete os outros.

## O que muda em relação ao MSIXVC

As seguintes restrições de alinhamento e layout das atualizações de conteúdo do MSIXVC **não se aplicam** ao MSIXVC2:

| Restrição do MSIXVC | Comportamento do MSIXVC2 |
| - | - |
| Alinhar ativos a limites de 4 KB dentro dos arquivos de pacote | Não é necessário. A segmentação baseada em conteúdo independe de alinhamento. |
| Não alterar IDs de chunk nem mover arquivos entre chunks | As alterações no layout de chunks são livres. Sem penalidade de novo download. |
| Não reordenar chunks, arquivos ou ativos | A reordenação é livre. Os hashes de segmentos são baseados em conteúdo. |
| Os dados não podem ser movidos com eficiência | A movimentação de dados é tratada naturalmente pelo hash de conteúdo. |
| A sobrecarga mínima fixa da árvore de hash aumenta com o tamanho do jogo | Sobrecarga mínima; pode ser baixada parcialmente. |

<Tip>
  Se você atualmente investe esforço em manter uma ordem de arquivos estável, congelar layouts de ativos ou gerenciar cuidadosamente o alinhamento de 4 KB no seu pipeline de build, o MSIXVC2 elimina a necessidade desse trabalho. Essas otimizações ainda se aplicam se você distribui pacotes XVC para console.
</Tip>

## Comparação do tamanho das atualizações

Os dados a seguir comparam os tamanhos das atualizações de conteúdo entre MSIXVC e MSIXVC2 para os mesmos builds de títulos. Nenhuma alteração foi feita nos jogos: mesmos ativos, mesmos builds, formato de empacotamento diferente.

| Título | Engine | Atualização MSIXVC | Atualização MSIXVC2 | Redução |
| - | - | - | - | - |
| Jogo A | Unity | 1,27 GB | 71 MB | ↓ 94% |
| Jogo B | Unity | 411 MB | 49 MB | ↓ 88% |
| Jogo C | Personalizada | 2,5 GB | 473 MB | ↓ 81% |
| Jogo D | Unreal | 1,75 GB | 595 MB | ↓ 66% |

O Jogo D apresenta uma melhoria menor porque o título já havia sido otimizado manualmente para atualizações de conteúdo do MSIXVC (CUv3). A maioria dos títulos que não fizeram esse trabalho de otimização verá reduções maiores. Com o MSIXVC2, esse trabalho de otimização não é mais necessário.

## Redução da sobrecarga do pacote

Todo pacote MSIXVC inclui uma árvore de hash mínima fixa cujo tamanho aumenta com o tamanho total do jogo. Essa sobrecarga é sempre baixada integralmente a cada atualização. Para títulos grandes, essa sobrecarga é significativa:

| Título | Sobrecarga do MSIXVC | Sobrecarga do MSIXVC2 | Redução |
| - | - | - | - |
| Jogo C (\~320 GB) | 2,049 GB (0,66%) | 184,3 MB (0,06%) | ↓ 91% |

A sobrecarga do MSIXVC2 também pode ser baixada parcialmente, o que significa que os jogadores recebem somente as partes dos metadados relevantes para a sua atualização.

## Melhorias no tamanho do jogo base

A segmentação baseada em conteúdo e a compactação integrada também reduzem os tamanhos de download do jogo base:

| Título | Base MSIXVC | Base MSIXVC2 | Redução |
| - | - | - | - |
| Jogo A | 11,7 GB | 4,2 GB | ↓ 64% |
| Jogo B | 918 MB | 558 MB | ↓ 39% |
| Jogo C | 320,0 GB | 270,5 GB | ↓ 15% |
| Jogo D | 129,9 GB | 121,0 GB | ↓ 7% |

Títulos com conteúdo não compactado ou com dados duplicados significativos entre chunks têm as maiores reduções no tamanho base. Títulos que já compactam todo o conteúdo e não têm duplicação (como o Jogo D) têm melhorias menores, mas ainda significativas.

## Avaliando o MSIXVC2 para o seu título

Para medir a melhoria nas atualizações de conteúdo do seu próprio título:

1. Pegue dois builds sequenciais do seu jogo (por exemplo, um build de lançamento e o patch subsequente).
2. Empacote os dois builds usando `makepkg`.

```text theme={null}
   makepkg pack /msixvc2 /f layout.xml /d <old_build> /pc /pd <output_old>
   makepkg pack /msixvc2 /f layout.xml /d <new_build> /pc /pd <output_new> /priorpackage <output_old\package.msixvc>
```

3. Compare o tamanho da atualização resultante com um build MSIXVC (v1) equivalente.
4. Use os resultados da comparação para planejar sua migração para o MSIXVC2.

<Info>
  Carregue os pacotes MSIXVC2 em um branch separado no Partner Center (por exemplo, `msixvc2`). Não misture pacotes MSIXVC2 e MSIXVC no mesmo branch: reverter um branch de MSIXVC2 para MSIXVC exige um novo carregamento completo e força um novo download completo para os jogadores desse branch. Confira [Práticas recomendadas para branches de pacotes](/pt-BR/build/core-features/common/packaging/overviews/packaging-msixvc2-overview#package-branch-best-practices) para obter detalhes.
</Info>

## Considerações sobre preenchimento para títulos multiplataforma

Se o seu título for distribuído tanto no PC (MSIXVC2) quanto no console (XVC), você poderá usar configurações de preenchimento (padding) separadas para cada plataforma. No MSIXVC2, você pode reduzir ou remover com segurança o preenchimento do seu build para PC sem afetar a eficiência das atualizações. Se preferir manter a mesma configuração em todas as plataformas, essa configuração também funciona sem penalidade, pois o MSIXVC2 lida com ambos os casos.

## Confira também

[Visão geral do empacotamento MSIXVC2](/pt-BR/build/core-features/common/packaging/overviews/packaging-msixvc2-overview) [Práticas recomendadas de atualização de conteúdo (MSIXVC)](/pt-BR/build/core-features/common/packaging/packaging-updates) [Modelo de criptografia do MSIXVC2](/pt-BR/build/core-features/common/packaging/packaging-encryption-msixvc2) [Introdução ao MSIXVC2 para PC](/pt-BR/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC-msixvc2) [Make package (makepkg.exe)](/pt-BR/build/core-features/common/packaging/deployment/makepkg)


## Related topics

- [Modelo de cifrado de MSIXVC2](/es/build/core-features/common/packaging/packaging-encryption-msixvc2.md)
- [Actualizaciones de contenido con MSIXVC2](/es/build/core-features/common/packaging/packaging-updates-msixvc2.md)
- [Requisitos XBOX testados na certificação para jogos de console XBOX](/pt-BR/publishing/certification/console-cert-tested-requirements.md)
- [Requisitos do XBOX para jogos do XBOX](/pt-BR/publishing/certification/xbox-requirements.md)
- [Introducción al empaquetado MSIXVC2 para PC](/es/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC-msixvc2.md)
