Información general
Este artículo explica cómo entregar actualizaciones de contenido, las herramientas que se usan para generar y medir las actualizaciones, y cómo probar los escenarios de actualización clave para garantizar un comportamiento esperado y óptimo.Cómo funcionan las actualizaciones de contenido
Los servicios de juego siempre minimizan el número de bytes que deben transferirse cuando proporcionas una actualización de los paquetes del juego. Esta optimización se aplica tanto a los clientes en dispositivos de juego como a los desarrolladores al cargar paquetes. El sistema calcula esta diferencia (delta) mediante algoritmos que, a grandes rasgos, intentan maximizar las coincidencias de segmentos de 4 KiB entre dos paquetes. El sistema codifica este delta como parte de los archivos.xsp (plan de streaming de actualización). Con estos archivos, el sistema sabe exactamente qué bytes descargar de la red y cómo aplicarlos a cualquier versión de paquete existente posible.
Para simular y probar con precisión el comportamiento de las actualizaciones delta durante el desarrollo, usa las opciones adecuadas de makepkg para crear los paquetes. Además, usa los comandos adecuados para instalar y actualizar los paquetes.
Crear una actualización basada en una versión de paquete anterior
Usamakepkg pack para crear paquetes. Para crear un paquete que use un paquete anterior, usa el parámetro /priorpackage:
[new package name]_update-[old version number].[guid].xsp. Por ejemplo, 41336MicrosoftATG.ATGGameHubRequiredGame_200.0.0.0_neutral__dspnxghe87tn0_xs_update-100.0.0.0.5890f4a0-b449-4c5d-80ff-b78b19ed3439.xsp
Este archivo es el plan de streaming que codifica lo que debe cambiar al actualizar del paquete antiguo al nuevo. La sección de prueba de actualizaciones muestra cómo usar este plan.
Examinar el tamaño de la actualización
Cuando ejecutas el comando anterior, se generan dos archivos adicionales con el mismo nombre de archivo: un archivo .html y un archivo .json. Ambos archivos contienen la siguiente información:- Un resumen de los bytes que descarga la actualización
- Una tabla que resume la cantidad de datos que la actualización instala para una etiqueta, un idioma o un tipo de dispositivo específicos
- Una tabla ordenable de archivos que muestra el número de bytes que cambia la actualización y el porcentaje del tamaño total del archivo que representa este cambio
- Para cada archivo que no se actualiza al 100 %, vínculos a tablas individuales que muestran los intervalos de datos de cada archivo que cambia la actualización
packageutil compare sobre los dos archivos .xvc también genera estos mismos archivos y proporciona una salida resumida de las diferencias entre los paquetes. Este comando también genera el archivo .xsp.
Cargas delta
Las cargas en Partner Center aprovecharán automáticamente los algoritmos de cálculo de delta. El delta entre el último paquete cargado (para esa rama) y el paquete que se está cargando se calcula al principio, de modo que solo los datos modificados se transfieren desde la máquina de carga al servicio de ingesta.Prueba de actualizaciones
Para validar el tamaño de la actualización tal como se ve en la interfaz de usuario del sistema, realiza los pasos siguientes:xbapp install[old version.xvc]xbapp update[new version.xvc] (/plan=[.xsp file])
wdapp en su lugar. Los archivos de paquete tienen la extensión de archivo .msixvc, y el progreso de la instalación y la actualización puede verse en la sección de cola de descargas tanto de la aplicación XBOX como de la aplicación Microsoft Store. wdapp update no admite el parámetro /plan. Usa el archivo .xsp generado para la versión de destino si se creó uno.
Anuncio de actualizaciones
El anuncio de actualizaciones es ligeramente diferente de otros métodos de actualización. Cuando anuncias una actualización, haces que la actualización esté disponible para el juego, lo que da lugar a un comportamiento específico del sistema. Para anunciar una actualización disponible, aplica la marca/m o /a al comando update de xbapp o wdapp. Esta acción hace que la actualización no se aplique hasta que se inicie el juego. Cuando se da esta condición:
- Consola: se muestra un cuadro de diálogo del sistema que indica que se requiere una actualización.
- PC: para compilaciones de desarrollo, no se muestra ningún aviso del sistema y la compilación puede iniciarse libremente, a menos que la compilación se instale mediante
wdapp installo el arrancador (bootstrapper). En ese caso, iniciar el juego invoca el bootstrapper de PC, que comprueba si hay actualizaciones y te pide que las instales.
XStore reaccionen, lo que permite al juego detectar las actualizaciones disponibles. Este comportamiento es más relevante para los paquetes de DLC. Para obtener más información, consulta Comprobación de actualizaciones.
Actualizaciones de paquetes de la Store
Los ejemplos anteriores implican instalar y actualizar mediante paquetes locales. En algunos escenarios, es posible que quieras probar actualizaciones con paquetes que cargaste en Partner Center y descargaste desde la CDN de la Store. Este proceso valida dos cosas: el rendimiento al actualizar desde la Store y el uso del plan de streaming que se genera como parte del proceso de ingesta. Lamentablemente, no puedes actualizar de un paquete local a un paquete de la Store debido a diferencias de firma. Lo que puedes hacer, sin más ayuda, es cargar una única versión en Partner Center y luego instalar esa versión desde la aplicación de la Store en uno o varios kits de desarrollo. Después, carga la nueva versión. Cuando se publique la nueva versión, en los kits de desarrollo con la versión anterior instalada, verifica que la versión más reciente se detecta y puede actualizarse con el tamaño de delta esperado. Para repetir esta prueba, antes de actualizar, copia la instalación de la versión anterior en una unidad externa para poder copiarla de nuevo sobre cualquier versión nueva más adelante. Si no guardaste esta versión, puedes solicitar la URL de la CDN desde la que puede instalarse una versión anterior mediantexbapp install o wdapp install. Después de instalar una versión anterior, puedes repetir la prueba de actualización.
