Visão geral das alterações
O SDK unificado v2 do PlayFab introduz várias melhorias importantes:- Arquitetura unificada: todos os serviços do PlayFab (Core, Services, Party, Multiplayer, GameSave) são integrados em um único SDK
- Autenticação simplificada: um único logon dá acesso a todos os serviços do PlayFab por meio de identificadores de entidade
- Gerenciamento automático de tokens: chega de atualização manual de tokens ou de gerenciamento de IDs de entidade
- Interoperabilidade aprimorada: comunicação perfeita entre os diferentes serviços do PlayFab
- Estrutura de projeto simplificada: uma única instalação de SDK em vez de vários pacotes separados
Alterações na estrutura do projeto
Para usuários do GDK
Estrutura herdada (GDK 2504 e anteriores):- Extensões separadas para cada componente do SDK
- Pastas de inclusão e de bibliotecas individuais: PlayFab.Services.Cpp, PlayFab.Party.Cpp, PlayFab.Multiplayer.Cpp
- Cada serviço tinha nomes de ExtensionLibrary distintos no GDK
- Vários downloads necessários para os diferentes serviços do PlayFab no GitHub
- Um único SDK unificado do PlayFab
- Estrutura organizada por plataforma, com subpastas (xbox, windows etc.)
- Todos os cabeçalhos consolidados em uma única pasta de inclusão (Core, Services, Multiplayer, Party, GameSave)
- Bibliotecas combinadas em uma pasta lib unificada
Atualizando as referências do projeto
Durante o período de transição (GDK 2510), os SDKs antigos e novos coexistem. Para migrar:- Remova as referências antigas: exclua as referências a PlayFab.Services.Cpp, PlayFab.Party.Cpp e outras extensões de SDK individuais
- Adicione a referência unificada: faça referência ao novo SDK unificado do PlayFab ou atualize os caminhos de inclusão/bibliotecas para os locais unificados
- Planeje para o futuro: a Microsoft removerá as pastas antigas em versões futuras do GDK (possivelmente até 2026), portanto atualize os arquivos de projeto adequadamente
Para usuários do GitHub/autônomos
- Substitua vários downloads de SDK pelo pacote único do SDK unificado
- Atualize os caminhos do projeto para usar a nova estrutura de pastas organizada por plataforma
Autenticação e tratamento de entidades
O conceito de entidades e tokens de entidade existe nas duas versões, mas a forma de usá-los foi simplificada na v2.Alterações no gerenciamento de tokens
Abordagem dos SDKs autônomos do PlayFab (v1):- Recuperação manual de tokens usando
PFAuthenticationGetEntityTokenAsync - Atualização manual dos tokens quando eles expiram
- Passagem de cadeias de caracteres de ID de entidade e token para outros serviços (por exemplo,
partyManager.CreateLocalUser(entityId, titlePlayerEntityToken, &localUser))
- Gerenciamento automático de tokens pelo SDK Core
- Atualização de tokens em segundo plano antes da expiração
- Passagem de
PFEntityHandlediretamente para outros serviços (por exemplo,partyManager.CreateLocalUser(entityHandle, &localUser))
Etapas de migração da autenticação
- Remova o gerenciamento manual de tokens: exclua o código que recupera ou verifica manualmente os tokens do PlayFab
- Armazene os identificadores de entidade: mantenha o
PFEntityHandledo logon e use-o em todos os serviços do PlayFab - Atualize as chamadas de serviço: substitua os parâmetros de ID de entidade/token por identificadores de entidade
- Trate a reautenticação: use as APIs
PFAuthenticationReLogin*Asyncem cenários de reautenticação
Alterações interruptivas na API por componente
PlayFab Core
Impacto da migração: alterações mínimas necessárias- A maioria das chamadas de serviço do Core permanece inalterada
- Atualize os caminhos de inclusão para apontar para os cabeçalhos do SDK unificado
PlayFab Services
Impacto da migração: alterações mínimas necessárias- A maioria das chamadas do Services permanece inalterada
- Atualize os caminhos de inclusão para apontar para os cabeçalhos do SDK unificado
PlayFab Party (rede/voz)
Impacto da migração: pequenas alterações necessáriasAlterações na inicialização
Inicialização na v1:Alterações na criação de usuários locais
Abordagem da v1:Etapas de migração do Party
- Atualize a inicialização: substitua a chamada simples a
PartyManager::Initialize()pela abordagem com struct de configuração - Remova a recuperação de tokens: exclua qualquer código que obtenha manualmente o ID de entidade/token para o Party
- Passe identificadores de entidade: use
PFEntityHandlediretamente em vez de parâmetros de cadeia de caracteres - Remova a lógica de atualização de tokens: exclua o código que verifica ou atualiza periodicamente os tokens do Party
- Atualize as dependências: garanta que o PlayFab Core seja inicializado antes de
PartyManager::Initialize() - Remova chamadas específicas do XBOX: substitua
PartyXblManagerInitialize()peloPartyInitialize()genérico no XBOX
PlayFab Multiplayer (Lobby e Matchmaking)
Impacto da migração: pequenas alterações necessárias Os conceitos principais (Lobby, tíquete de matchmaking) permanecem os mesmos, mas as funções agora esperam identificadores de entidade em vez de cadeias de caracteres.Alterações nas operações de lobby
Abordagem da v1:Etapas de migração do Multiplayer
- Atualize as chamadas de função: substitua os parâmetros de ID do PlayFab e token de entidade por
PFEntityHandle - Remova as etapas de autenticação: exclua as chamadas separadas de “Authenticate Multiplayer”
- Inicialize explicitamente: chame
PFMultiplayerInitialize()e, possivelmente,PFMultiplayerStartProcessing() - Atualize o matchmaking: use identificadores de entidade na criação de tíquetes de matchmaking
Lista de verificação geral da migração
Atualizações de código
- Atualize os caminhos de inclusão: aponte para o diretório de inclusão do SDK unificado
- Atualize a vinculação de bibliotecas: vincule as bibliotecas unificadas em vez das separadas
- Remova funções preteridas: exclua as chamadas a funções removidas, como
PartyManager::CreateLocalUserWithEntityType - Substitua o gerenciamento manual de tokens: remova a lógica de cache e atualização de tokens
- Atualize a ordem de inicialização: garanta que o PlayFab Core seja inicializado antes dos outros serviços
Lista de verificação de testes
Após a migração, verifique cada subsistema:- Autenticação: o logon retorna um identificador de entidade válido
- Operações de lobby: criar/ingressar em lobbies funciona corretamente
- Rede do Party: os jogadores conseguem se conectar e se comunicar entre máquinas
- Tratamento de erros: todas as chamadas do PlayFab tratam os erros adequadamente
- Cenários com vários usuários: vários usuários locais funcionam, se aplicável
Problemas comuns e soluções
Erros do compilador sobre parâmetros ausentes:- Verifique se as assinaturas de função mudaram para exigir
PFEntityHandle - Certifique-se de passar o identificador de entidade em vez de IDs em cadeia de caracteres
- Verifique se o PlayFab Core é inicializado antes dos outros serviços
- Verifique se o logon é concluído antes de criar usuários locais no Party/Multiplayer
- São raras, mas verifique se a v2 não introduz problemas em caminhos de código críticos para o desempenho
Benefícios da migração
Simplificação do código
- Complexidade reduzida: remova o código de contorno criado para a separação de serviços da v1
- Tratamento de erros unificado: todos os serviços do PlayFab usam relatórios de erro consistentes
- Autenticação centralizada: um único fluxo de logon para todos os recursos do PlayFab
Interoperabilidade aprimorada
- Integração perfeita: adicionar novos recursos do PlayFab exige configuração mínima
- Melhor suporte a vários usuários: o SDK unificado lida com vários usuários locais de forma mais eficaz
- Modelo de entidades consistente: a mesma abordagem de autenticação em todos os serviços
Preparação para o futuro
- Desenvolvimento ativo: a v2 é a versão mantida ativamente
- Novos recursos: os recursos futuros do PlayFab serão direcionados ao SDK unificado
- Suporte de longo prazo: os SDKs v1 acabarão sendo preteridos
Próximas etapas
- Atualize a estrutura do projeto: migre para a estrutura do SDK unificado
- Refatore a autenticação: implemente a abordagem baseada em identificadores de entidade
- Teste minuciosamente: valide se toda a funcionalidade do PlayFab funciona corretamente
- Limpe o código: remova os contornos preteridos da v1 e o gerenciamento manual de tokens
- Monitore o desempenho: garanta que a migração não introduza problemas de desempenho
