Pular para o conteúdo principal

Introdução

Bem-vindo à versão de outubro de 2025 do Microsoft Game Development Kit. Você pode usar o GDK para desenvolver jogos que podem ser certificados e aprovados para lançamento em PCs com Windows 11 e PCs com Windows 10.

Sobre este documento

Organizamos este documento nas seções a seguir.

Novidades do Microsoft Game Development Kit de outubro de 2025

  • O GDK é lançado em dois tipos: Principais (com foco em recursos, duas vezes por ano) e Atualizações (com foco em correções, com a frequência necessária).
  • Para ver a seção Novidades completa, consulte a versão online de Novidades.

GDK de outubro de 2025 – Atualização 5

Correções de problemas

Serviços XBOX

Corrigido um problema em que um título iniciado no Steam Deck sem conexão de rede nunca detectava quando a rede ficava disponível, fazendo com que a entrada e outras solicitações HTTP falhassem até que o título fosse reiniciado. [64171298]

Social Manager

Corrigido um problema em que o Social Manager podia usar um pico excessivo de memória ao carregar grafos sociais grandes porque a resposta do People Hub era copiada várias vezes durante o processamento. [64354447]

PlayFab Game Saves

Corrigido um problema ao usar o PlayFab Game Saves em processo em que PFGameSaveFilesUploadWithUiAsync falhava com um erro genérico, como E_INVALIDARG, se um arquivo de salvamento estivesse bloqueado por outro gravador ou fosse removido durante o upload, e podia ignorar um novo arquivo bloqueado mesmo relatando êxito. Agora, esses uploads falham com o novo erro E_PF_GAMESAVE_LOCAL_FILE_UNAVAILABLE, que é transitório: chame o upload novamente depois que o título terminar de gravar o arquivo. [64280746]
Corrigido um problema ao usar o PlayFab Game Saves em processo em que a reversão com PFGameSaveFilesAddUserWithUiAsync e RollbackToLastKnownGood ou RollbackToLastConflict restaurava o salvamento mais antigo localmente, mas não o confirmava na nuvem, de modo que o salvamento do qual o jogador havia revertido voltava na próxima sincronização ou em outros dispositivos. Agora, a reversão é confirmada na nuvem pelo próximo upload do título. [64280747]
Corrigido um problema ao usar o PlayFab Game Saves em processo em que o progresso de upload de PFGameSaveFilesUiProgressGetProgress permanecia em 64 KiB durante a maior parte da transferência e seu total mudava do tamanho do salvamento para o tamanho compactado no meio do processo, impedindo que os títulos exibissem um progresso contínuo. Agora, o progresso de upload e download é atualizado ao longo de toda a transferência em relação a um total estável. [64039954]
Corrigido um problema ao usar o PlayFab Game Saves em processo em que um upload repetido ou sobreposto podia falhar porque a limpeza de outra tentativa de upload excluía seus arquivos preparados. [64040433]
Corrigida uma possível falha ao usar o PlayFab Game Saves em processo se um upload falhasse durante a compactação dos arquivos de salvamento, por exemplo, porque não era possível abrir um arquivo de salvamento. [64040433]
Corrigido um problema em que chamar uma função de resultado do PlayFab Game Saves, como PFGameSaveFilesUploadWithUiResult, após PFGameSaveFilesUninitializeAsync, por exemplo, na suspensão, retornava E_PF_GAMESAVE_NOT_INITIALIZED em vez do resultado da operação concluída. [64040433]

GDK de outubro de 2025 – Atualização 4

Correções de problemas

PlayFab Game Saves

