Introducción
Le damos la bienvenida a la versión de octubre de 2025 del Microsoft Game Development Kit. Puede usar el GDK para desarrollar juegos que se pueden certificar y aprobar para su lanzamiento en equipos con Windows 11 y Windows 10.Acerca de este documento
Hemos organizado este documento en las siguientes secciones.- Novedades
- Notas de la versión:
- Problemas conocidos
- Documentación
Novedades del Microsoft Game Development Kit de octubre de 2025
- El GDK se publica en dos tipos de versiones: principales (centradas en características, dos veces al año) y actualizaciones (centradas en correcciones, con la frecuencia necesaria).
- Para ver la sección completa de novedades, consulte la versión en línea de Novedades.
Actualización 5 del GDK de octubre de 2025
Correcciones de problemas
Servicios de XBOX
Se corrigió un problema por el que un título iniciado en Steam Deck sin conexión de red nunca detectaba que la red pasaba a estar disponible, lo que provocaba que el inicio de sesión y otras solicitudes HTTP generaran errores hasta que se reiniciaba el título. [64171298]
Social Manager
Se corrigió un problema por el que Social Manager podía usar una cantidad excesiva de memoria máxima al cargar grafos sociales grandes, porque la respuesta de People Hub se copiaba varias veces durante el procesamiento. [64354447]
PlayFab Game Saves
Se corrigió un problema al usar PlayFab Game Saves en proceso por el quePFGameSaveFilesUploadWithUiAsyncgeneraba un error genérico, comoE_INVALIDARG, si otro escritor bloqueaba un archivo de partida guardada o este se quitaba durante la carga, y podía omitir un archivo nuevo bloqueado y, aun así, notificar que la operación se había realizado correctamente. Ahora estas cargas generan el nuevo errorE_PF_GAMESAVE_LOCAL_FILE_UNAVAILABLE, que es transitorio: vuelva a llamar a la carga cuando el título haya terminado de escribir el archivo. [64280746]
Se corrigió un problema al usar PlayFab Game Saves en proceso por el que, al revertir conPFGameSaveFilesAddUserWithUiAsyncyRollbackToLastKnownGoodoRollbackToLastConflict, se restauraba localmente la partida guardada anterior, pero no se confirmaba en la nube, de modo que la partida guardada desde la que el jugador había revertido volvía en la siguiente sincronización o en otros dispositivos. Ahora la reversión se confirma en la nube con la siguiente carga del título. [64280747]
Se corrigió un problema al usar PlayFab Game Saves en proceso por el que el progreso de carga de PFGameSaveFilesUiProgressGetProgress permanecía en 64 KiB durante la mayor parte de la transferencia y su total cambiaba del tamaño de la partida guardada a su tamaño comprimido a mitad del proceso, lo que impedía que los títulos mostraran un progreso fluido. Ahora el progreso de carga y descarga se actualiza durante toda la transferencia con respecto a un total estable. [64039954]
Se corrigió un problema al usar PlayFab Game Saves en proceso por el que una carga reintentada o superpuesta podía generar un error porque la limpieza de otro intento de carga eliminaba sus archivos de almacenamiento provisional. [64040433]
Se corrigió un posible bloqueo al usar PlayFab Game Saves en proceso si una carga generaba un error al comprimir los archivos de partida guardada, por ejemplo, porque no se podía abrir un archivo de partida guardada. [64040433]
Se corrigió un problema por el que llamar a una función de resultado de PlayFab Game Saves, comoPFGameSaveFilesUploadWithUiResult, después dePFGameSaveFilesUninitializeAsync(por ejemplo, al suspender) devolvíaE_PF_GAMESAVE_NOT_INITIALIZEDen lugar del resultado de la operación completada. [64040433]
Actualización 4 del GDK de octubre de 2025
Correcciones de problemas
PlayFab Game Saves
Se corrigió un problema por el que aplicar la eliminación de una carpeta en la nube podía eliminar archivos locales que nunca se habían sincronizado, y se aumentó la granularidad de los informes de progreso de carga para que los títulos puedan animar una barra de progreso determinada durante la compresión. [63666969]
Se corrigió un problema por el que las transferencias de almacenamiento en la nube con errores se notificaban como correctas, lo que podía finalizar una partida guardada con datos que faltaban e impedir de forma permanente que las partidas guardadas de ese jugador se sincronizaran en todos los dispositivos. [63475452]
Se corrigieron problemas que podían provocar la pérdida de datos de partidas guardadas durante la sincronización, daños en la memoria cuando las partidas guardadas compartían un contexto de GDK y un control incorrecto de los manifiestos que no superaban la validación. [63647898]
Se corrigió un problema por el que la devolución de llamada de progreso de sincronización de partidas guardadas notificaba un tamaño total de cero, lo que impedía que los títulos mostraran una barra de progreso determinada. [63529869]
Actualización 3 del GDK de octubre de 2025
Notificaciones
Registro de asociaciones de tipos de archivo
Los juegos para PC ahora pueden registrar asociaciones de tipos de archivo en MicrosoftGame.Config. Cuando un usuario abre un archivo con una extensión registrada, el juego se inicia o se pasa a primer plano. Este comportamiento se habilita mediante las APIXGameActivation*(por ejemplo,XGameActivationRegisterForEvent()).
Entrada
Los controladores con detección de movimiento que usan la comunicación simple entre procesos (SIPC) ahora comparten la canalización de fusión de sensores de PC. El escalado del acelerómetro y del giroscopio, la captura del sesgo del giroscopio al inicio y la corrección de la deriva en reposo están a la par con PC. Como resultado, IGameInputReading::GetMotionState devuelve una orientación relativa a la gravedad con una deriva limitada.
PlayFab Game Saves
Se deshabilitó la capacidad de conservar la partida guardada descartada y revertir a ella al elegir entre Keep Local o Keep Cloud en Steam Deck, para que coincida con el comportamiento de XBOX/Gaming Runtime Services (GRTS).
Correcciones de problemas
Redes
Se corrigió un problema por el que la biblioteca podía bloquearse después de perder una conexión WebSocket mientras estaba en pausa en un depurador.
Servicios de XBOX
Se corrigió un problema por el que las llamadas HTTP basadas en WinHTTP podían experimentar inestabilidad debido a una condición de uso después de liberar en libHttpClient.
Entrada
Se corrigió un problema por el que se producía un posible error de memoria insuficiente al llamar aGameInputCreateen la versiónNuGetdeGameInputen XBOX.
Se corrigió un problema por el que se podía perder la entrada después de reanudar un juego suspendido.
Multimedia
Se corrigió un problema que provocaba que la transformación de Media Foundation (MFT) del descodificador H.264 dejara de responder durante la destrucción cuando el descodificador se creaba y se destruía sin enviar muestras de vídeo de entrada.
PlayFab Game Saves
Se corrigió un problema por el que PFGameSaves controlaba incorrectamente las claves del Registro que faltaban, lo que provocaba un error de inicialización.
Se corrigieron problemas menores de informes de telemetría en Steam Deck por los que ciertos campos de diagnóstico se rellenaban incorrectamente durante las operaciones de guardado.
Actualización 2 del GDK de octubre de 2025
Notificaciones
Actualizaciones de Microsoft Azure PlayFab Party a v2.2.7
- Se cambió el comportamiento de
PartyStatusChangeResultdePartyNetwork::CreateEndpointpara que devuelvaPartyServiceErrorpara los errores transitorios que se producen antes de que expire el token, y que devuelvaUserNotAuthorizedsolo cuando el token haya expirado realmente.- Se agregó compatibilidad con la selección de dispositivos de audio para entornos sin XUser o con Gaming Runtime Services (GRTS) en proceso.
- Se corrigió un posible bloqueo durante escenarios de transición entre varias redes.
Actualizaciones de PlayFab Party a v1.10.16
- Se cambió el comportamiento de
PartyStatusChangeResultdePartyNetwork::CreateEndpointpara que devuelvaPartyServiceErrorpara los errores transitorios que se producen antes de que expire el token, y que devuelvaUserNotAuthorizedsolo cuando el token haya expirado realmente.- Se agregó compatibilidad con la selección de dispositivos de audio para entornos sin XUser o con Gaming Runtime Services (GRTS) en proceso.
- Se corrigió un posible bloqueo durante escenarios de transición entre varias redes.
Servicios de XBOX
Se agregó compatibilidad para habilitar la salida de seguimiento al depurador enxgamingruntimeen proceso, lo que iguala la funcionalidad existente de Gaming Runtime Services (GRTS). Para habilitar los mensajes de seguimiento de HTTP/WebSocket en la ventana Salida de Visual Studio, establezca la clave del RegistroHKEY_LOCAL_MACHINE\Software\Microsoft\GamingServices\Auth\TraceToDebugger(REG_DWORD) en1. Esta configuración resulta útil para depurar problemas de red, la configuración del proxy y problemas de autenticación. La característica es opcional y no tiene ningún efecto cuando está deshabilitada.
Redes
Se actualizóXCurlpara permitir varias llamadas axcurl_global_init_mem()ocurl_global_init_mem()entre llamadas acurl_global_cleanup(). Este nuevo comportamiento coincide con el comportamiento deLibCurlparacurl_global_init_mem(), lo que sincroniza la API deXCurlcon las expectativas deLibCurl. Además,curl_global_init(),curl_global_init_mem(),xcurl_global_init_mem()ycurl_global_cleanup()ahora son seguros para subprocesos.
Corrección de la simulación de etiquetas de Intelligent Delivery en packageutil compare
Un error lógico enpackageutil compareprovocaba que las simulaciones de Intelligent Delivery excluyeran las etiquetas obligatorias que no son OnDemand cada vez que se ejecutaba cualquier simulación basada en etiquetas. Esto generaba predicciones de tamaño y actualización inexactas para los títulos que usaban empaquetado OnDemand o basado en Feature. La corrección garantiza lo siguiente:Esta corrección restaura la precisión de los informes de tamaño y permite a los asociados evaluar correctamente las configuraciones de ID. Binario afectado:
- Las etiquetas que no son OnDemand siempre se incluyen en las simulaciones de paquetes que no son de Feature.
- Los paquetes basados en Feature son totalmente compatibles, incluidas las etiquetas segmentadas y las simulaciones de característica completa y de característica única.
PackageUtil.exe
Correcciones de problemas
Herramientas del GDK
Se corrigió un problema que provocaba que los símbolos del sistema del GDK incluidos en el instalador de herramientas del GDK no incluyeran correctamente el directorio bin del GDK donde se encuentran las herramientas.
Se corrigió un problema que provocaba que la herramienta XblTestAccountGui no pudiera iniciar sesión y mostrara el siguiente mensaje de error.
Live auth error: Login Error: The remote server returned an error: (400) Bad Request.
Se corrigió un problema que provocaba que las instalaciones silenciosas del GDK que usaban el modificador de línea de comandos /features omitieran la instalación de los componentes del diseño heredado.
Microsoft Azure PlayFab Game Saves
Se corrigió un problema de FAIL_FAST al reanudar cuando un juego usa PlayFab Game Saves.
Se corrigió un problema al usar PlayFab Game Saves en proceso por el que la devolución de llamada de contención de dispositivos podía invocarse incorrectamente cuando no se producía ningún conflicto real de dispositivos. Anteriormente, el SDK de PlayFab trataba la ausencia de un manifiesto pendiente como prueba de que otro dispositivo había tomado el control. Sin embargo, esto también podía ocurrir en escenarios normales (por ejemplo, cuando no había ninguna sincronización en curso o cuando el dispositivo local completaba su propia carga). Ahora el SDK comprueba correctamente si el manifiesto finalizado lo creó realmente otro dispositivo antes de desencadenar la devolución de llamada de contención, lo que evita notificaciones de falsos positivos al juego.
Se corrigió un problema por el que la inicialización de PlayFab Game Saves generaba un error en Gaming Runtime Services (GRTS) si el directorio de la carpeta de partidas guardadas especificada aún no existía o si a la ruta proporcionada le faltaba una barra diagonal inversa final. Ahora el SDK de PlayFab crea automáticamente el directorio si es necesario y garantiza el formato correcto de la ruta antes de la inicialización.
Se corrigió un problema de sincronización por el que la versión en proceso de PlayFab Game Saves podía reutilizar incorrectamente un manifiesto pendiente obsoleto después de que la versión del manifiesto finalizado en la nube ya lo hubiera superado. Ahora el manifiesto pendiente solo se reutiliza cuando pertenece al dispositivo actual y tiene una versión superior a la versión finalizada en la nube. Este cambio evita posibles incoherencias de datos durante los escenarios de sincronización entre varios dispositivos.
Se corrigió un problema por el que las marcas de tiempo de modificación de los archivos eran incorrectas al sincronizar partidas guardadas entre dispositivos mediante distintos proveedores de almacenamiento (en proceso frente a Gaming Runtime Services (GRTS)). Ahora las marcas de tiempo de los archivos se conservan correctamente y se convierten a UTC al crear archivos comprimidos, lo que garantiza un comportamiento coherente de las marcas de tiempo en todas las plataformas.
Se corrigió un problema por el que la descripción de una partida guardada devolvía datos con formato incorrecto o dañados en Steam Deck. Ahora las descripciones de las partidas guardadas se descodifican correctamente desde Base64 cuando se recuperan del manifiesto, lo que garantiza que obtenga el texto de descripción legible correcto que se estableció originalmente.
Se corrigió un problema al usar PlayFab Game Saves en proceso por el que cancelar una operación de sincronización desde el cuadro de diálogo de progreso podía provocar un error de aserción y un comportamiento inestable. El mecanismo de cancelación se rediseñó para usar un enfoque de marca atómica segura para subprocesos. Este cambio permite a los usuarios cancelar de forma segura las operaciones de carga o descarga en curso desde la interfaz de usuario de progreso sin desencadenar condiciones de carrera ni errores de aserción. Ahora el SDK comprueba correctamente si hay solicitudes de cancelación durante las fases clave de la operación de sincronización y finaliza limpiamente con un código de error de cancelación por parte del usuario.
Se corrigió un problema al usar PlayFab Game Saves en proceso por el que la descarga de un gran número de archivos pequeños (por ejemplo, 1000 o más archivos de texto pequeños) generaba un error. El seguimiento del progreso usaba incorrectamente los tamaños de archivo sin comprimir para los informes de progreso de transferencia, lo que provocaba discrepancias al trabajar con muchos archivos pequeños comprimidos. Ahora los informes de progreso realizan correctamente el seguimiento de los tamaños en bytes comprimidos para reflejar con precisión el progreso real de la transferencia de red.
Se corrigió un bloqueo al usar PlayFab Game Saves en proceso que se producía al llamar a la API PFGameSaveFilesSetSaveDescriptionAsync mientras se estaba desconectado de la nube. Ahora esta API devuelve un código de error adecuado en lugar de bloquearse.
Se corrigió un problema enPFUninitializeAsync()por el que dejaba de responder al usarPFGameSaveFilesen proceso cuando una devolución de llamada de error de sincronización estaba pendiente de respuesta durante el apagado. Ahora el SDK cancela automáticamente las devoluciones de llamada de interfaz de usuario pendientes al desinicializar, lo que garantiza un apagado limpio aunque el juego no responda asyncFailedCallback.
Se corrigió un problema por el que un juego podía bloquearse cuando se cambiaba el dispositivo activo mediante PlayFab Game Saves.
Se corrigió un problema por el que las devoluciones de llamada de conflicto mostraban marcas de tiempo incorrectas al usar PlayFab Game Saves en proceso.
Se corrigió un problema por el quePFGameSaveFilesSetSaveDescriptionAsyncdevolvíaE_FAILy las llamadas posteriores dejaban de responder cuando se llamaba sin conexión en Steam Deck.
Se corrigió un problema por el que cancelar una carga con errores en Steam Deck provocaba que todas las cargas posteriores generaran de forma permanente el error E_PF_GAME_SAVE_MANIFEST_UPDATES_NOT_ALLOWED.
Se corrigió un problema por el que PFGameSaveFilesUploadWithUiAsync podía quedarse bloqueado indefinidamente si se cancelaba una carga anterior durante un error del servicio. Ahora la devolución de llamada de interfaz de usuario de sincronización con errores se expone correctamente al reintentar, lo que permite al usuario cancelar o reintentar la operación.
Redes
Se corrigió un problema por el que, 24 horas después del primer intento de lobby o de matchmaking, si no se había limpiado la biblioteca, esta podía no crear lobbies posteriores, no unirse a lobbies posteriores, no suscribirse a invitaciones de lobby o no crear tickets de matchmaking posteriores.
Servicios de XBOX
Se corrigió un problema que provocaba que las devoluciones de llamada de invitación al juego no se activaran en Steam Deck en los dos casos concretos siguientes.
- Cuando no se proporcionaba ninguna cadena de conexión de Multiplayer Activity con la invitación
- Cuando el título agregaba el controlador de invitaciones después de que ya se hubiera agregado el
XUser
Se corrigió un problema por el que el entorno de ejecución de juegos en proceso no usaba la configuración de proxy de WinHTTP, lo que provocaba erroresE_XAL_NETWORKcuando se configuraba un proxy (por ejemplo, Fiddler) mediantenetsh winhttp set proxy.
Actualización 1 del GDK de octubre de 2025
Notificaciones
Funcionalidad multiplataforma
Se agregaronXUserSignOutAsyncyXUserSignOutResultpara admitir el cierre de sesión de los jugadores en Steam Deck. Se puede usarXUserIsSignOutPresentpara determinar si el dispositivo actual admite el cierre de sesión mediante la API.
Servicios de XBOX
Se agregaron tres nuevas API (XGameInviteRegisterForPendingEvent,XGameInviteUnregisterForPendingEventyXGameInviteAcceptPendingInvite) para restaurar la coherencia de las devoluciones de llamada deXGameInvite, que anteriormente se comportaban de forma incoherente entre los escenarios en proceso y fuera de proceso. El nuevo controlador de invitaciones pendientes solo se llama en los flujos en proceso. Después de que el título controle la aceptación de la invitación, se llama aXGameInviteAcceptPendingInvite. Esto desencadena la devolución de llamada de invitación aceptada. En Windows y en la consola XBOX (donde está disponible Gaming Runtime Services (GRTS)), la interfaz de usuario del shell era responsable del flujo de aceptación de invitaciones. Solo se notificaba al título cuando se aceptaba la invitación. En los escenarios en proceso, como Steam Deck, los títulos controlan la aceptación de invitaciones. La devolución de llamada deXGameInvitese activa cuando se recibe una invitación para que los títulos puedan administrar el flujo de aceptación.
Microsoft Azure PlayFab Game Saves
El seguimiento del progreso de carga ahora notifica los recuentos de bytes comprimidos. Este cambio mantiene las devoluciones de llamada de progreso y la telemetría alineadas con los datos que realmente se transmiten y evita porcentajes de “completado” prematuros cuando las partidas guardadas grandes se comprimen mal.
Se habilitaron las marcasPFGameSaveFilesAddUserOptions::RollbackToLastKnownGoodyRollbackToLastConflict, que antes estaban inactivas. Ahora respetan las solicitudes de reversión durantePFGameSaveFilesAddUserWithUiAsync. Los títulos obtienen la selección esperada en lugar de sincronizarse siempre con la partida guardada más reciente.
La inicialización ahora realiza la limpieza correctamente después de los errores E_INVALIDARG (como la falta de una ruta de partidas guardadas de Steam Deck). Este cambio garantiza que las llamadas posteriores ya no notifiquen “ya inicializado”.
Se agregó el registro para mejorar el diagnóstico al ejecutarse fuera de proceso.
Correcciones de problemas
Microsoft Azure PlayFab Party
Se corrigió un problema por el que no se podía establecer el chat de voz de PlayFab Party cuando no había ningún XUser con la sesión iniciada, incluso en juegos de Steam jugados en Windows sin un usuario de la red de XBOX y en Steam Deck.
Servicios de XBOX
Se corrigió un problema por el que el URI que recibía el juego desde las devoluciones de llamada de XGameInvite en Steam Deck no coincidía con el URI recibido en Windows. El URI de Steam Deck solo incluía la cadena de conexión, pero le faltaban la información del remitente y el XUID del usuario invitado.
GDK de octubre de 2025
Notificaciones
Desuso del diseño del GDK
Las versiones del GDK de octubre de 2025 y abril de 2026 incluyen tanto el diseño simplificado como el heredado. A partir del GDK de octubre de 2026, el programa de instalación instala solo el diseño simplificado de forma predeterminada. El diseño heredado se puede seguir seleccionando como instalación opcional, pero está en desuso y ya no es la ruta de desarrollo recomendada. El diseño heredado dejará de ser compatible y se quitará del instalador a partir de la versión del GDK de abril de 2027.
Herramientas del GDK
Se agregó la marca /updatesubval a MakePkg para comprobar si hay una versión más reciente de SubmissionValidator.dll. Si se usa esta marca y hay disponible una versión más reciente de SubmissionValidator.dll, MakePkg descarga el archivo .dll y lo coloca en la ruta de MakePkg.
La herramienta de línea de comandos de Touch Adaptation Kit (TAK CLI) (tak.exe) se quitó del programa de instalación del GDK. Para obtener instrucciones sobre cómo descargar esta herramienta, vaya a TAK CLI en GitHub.
Problemas conocidos
Flujo de XUserResolveIssueWithUiAsync
Problema:
La APIXUserResolveIssueWithUiAsyncestá pensada para resolver problemas de la cuenta de usuario, como problemas de token o de consentimiento, no para cambiar la identidad con la que se ha iniciado sesión. Sin embargo, es posible que un usuario que inició sesión originalmente con la cuenta A complete este flujo e inicie sesión con la cuenta B, lo que da como resultado un XUID diferente. Impacto:
Cuando la cuenta cambia durante este flujo, la API detecta la discrepancia y hace que la operación genere un error automáticamente. Se aplica a:Instrucciones:
- GDK de octubre de 2025
- Actualización 1 del GDK de octubre de 2025
- Actualización 2 del GDK de octubre de 2025
Si la operación genera un error debido a un cambio de cuenta, quite el usuario y vuelva a agregarlo para garantizar un inicio de sesión correcto.
RESUELTO: Descarga de datos de partidas guardadas comprimidos
Problema:
PlayFab Game Saves puede encontrar problemas al descargar datos de partidas guardadas comprimidos que tienen un tamaño mayor que su tamaño sin comprimir. Esto se produce con mayor frecuencia cuando un juego usa su propia compresión de archivos además de PlayFab Game Saves. Se aplica a:Resuelto:
- GDK de octubre de 2025
- Actualización 1 del GDK de octubre de 2025
Este problema se resolvió en la actualización 2 del GDK de octubre de 2025. Instrucciones:
Considere la posibilidad de deshabilitar la compresión de archivos adicional, si es posible.
RESUELTO: Se debe llamar a XGameInviteRegisterForPendingEvent antes de agregar XUsers
Problema:
En Steam Deck, se debe llamar aXGameInviteRegisterForPendingEventantes de agregarXUsers; de lo contrario, no se registrarán correctamente para las notificaciones de invitación. Este requisito de secuencia no era intencionado. Se aplica a:
Actualización 1 del GDK de octubre de 2025 Resuelto:
Este problema se resolvió en la actualización 2 del GDK de octubre de 2025.
RESUELTO: XGameInviteRegisterForPendingEvent requiere que se establezca connectionString
Problema:
En Steam Deck,XGameInviteRegisterForPendingEventno invoca las devoluciones de llamada del título para las invitaciones a las que les falta el valorconnectionStringde XBOX Multiplayer Activity (MPA). Aunque es un campo opcional al enviar la invitación,XGameRuntimedescarta las cargas de invitación que no lo incluyen. Se aplica a:
Actualización 1 del GDK de octubre de 2025 Resuelto:
Este problema se resolvió en la actualización 2 del GDK de octubre de 2025. Solución alternativa:
Proporcione una cadena de conexión que no esté vacía al enviar la invitación. Ignórela en el extremo receptor si no es necesaria.
Documentación
El programa de instalación del GDKX instala en el equipo de desarrollo la documentación sin conexión de la versión de octubre de 2025 del GDKX. Después de ejecutar el programa de instalación, el archivo de Ayuda del GDKX (gdk.chm) se encuentra en C:\Program Files (x86)\Microsoft GDK\Documentation.
- La documentación en línea del GDKX se encuentra en https://aka.ms/gdkonline.
