Información general de los cambios
El SDK unificado v2 de PlayFab presenta varias mejoras clave:- Arquitectura unificada: todos los servicios de PlayFab (Core, Services, Party, Multiplayer, GameSave) están integrados en un solo SDK
- Autenticación simplificada: un inicio de sesión proporciona acceso a todos los servicios de PlayFab mediante identificadores de entidad
- Administración automática de tokens: se acabó la actualización manual de tokens y la administración de identificadores de entidad
- Interoperabilidad mejorada: comunicación fluida entre los diferentes servicios de PlayFab
- Estructura de proyecto simplificada: una única instalación de SDK en lugar de varios paquetes independientes
Cambios en la estructura del proyecto
Para usuarios del GDK
Diseño heredado (GDK 2504 y anteriores):- Extensiones independientes para cada componente del SDK
- Carpetas de inclusión y de bibliotecas individuales: PlayFab.Services.Cpp, PlayFab.Party.Cpp, PlayFab.Multiplayer.Cpp
- Cada servicio tenía nombres de ExtensionLibrary distintos en el GDK
- Se requerían varias descargas para los diferentes servicios de PlayFab desde GitHub
- Un único SDK unificado de PlayFab
- Estructura organizada por plataforma con subcarpetas (xbox, windows, etc.)
- Todos los encabezados consolidados en una sola carpeta de inclusión (Core, Services, Multiplayer, Party, GameSave)
- Bibliotecas combinadas en una carpeta lib unificada
Actualización de las referencias del proyecto
Durante el período de transición (GDK 2510), los SDK antiguos y nuevos coexisten. Para migrar:- Quite las referencias antiguas: elimine las referencias a PlayFab.Services.Cpp, PlayFab.Party.Cpp y otras extensiones de SDK individuales
- Agregue la referencia unificada: haga referencia al nuevo SDK unificado de PlayFab o actualice las rutas de inclusión y de bibliotecas a las ubicaciones unificadas
- Planifique para el futuro: Microsoft quitará las carpetas antiguas en futuras versiones del GDK (posiblemente para 2026), así que actualice los archivos del proyecto en consecuencia
Para usuarios de GitHub/independientes
- Reemplace las descargas de varios SDK por el paquete único del SDK unificado
- Actualice las rutas del proyecto para usar la nueva estructura de carpetas organizada por plataforma
Autenticación y manejo de entidades
El concepto de entidades y tokens de entidad existe en ambas versiones, pero la forma de usarlos se ha simplificado en v2.Cambios en la administración de tokens
Enfoque de los SDK independientes de PlayFab (v1):- Recuperación manual de tokens mediante
PFAuthenticationGetEntityTokenAsync - Actualización manual de tokens cuando expiran
- Paso de cadenas de identificador de entidad y token a otros servicios (por ejemplo,
partyManager.CreateLocalUser(entityId, titlePlayerEntityToken, &localUser))
- Administración automática de tokens por parte del SDK de Core
- Actualización de tokens en segundo plano antes de que expiren
- Paso de
PFEntityHandledirectamente a otros servicios (por ejemplo,partyManager.CreateLocalUser(entityHandle, &localUser))
Pasos de migración para la autenticación
- Quite la administración manual de tokens: elimine el código que recupera o comprueba manualmente los tokens de PlayFab
- Almacene los identificadores de entidad: conserve el
PFEntityHandledel inicio de sesión y úselo en todos los servicios de PlayFab - Actualice las llamadas a los servicios: reemplace los parámetros de identificador de entidad/token por identificadores de entidad
- Controle la reautenticación: use las API
PFAuthenticationReLogin*Asyncpara escenarios de reautenticación
Cambios importantes en la API por componente
PlayFab Core
Impacto de la migración: se requieren cambios mínimos- La mayoría de las llamadas al servicio de Core permanecen sin cambios
- Actualice las rutas de inclusión para que apunten a los encabezados del SDK unificado
PlayFab Services
Impacto de la migración: se requieren cambios mínimos- La mayoría de las llamadas a los servicios permanecen sin cambios
- Actualice las rutas de inclusión para que apunten a los encabezados del SDK unificado
PlayFab Party (redes/voz)
Impacto de la migración: se requieren pequeños cambiosCambios en la inicialización
Inicialización en v1:Cambios en la creación de usuarios locales
Enfoque en v1:Pasos de migración para Party
- Actualice la inicialización: reemplace la llamada simple a
PartyManager::Initialize()por el enfoque con estructura de configuración - Quite la recuperación de tokens: elimine cualquier código que obtenga manualmente el identificador de entidad/token para Party
- Pase identificadores de entidad: use
PFEntityHandledirectamente en lugar de parámetros de cadena - Quite la lógica de actualización de tokens: elimine el código que comprueba o actualiza periódicamente los tokens de Party
- Actualice las dependencias: asegúrese de que PlayFab Core se inicialice antes de
PartyManager::Initialize() - Quite las llamadas específicas de XBOX: reemplace
PartyXblManagerInitialize()por el genéricoPartyInitialize()en XBOX
PlayFab Multiplayer (Lobby y Matchmaking)
Impacto de la migración: se requieren pequeños cambios Los conceptos básicos (Lobby, Ticket de matchmaking) siguen siendo los mismos, pero las funciones ahora esperan identificadores de entidad en lugar de cadenas.Cambios en las operaciones de Lobby
Enfoque en v1:Pasos de migración para Multiplayer
- Actualice las llamadas a funciones: reemplace los parámetros de identificador de PlayFab y token de entidad por
PFEntityHandle - Quite los pasos de autenticación: elimine las llamadas independientes de “Authenticate Multiplayer”
- Inicialice explícitamente: llame a
PFMultiplayerInitialize()y posiblemente aPFMultiplayerStartProcessing() - Actualice el matchmaking: use identificadores de entidad en la creación de tickets de matchmaking
Lista de comprobación general de migración
Actualizaciones de código
- Actualice las rutas de inclusión: apunte al directorio de inclusión del SDK unificado
- Actualice la vinculación de bibliotecas: vincule las bibliotecas unificadas en lugar de las independientes
- Quite las funciones en desuso: elimine las llamadas a funciones eliminadas como
PartyManager::CreateLocalUserWithEntityType - Reemplace la administración manual de tokens: quite la lógica de almacenamiento en caché y actualización de tokens
- Actualice el orden de inicialización: asegúrese de que PlayFab Core se inicialice antes que los demás servicios
Lista de comprobación de pruebas
Después de la migración, verifique cada subsistema:- Autenticación: el inicio de sesión devuelve un identificador de entidad válido
- Operaciones de Lobby: la creación y unión a salas funciona correctamente
- Redes de Party: los jugadores pueden conectarse y comunicarse entre máquinas
- Control de errores: todas las llamadas a PlayFab controlan los errores adecuadamente
- Escenarios multiusuario: varios usuarios locales funcionan si corresponde
Problemas comunes y soluciones
Errores del compilador sobre parámetros ausentes:- Compruebe si las firmas de las funciones cambiaron para requerir
PFEntityHandle - Asegúrese de pasar el identificador de entidad en lugar de identificadores de cadena
- Verifique que PlayFab Core se inicialice antes que los demás servicios
- Compruebe que el inicio de sesión se complete antes de crear usuarios locales en Party/Multiplayer
- Poco frecuentes, pero verifique que v2 no presente problemas en rutas de código críticas para el rendimiento
Ventajas de la migración
Simplificación del código
- Complejidad reducida: quite el código de soluciones alternativas para la separación de servicios de v1
- Control de errores unificado: todos los servicios de PlayFab usan una notificación de errores coherente
- Autenticación centralizada: un solo flujo de inicio de sesión para todas las características de PlayFab
Interoperabilidad mejorada
- Integración fluida: agregar nuevas características de PlayFab requiere una configuración mínima
- Mejor compatibilidad multiusuario: el SDK unificado maneja varios usuarios locales de manera más eficaz
- Modelo de entidad coherente: el mismo enfoque de autenticación en todos los servicios
Preparación para el futuro
- Desarrollo activo: v2 es la versión mantenida activamente
- Nuevas características: las futuras capacidades de PlayFab se dirigirán al SDK unificado
- Soporte a largo plazo: los SDK v1 quedarán en desuso con el tiempo
Pasos siguientes
- Actualice la estructura del proyecto: migre al diseño del SDK unificado
- Refactorice la autenticación: implemente el enfoque basado en identificadores de entidad
- Pruebe exhaustivamente: valide que toda la funcionalidad de PlayFab funcione correctamente
- Limpie el código: quite las soluciones alternativas en desuso de v1 y la administración manual de tokens
- Supervise el rendimiento: asegúrese de que la migración no introduzca problemas de rendimiento
