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
Usemakepkg pack para criar pacotes. Para criar um pacote que usa um pacote anterior, use o parâmetro /priorpackage:
[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:- Um resumo dos bytes que a atualização baixa
- 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
- 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
- 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
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:xbapp install[old version.xvc]xbapp update[new version.xvc] (/plan=[.xsp file])
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 installou o bootstrapper. Nesse caso, iniciar o jogo invoca o bootstrapper do PC, que verifica se há atualizações e solicita que você as instale.
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 usandoxbapp install ou wdapp install. Depois de instalar uma versão mais antiga, você poderá repetir o teste de atualização.