Corrigido um problema em que aplicar a exclusão de uma pasta na nuvem podia excluir arquivos locais que nunca haviam sido sincronizados. Também foi aumentada a granularidade dos relatórios de progresso de upload para que os títulos possam animar uma barra de progresso determinada durante a compactação. [63666969]
Corrigido um problema em que transferências de armazenamento em nuvem com falha eram relatadas como bem-sucedidas, o que podia finalizar um salvamento com dados ausentes e impedir permanentemente que os salvamentos desse jogador fossem sincronizados em todos os dispositivos. [63475452]
Corrigidos problemas que podiam causar perda de dados de salvamento durante a sincronização, corrupção de memória quando salvamentos de jogo compartilhavam um contexto do GDK e tratamento incorreto de manifestos que falhavam na validação. [63647898]
Corrigido um problema em que o retorno de chamada de progresso da sincronização de salvamentos de jogo relatava um tamanho total igual a zero, impedindo que os títulos exibissem uma barra de progresso determinada. [63529869]

GDK de outubro de 2025 – Atualização 3

Notificações

Registro de associações de tipo de arquivo

Jogos para PC agora podem registrar associações de tipo de arquivo em MicrosoftGame.Config. Quando um usuário abre um arquivo com uma extensão registrada, o jogo é iniciado ou trazido para o primeiro plano. Esse comportamento é habilitado por meio das APIs XGameActivation* (por exemplo, XGameActivationRegisterForEvent()).

Entrada

Controles com detecção de movimento que usam comunicação simples entre processos (SIPC) agora compartilham o pipeline de fusão de sensores do PC. O dimensionamento do acelerômetro e do giroscópio, a captura do viés do giroscópio na inicialização e a correção de desvio baseada em repouso estão no mesmo nível do PC. Como resultado, IGameInputReading::GetMotionState retorna uma orientação relativa à gravidade com um desvio limitado.

PlayFab Game Saves

A capacidade de preservar e reverter para o salvamento de jogo descartado ao escolher entre Keep Local ou Keep Cloud no Steam Deck foi desabilitada para corresponder ao comportamento do XBOX/Gaming Runtime Services (GRTS).

Correções de problemas

Rede

Corrigido um problema em que a biblioteca podia falhar após perder uma conexão WebSocket enquanto estava pausada em um depurador.

Serviços XBOX

Corrigido um problema em que chamadas HTTP baseadas em WinHTTP podiam apresentar instabilidade devido a uma condição de uso após liberação em libHttpClient.

Entrada

Corrigido um problema em que ocorria um possível erro de memória insuficiente ao chamar GameInputCreate na versão NuGet do GameInput no XBOX.
Corrigido um problema em que a entrada podia ser perdida após retomar um jogo suspenso.

Mídia

Corrigido um problema que fazia a Media Foundation Transform (MFT) do decodificador H.264 parar de responder durante a destruição quando o decodificador era criado e destruído sem o envio de amostras de vídeo de entrada.

PlayFab Game Saves

Corrigido um problema em que PFGameSaves tratava incorretamente chaves do Registro ausentes, resultando em um erro de inicialização.
Corrigidos problemas menores de relatório de telemetria no Steam Deck em que determinados campos de diagnóstico eram preenchidos incorretamente durante operações de salvamento.

GDK de outubro de 2025 – Atualização 2

Notificações

Atualizações do Microsoft Azure PlayFab Party para a v2.2.7

  • Alterado o comportamento de PartyStatusChangeResult de PartyNetwork::CreateEndpoint para retornar PartyServiceError para erros transitórios que ocorrem antes de o token expirar e para retornar UserNotAuthorized somente quando o token realmente tiver expirado.
  • Adicionado suporte à seleção de dispositivo de áudio para ambientes do Gaming Runtime Services (GRTS) sem XUser ou em processo.
  • Corrigida uma possível falha durante cenários de transição entre várias redes.

Atualizações do PlayFab Party para a v1.10.16

  • O comportamento de PartyStatusChangeResult de PartyNetwork::CreateEndpoint foi alterado para retornar PartyServiceError para erros transitórios que ocorrem antes de o token expirar e para retornar UserNotAuthorized somente quando o token realmente tiver expirado.
  • Foi adicionado suporte à seleção de dispositivo de áudio para ambientes do Gaming Runtime Services (GRTS) sem XUser ou em processo.
  • Foi corrigida uma possível falha durante cenários de transição entre várias redes.

