Skip to main content
Usando o MSIXVC2? Para comparar os tamanhos das atualizações entre MSIXVC e MSIXVC2, empacote os dois builds usando makepkg. Para obter mais informações, confira Atualizações de conteúdo com MSIXVC2 e Introdução ao MSIXVC2 para PC.

Visão geral

Este artigo explica como fornecer atualizações de conteúdo, as ferramentas que você usa para gerar e medir atualizações e como testar os principais cenários de atualização para garantir um comportamento esperado e ideal.

Como funcionam as atualizações de conteúdo

Os serviços de jogos sempre minimizam o número de bytes que precisam ser transferidos quando você fornece uma atualização para pacotes de jogos. Essa otimização se aplica tanto aos clientes em dispositivos de jogos quanto aos desenvolvedores ao carregar pacotes. O sistema calcula essa diferença (delta) usando algoritmos que, em alto nível, tentam maximizar as correspondências de segmentos de 4 KiB entre dois pacotes. O sistema codifica esse delta como parte dos arquivos .xsp (plano de streaming de atualização). Usando esses arquivos, o sistema sabe exatamente quais bytes baixar da rede e como aplicá-los a qualquer versão de pacote existente possível. Para simular e testar o comportamento preciso de atualizações delta durante o desenvolvimento, use as opções adequadas do makepkg para criar pacotes. Além disso, use os comandos adequados para instalar e atualizar pacotes.

Criar uma atualização com base em uma versão anterior do pacote

Use makepkg pack para criar pacotes. Para criar um pacote que usa um pacote anterior, use o parâmetro /priorpackage:
O pacote anterior deve ter a mesma identidade de pacote que o pacote que você está criando, conforme definido no microsoftgame.config. O comando cria um arquivo .xsp chamado [new package name]_update-[old version number].[guid].xsp. Por exemplo, 41336MicrosoftATG.ATGGameHubRequiredGame_200.0.0.0_neutral__dspnxghe87tn0_xs_update-100.0.0.0.5890f4a0-b449-4c5d-80ff-b78b19ed3439.xsp Esse arquivo é o plano de streaming que codifica o que precisa ser alterado ao atualizar do pacote antigo para o novo. A seção sobre teste de atualizações demonstra como usar esse plano.

Examinar o tamanho da atualização

Quando você executa o comando anterior, ele gera dois arquivos adicionais com o mesmo nome de arquivo: um arquivo .html e um arquivo .json. Ambos os arquivos contêm as seguintes informações:
  1. Um resumo dos bytes que a atualização baixa
  2. Uma tabela que resume a quantidade de dados que a atualização instala para uma marca, um idioma ou um tipo de dispositivo específico
  3. Uma tabela classificável de arquivos que mostra o número de bytes que a atualização altera e a porcentagem do tamanho total do arquivo que essa alteração representa
  4. Para cada arquivo que não é 100% atualizado, links para tabelas individuais que mostram os intervalos de dados em cada arquivo que a atualização altera
Use essas informações para identificar quais arquivos são mais alterados em uma atualização. Examine os arquivos individuais para ver se a proporção e a localização das alterações estão conforme o esperado. Se você encontrar arquivos que resultam em uma atualização maior do que o normal, revise as diretrizes encontradas na seção Criando atualizações com eficiência. packageutil compare nos dois arquivos .xvc também gera esses mesmos arquivos e fornece uma saída resumida das diferenças entre os pacotes. Esse comando também gera o arquivo .xsp.

Carregamentos delta

Os carregamentos no Partner Center aproveitarão automaticamente os algoritmos de cálculo delta. O delta entre o último pacote carregado (para esse branch) e o pacote que está sendo carregado é calculado no início, para que somente os dados alterados sejam transferidos do computador de carregamento para o serviço de ingestão.

Testando atualizações

Para validar o tamanho da atualização conforme exibido na interface do usuário do sistema, execute as seguintes etapas:
  1. xbapp install [old version.xvc]
  2. xbapp update [new version.xvc] (/plan=[.xsp file])