Serviços XBOX

Adicionado suporte para habilitar a saída de rastreamento para o depurador no xgamingruntime em processo, correspondendo à funcionalidade existente do Gaming Runtime Services (GRTS). Para habilitar mensagens de rastreamento HTTP/WebSocket na janela Saída do Visual Studio, defina a chave do Registro HKEY_LOCAL_MACHINE\Software\Microsoft\GamingServices\Auth\TraceToDebugger (REG_DWORD) como 1. Essa configuração é útil para depurar problemas de rede, configuração de proxy e problemas de autenticação. O recurso é opcional e não tem impacto quando desabilitado.

Rede

O XCurl foi atualizado para permitir várias chamadas a xcurl_global_init_mem() ou curl_global_init_mem() entre chamadas a curl_global_cleanup(). Esse novo comportamento corresponde ao comportamento da LibCurl para curl_global_init_mem(), alinhando a API XCurl às expectativas da LibCurl. Além disso, curl_global_init(), curl_global_init_mem(), xcurl_global_init_mem() e curl_global_cleanup() passaram a ser thread-safe.

Correção da simulação de marcas do Intelligent Delivery no packageutil compare

Um erro de lógica no packageutil compare fazia com que as simulações do Intelligent Delivery excluíssem marcas obrigatórias não OnDemand sempre que qualquer simulação baseada em marcas era executada. Isso produzia previsões imprecisas de tamanho e atualização para títulos que usam empacotamento OnDemand ou baseado em Feature. A correção garante que:
  • Marcas não OnDemand sejam sempre incluídas nas simulações de pacotes que não são baseados em Feature.
  • Pacotes baseados em Feature tenham suporte total, incluindo marcas segmentadas e simulações de recurso completo e de recurso único.
Essa correção restaura a precisão dos relatórios de tamanho e permite que os parceiros avaliem corretamente as configurações de ID. Binário afetado: PackageUtil.exe

Correções de problemas

Ferramentas do GDK

Corrigido um problema que fazia com que os Prompts de Comando do GDK incluídos no instalador do GDK Tools não incluíssem corretamente o diretório bin do GDK, onde as ferramentas estão localizadas.
Corrigido um problema que fazia a ferramenta XblTestAccountGui não conseguir entrar, com a seguinte mensagem de erro. Live auth error: Login Error: The remote server returned an error: (400) Bad Request.
Corrigido um problema que fazia instalações silenciosas do GDK que usavam a opção de linha de comando /features ignorarem a instalação dos componentes do layout herdado.

Microsoft Azure PlayFab Game Saves