Ao atualizar, vá até a Fila na interface do usuário do sistema para ver o número amigável de bytes que está sendo atualizado. O parâmetro /plan será opcional se o .xsp tiver sido gerado anteriormente por outros comandos e estiver no mesmo local que os arquivos .xvc. No PC, o comando wdapp é usado em vez disso. Os arquivos de pacote têm a extensão de arquivo .msixvc, e o progresso da instalação e da atualização pode ser visto na seção de fila de downloads tanto no aplicativo XBOX quanto no aplicativo Microsoft Store. wdapp update não dá suporte ao parâmetro /plan. Ele usa o arquivo .xsp gerado para a versão de destino, se houver um criado.

Anunciando atualizações

Anunciar atualizações é um pouco diferente de outros métodos de atualização. Quando você anuncia uma atualização, torna a atualização disponível para o jogo, o que resulta em um comportamento específico do sistema. Para anunciar uma atualização disponível, aplique o sinalizador /m ou /a ao update do xbapp ou do wdapp. Essa ação faz com que a atualização não seja aplicada até que o jogo seja iniciado. Quando essa condição ocorre:
  • Console: uma caixa de diálogo do sistema é exibida informando que uma atualização é necessária.
  • PC: para builds de desenvolvimento, nenhum prompt do sistema é exibido e o build pode ser iniciado livremente, a menos que o build seja instalado usando wdapp install ou o bootstrapper. Nesse caso, iniciar o jogo invoca o bootstrapper do PC, que verifica se há atualizações e solicita que você as instale.
Anunciar a atualização também faz com que determinadas APIs XStore reajam, o que permite que o jogo detecte atualizações disponíveis. Esse comportamento é mais relevante para pacotes de DLC. Para obter mais informações, confira Verificando atualizações.

Atualizações de pacotes da Store

Os exemplos anteriores envolvem a instalação e a atualização usando pacotes locais. Em alguns cenários, talvez você queira testar atualizações usando pacotes que você carregou no Partner Center e baixou da CDN da Store. Esse processo valida duas coisas: o desempenho ao atualizar a partir da Store e a utilização do plano de streaming gerado como parte do processo de ingestão. Infelizmente, não é possível atualizar de um pacote local para um pacote da Store devido a diferenças de assinatura. O que você pode fazer, sem outra ajuda, é carregar uma única versão no Partner Center e, em seguida, instalar essa versão pelo aplicativo da Store em um ou mais devkits. Em seguida, carregue a nova versão. Quando a nova versão for publicada, nos devkits com a versão mais antiga instalada, verifique se a versão mais recente é detectada e pode ser atualizada usando o tamanho delta esperado. Para repetir esse teste, antes de atualizar, copie a instalação da versão antiga para uma unidade externa para que você possa copiá-la de volta sobre qualquer nova versão posteriormente. Se você não salvou essa versão, poderá solicitar a URL da CDN a partir da qual uma versão mais antiga pode ser instalada usando xbapp install ou wdapp install. Depois de instalar uma versão mais antiga, você poderá repetir o teste de atualização.

Atualizações híbridas de disco e CDN

As atualizações também se aplicam a instalações de disco óptico. Quando você instala a partir de um disco, o processo de instalação instala todo o conteúdo do disco que não foi alterado em relação ao pacote digital mais recente disponível do disco. O processo de instalação instala simultaneamente o restante do conteúdo a partir da CDN da Store. Esse processo acontece automaticamente. Para simular esse processo, use o seguinte comando:
Disponibilizar o pacote de atualização por meio de um servidor HTTP é uma solução alternativa para o fato de que uma instalação só pode ter uma origem no armazenamento local do PC de desenvolvimento. Se você gravar um disco de teste usando o pacote .xvc do disco, o pacote do disco poderá apontar para o caminho do disco óptico.

Confira também

Práticas recomendadas de atualização de conteúdo Verificando atualizações
Last modified on October 6, 2026