Corrigido um problema de FAIL_FAST na retomada quando um jogo usa o PlayFab Game Saves.
Corrigido um problema ao usar o PlayFab Game Saves em processo em que o retorno de chamada de contenção de dispositivo podia ser invocado incorretamente quando não ocorria nenhum conflito real de dispositivo. Anteriormente, o SDK do PlayFab tratava a ausência de um manifesto pendente como prova de que outro dispositivo havia assumido o controle. No entanto, isso também podia acontecer em cenários normais (por exemplo, quando nenhuma sincronização estava em andamento ou quando o dispositivo local concluía seu próprio upload). Agora, o SDK verifica corretamente se o manifesto finalizado foi realmente criado por um dispositivo diferente antes de disparar o retorno de chamada de contenção, evitando notificações falso-positivas para o jogo.
Corrigido um problema em que a inicialização do PlayFab Game Saves falhava no Gaming Runtime Services (GRTS) se o diretório da pasta de salvamento especificada ainda não existisse ou se o caminho fornecido não tivesse uma barra invertida à direita. Agora, o SDK do PlayFab cria automaticamente o diretório, se necessário, e garante a formatação adequada do caminho antes da inicialização.
Corrigido um problema de sincronização em que a versão em processo do PlayFab Game Saves podia reutilizar incorretamente um manifesto pendente desatualizado depois que a versão do manifesto finalizado na nuvem já o havia ultrapassado. Agora, o manifesto pendente só é reutilizado quando pertence ao dispositivo atual e tem uma versão maior que a versão finalizada na nuvem. Essa alteração evita possíveis inconsistências de dados durante cenários de sincronização entre vários dispositivos.
Corrigido um problema em que os carimbos de data/hora de modificação de arquivos estavam incorretos ao sincronizar salvamentos de jogo entre dispositivos que usam provedores de armazenamento diferentes (em processo versus Gaming Runtime Services (GRTS)). Agora, os carimbos de data/hora dos arquivos são preservados e convertidos corretamente para UTC ao criar arquivos compactados, garantindo um comportamento consistente dos carimbos de data/hora em todas as plataformas.
Corrigido um problema em que a descrição de um Game Save retornava dados malformados/corrompidos no Steam Deck. Agora, as descrições de salvamento são decodificadas corretamente em Base64 quando são recuperadas do manifesto, garantindo que você obtenha o texto de descrição legível originalmente definido.
Corrigido um problema ao usar o PlayFab Game Saves em processo em que cancelar uma operação de sincronização na caixa de diálogo de progresso podia causar uma falha de asserção e um comportamento instável. O mecanismo de cancelamento foi reformulado para usar uma abordagem com um sinalizador atômico thread-safe. Essa alteração permite que os usuários cancelem com segurança operações de upload ou download em andamento na interface do usuário de progresso sem disparar condições de corrida ou falhas de asserção. Agora, o SDK verifica corretamente se há solicitações de cancelamento durante as principais etapas da operação de sincronização e é encerrado de forma limpa com um código de erro de cancelamento pelo usuário.
Corrigido um problema ao usar o PlayFab Game Saves em processo em que o download de um grande número de arquivos pequenos (por exemplo, 1.000 ou mais arquivos de texto pequenos) falhava. O acompanhamento de progresso usava incorretamente os tamanhos de arquivo não compactados para relatar o progresso da transferência, o que causava incompatibilidades ao lidar com muitos arquivos pequenos compactados. Agora, o relatório de progresso acompanha corretamente os tamanhos em bytes compactados para refletir com precisão o progresso real da transferência pela rede.
Corrigida uma falha ao usar o PlayFab Game Saves em processo que ocorria ao chamar a API PFGameSaveFilesSetSaveDescriptionAsync enquanto desconectado da nuvem. Agora, essa API retorna um código de erro apropriado em vez de falhar.
Corrigido um problema em PFUninitializeAsync() em que ele parava de responder ao usar PFGameSaveFiles em processo quando um retorno de chamada de falha de sincronização estava aguardando resposta durante o desligamento. Agora, o SDK cancela automaticamente os retornos de chamada de interface do usuário pendentes ao cancelar a inicialização, garantindo um desligamento limpo mesmo que o jogo não responda a syncFailedCallback.
Corrigido um problema em que um jogo podia falhar quando o dispositivo ativo era alterado usando o PlayFab Game Saves.
Corrigido um problema em que os retornos de chamada de conflito exibiam carimbos de data/hora incorretos ao usar o PlayFab Game Saves em processo.
Corrigido um problema em que PFGameSaveFilesSetSaveDescriptionAsync retornava E_FAIL e as chamadas subsequentes paravam de responder quando chamado offline no Steam Deck.
Corrigido um problema em que cancelar um upload com falha no Steam Deck fazia com que todos os uploads subsequentes falhassem permanentemente com E_PF_GAME_SAVE_MANIFEST_UPDATES_NOT_ALLOWED.
Corrigido um problema em que PFGameSaveFilesUploadWithUiAsync podia travar indefinidamente se um upload anterior fosse cancelado durante um erro de serviço. Agora, o retorno de chamada de interface do usuário de falha de sincronização é exibido corretamente na nova tentativa, permitindo que o usuário cancele ou repita a operação.

Rede

Corrigido um problema em que, 24 horas após a primeira tentativa de lobby ou de matchmaking, se a biblioteca não tivesse sido limpa, ela podia falhar ao criar lobbies subsequentes, ingressar em lobbies subsequentes, assinar convites de lobby ou criar tíquetes de matchmaking subsequentes.

Serviços XBOX

Corrigido um problema que fazia com que os retornos de chamada de convite de jogo não fossem disparados no Steam Deck nos dois casos específicos a seguir.
  • Quando nenhuma Multiplayer Activity Connection String era fornecida com o convite
  • Quando o manipulador de convites era adicionado pelo título depois que o XUser já havia sido adicionado
Corrigido um problema em que o runtime de jogos em processo não usava as configurações de proxy do WinHTTP, causando erros E_XAL_NETWORK quando um proxy (por exemplo, o Fiddler) era configurado via netsh winhttp set proxy.

GDK de outubro de 2025 – Atualização 1

Notificações

Funcionalidade multiplataforma

XUserSignOutAsync e XUserSignOutResult foram adicionados para dar suporte à saída do jogador no Steam Deck. XUserIsSignOutPresent pode ser usado para determinar se o dispositivo atual dá suporte à saída via API.

Serviços XBOX

Três novas APIs — XGameInviteRegisterForPendingEvent, XGameInviteUnregisterForPendingEvent e XGameInviteAcceptPendingInvite — foram adicionadas para restaurar a consistência dos retornos de chamada de XGameInvite, que antes se comportavam de forma inconsistente entre cenários em processo e fora de processo. O novo manipulador de convites pendentes é chamado somente em fluxos em processo. Depois que o título trata a aceitação do convite, XGameInviteAcceptPendingInvite é chamado. Isso dispara o retorno de chamada de convite aceito. No Windows e no console XBOX (onde o Gaming Runtime Services (GRTS) está disponível), a interface do usuário do shell era responsável pelo fluxo de aceitação de convites. O título só era notificado quando o convite era aceito. Em cenários em processo, como no Steam Deck, os títulos tratam a aceitação de convites. O retorno de chamada de XGameInvite é disparado quando um convite é recebido, para que os títulos possam gerenciar o fluxo de aceitação.

Microsoft Azure PlayFab Game Saves

O acompanhamento do progresso de upload agora relata contagens de bytes compactados. Essa alteração mantém os retornos de chamada de progresso e a telemetria alinhados com os dados realmente transmitidos e evita porcentagens de “concluído” prematuras quando salvamentos grandes têm baixa compactação.
Os sinalizadores PFGameSaveFilesAddUserOptions::RollbackToLastKnownGood e RollbackToLastConflict, antes inativos, foram habilitados. Agora eles atendem às solicitações de reversão durante PFGameSaveFilesAddUserWithUiAsync. Os títulos obtêm a seleção esperada em vez de sempre sincronizar com o salvamento mais recente.
A inicialização agora é limpa corretamente após falhas E_INVALIDARG (como um caminho de salvamento do Steam Deck ausente). Essa alteração garante que as chamadas subsequentes não relatem mais “already initialized”.
Foi adicionado registro em log para melhorar o diagnóstico ao executar fora de processo.

Correções de problemas

Microsoft Azure PlayFab Party

Corrigido um problema em que o chat de voz do PlayFab Party não podia ser estabelecido quando nenhum XUser estava conectado, incluindo em jogos da Steam executados no Windows sem um usuário da rede XBOX e no Steam Deck.

Serviços XBOX

Corrigido um problema em que o URI recebido pelo jogo dos retornos de chamada de XGameInvite no Steam Deck não correspondia ao URI recebido no Windows. O URI do Steam Deck incluía apenas a cadeia de conexão, mas não tinha as informações do remetente nem o XUID do usuário convidado.

GDK de outubro de 2025

Notificações

Preterição do layout do GDK

As versões do GDK de outubro de 2025 e abril de 2026 incluem tanto o layout simplificado quanto o layout herdado. A partir do GDK de outubro de 2026, a instalação instala por padrão somente o layout simplificado. O layout herdado ainda pode ser selecionado como uma instalação opcional, mas ele foi preterido e não é mais o caminho de desenvolvimento recomendado. O layout herdado deixará de ter suporte e será removido do instalador a partir da versão do GDK de abril de 2027.

Ferramentas do GDK

O sinalizador /updatesubval foi adicionado ao MakePkg para verificar se há uma versão mais recente da SubmissionValidator.dll. Se esse sinalizador for usado e houver uma versão mais recente da SubmissionValidator.dll disponível, o MakePkg baixará e colocará o arquivo .dll no caminho do MakePkg.
A Touch Adaptation Kit Command Line Tool (TAK CLI) (tak.exe) foi removida da instalação do GDK. Para obter instruções sobre como baixar essa ferramenta, acesse TAK CLI no GitHub.

Problemas conhecidos

Fluxo de XUserResolveIssueWithUiAsync

Problema:
A API XUserResolveIssueWithUiAsync destina-se a resolver problemas de conta de usuário, como problemas de token ou de consentimento, e não a alterar a identidade conectada. No entanto, é possível que um usuário que entrou originalmente com a Conta A conclua esse fluxo e entre com a Conta B, resultando em um XUID diferente.
Impacto:
Quando a conta muda durante esse fluxo, a API detecta a incompatibilidade e faz a operação falhar automaticamente.
Aplica-se a:
  • GDK de outubro de 2025
  • GDK de outubro de 2025 – Atualização 1
  • GDK de outubro de 2025 – Atualização 2
Diretrizes:
Se a operação falhar devido a uma alteração de conta, remova o usuário e adicione-o novamente para garantir a entrada correta.

RESOLVIDO: Download de dados de salvamento compactados

Problema:
O PlayFab Game Saves pode encontrar problemas ao baixar dados de salvamento compactados maiores que seu tamanho não compactado. Isso ocorre com mais frequência quando um jogo usa sua própria compactação de arquivos além do PlayFab Game Saves.
Aplica-se a:
  • GDK de outubro de 2025
  • GDK de outubro de 2025 – Atualização 1
Resolvido:
Esse problema foi resolvido no GDK de outubro de 2025 – Atualização 2.
Diretrizes:
Considere desabilitar a compactação de arquivos adicional, se possível.

RESOLVIDO: XGameInviteRegisterForPendingEvent deve ser chamado antes de adicionar XUsers

Problema:
No Steam Deck, XGameInviteRegisterForPendingEvent deve ser chamado antes de adicionar XUsers; caso contrário, eles não serão registrados corretamente para notificações de convite. Esse requisito de sequência não foi intencional.
Aplica-se a:
GDK de outubro de 2025 – Atualização 1
Resolvido:
Esse problema foi resolvido no GDK de outubro de 2025 – Atualização 2.

RESOLVIDO: XGameInviteRegisterForPendingEvent exige que connectionString esteja definido

Problema:
No Steam Deck, XGameInviteRegisterForPendingEvent não invoca os retornos de chamada do título para convites que não têm o connectionString da XBOX Multiplayer Activity (MPA). Embora seja um campo opcional ao enviar o convite, o XGameRuntime descarta os conteúdos de convite que não o incluem.
Aplica-se a:
GDK de outubro de 2025 – Atualização 1
Resolvido:
Esse problema foi resolvido no GDK de outubro de 2025 – Atualização 2.
Solução alternativa:
Forneça uma cadeia de conexão não vazia ao enviar o convite. Ignore-a no lado do destinatário se ela não for necessária.

Documentação

A documentação offline da versão de outubro de 2025 do GDKX é instalada no seu PC de desenvolvimento pelo programa de Instalação do GDKX. Depois de executar a Instalação, o arquivo de Ajuda do GDKX (gdk.chm) estará em C:\Program Files (x86)\Microsoft GDK\Documentation.
Última modificação em 6 de novembro de 2026