Inicio rápido: PlayFab Online Subsystem
Este artículo le ayuda a configurar y usar características multijugador de PlayFab como Lobby, Matchmaking y Party para juegos creados con Unreal Engine 4 o Unreal Engine 5. Para ver la lista completa de plataformas y versiones compatibles en Unreal Engine 4 o Unreal Engine 5, consulte Plataformas compatibles. Después de seguir los pasos pertinentes que se describen en esta página para sus plataformas de destino, estará listo para empezar a usar el PlayFab Online Subsystem (PF OSS). La autenticación, las redes, el VOIP, la agrupación en lobbies y el emparejamiento se gestionan en su nombre sin necesidad de otros cambios.Descarga e instalación de PlayFab Online Subsystem
Vaya a PlayFab Online Subsystem para descargar o clonar el código fuente de PF OSS. El nombre del repositorio descargado o clonado es PlayFabMultiplayerUnreal. Debe cambiarse el nombre del repositorio a OnlineSubsystemPlayFab.Lo que necesita
- TitleID de PlayFab: si no tiene un TitleID configurado para los kits de desarrollo de software (SDK) de PlayFab Party y Multiplayer, consulte Habilitación de PlayFab Party.
Microsoft Game Development Kit (GDK), PC, Switch, PlayStation®5 y PlayStation®4
- Bibliotecas de PlayFab Party y de Lobby y Matchmaking específicas de la plataforma: consulte Obtención de las bibliotecas de PlayFab Party y Multiplayer.
Configuración inicial
Base de código de Unreal Engine
- Copie la carpeta OnlineSubsystemPlayFab y su contenido en el directorio de Unreal Engine en Engine\Plugins\Online.
- Ejecute
GenerateProjectFiles.batpara crear los archivos de proyecto del motor. - Cargue el proyecto en Visual Studio seleccionando el nuevo archivo
UE5.sln. - Establezca la configuración de la solución en Development Editor y la plataforma de la solución en Win64. Seleccione el destino Unreal Engine 5 y, después, seleccione Build.
Base de código del juego
- Para agregar OnlineSubsystemPlayFab a su lista de complementos, aplique los siguientes cambios a la sección Plugins del archivo de proyecto.
- Quite las plataformas en las que no vaya a publicar
- Use XboxOneGDK en lugar de XB1 si usa Unreal Engine 4. Unreal Engine 5 deja en desuso XboxOneGDK
- Genere el archivo de solución del juego seleccionando el archivo
{ProjectName}.uprojecty, después, seleccione Switch Unreal Engine Version hacia la ruta del código de Unreal Engine.
Configuración del juego
- Independientemente de la plataforma de destino, su juego debe configurar ciertos valores específicos de PlayFab en el archivo INI del destino de plataforma previsto (ubicado en [yourGameDirectory]/Platforms/[yourPlatform]/Config).
- XBOX Series X GDK: XSXEngine.ini
- PC GDK: WinGDKEngine.ini
- XBOX One GDK: XB1Engine.ini (o XboxOneGDKEngine.ini si usa Unreal Engine 4)
- PC Steam: WindowsEngine.ini (o búsquelo en [yourGameDirectory]/Config/Windows)
- Nintendo Switch SwitchEngine.ini
- PS4™ PS4Engine.ini
- PS5™ PS5Engine.ini
- Reemplace las secciones INI en la configuración si ya existen (por ejemplo, Engine.GameEngine) por las que se presentan en las secciones siguientes.
- Asegúrese de reemplazar todos los campos <REPLACE ME> por sus datos:
- En UE 5.6 y versiones posteriores, el parámetro
DriverClassNamerequiere el prefijo “/Script/”. Por ejemplo, use"/Script/OnlineSubsystemPlayFab.PlayFabNetDriver"en lugar de"OnlineSubsystemPlayFab.PlayFabNetDriver".
Consideraciones específicas de la plataforma
Con todo eso hecho, ya casi hemos terminado. Solo quedan por establecer algunos parámetros clave específicos de la plataforma.GDK
Al desarrollar juegos con el GDK, configure los servicios de plataforma.Steam
Si desarrolla juegos para Win64 con Steam, defina sus servicios de plataforma.Switch
Para obtener más información sobre Switch, consulte el archivo ReadMe.md que se incluye con el PlayFab OSS para Switch. Si no tiene acceso, puede solicitar acceso a nuestros repositorios privados.PS5™ y PS4™
Para obtener más información sobre PS5™ y PS4™, consulte el archivo ReadMe.md que se incluye con el PlayFab OSS para PS5™ y PS4™. Si no tiene acceso, puede solicitar acceso a nuestros repositorios privados.Multiplataforma
Si su juego usa la compatibilidad con redes multiplataforma de PlayFab, defina qué plataformas permite conectar.Uso en el código del juego
PlayFab Online Subsystem solo admite el nombre de la sesión de juego como
NAME_GameSessionPublicDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils" }); en Game.Build.cs y, a continuación, úselo de la misma manera que otros complementos del juego.
Código de ejemplo en GameSession.cpp:
Solución de problemas
Maneras de ayudarle a solucionar problemas.Compilaciones instaladas de Unreal Engine
Los usuarios pueden enfrentarse a problemas al intentar crear una compilación instalada de Unreal Engine con OnlineSubsystemPlayFab en las variantes de compilación de GDK. Proporcionamos las siguientes instrucciones para superar correctamente este problema hasta que haya una solución más completa. Si usa Unreal Engine 5.4, 5.5, 5.6 o 5.7:- Es posible que encuentre el siguiente error en tiempo de ejecución:
Runtime dependency Party.dll is configured to be staged from C:\Program Files (x86)\Microsoft GDK\<version>\Party.dll and Engine\Plugins\Online\OnlineSubsystemPlayFab\Platforms\GDK\Redist\Party.dll - Vaya a Engine\Platforms\GDK\Plugins\Online\OnlineSubsystemGDK\
- Abra OnlineSubsystemGDK.uplugin y establezca
PlayFabPartycomo deshabilitado:
- Vaya a Engine\Platforms\GDK\Plugins\Online\OnlineSubsystemGDK\Source\
- Abra OnlineSubsystemGDK.Build.cs y comente la inclusión de
PlayFabParty:
- Localice el directorio donde está instalado Unreal Engine en la máquina.
- Vaya a Engine\Platforms\GDK\Plugins\Online\PlayFabParty
- Abra PlayFabParty.uplugin y actualice la configuración de Modules con PlatformDenyList:
- Repita este proceso para XB1 (PlayFabParty_XB1.uplugin) y XSX (PlayFabParty_XSX.uplugin) si estas plataformas son necesarias para la compilación instalada. Si Win64 también es una plataforma necesaria para la compilación instalada, agregue Win64 en la matriz de PlatformDenyList.
- Localice el directorio donde está instalado Unreal Engine en la máquina.
- Vaya a Engine\Platforms\GDK\Plugins\Online\PlayFabParty
- Abra PlayFabParty.uplugin
- Reemplace la clave WhitelistPlatforms por BlacklistPlatforms
- Repita el proceso para XboxOneGDK (PlayFabParty_XboxOneGDK.uplugin) y XSX (PlayFabParty_XSX.uplugin) si estas plataformas son necesarias para la compilación instalada. Si Win64 también es una plataforma necesaria para la compilación instalada, agregue Win64 en la matriz de BlacklistPlatforms.
Error de protocolo de enlace en Steam
Si ve errores de protocolo de enlace (comoLogHandshake: IncomingConnectionless: Error reading handshake packet), consulte esta publicación del foro de Unreal Engine para comprobar la configuración.
Flujo de trabajo de OnlineSubsystemPlayFab
Los pasos descritos en la sección Consideraciones específicas de la plataforma le piden que incluya:FOnlineSubsystemPlayFab::Init(),
donde inicializa los SDK de Party y Multiplayer con el TitleID de PlayFab (este titleID se define dentro del archivo de configuración del juego). Durante la inicialización, se ejecutará CreatePlayFabSocketSubsystem() como subsistema en línea principal.
Flujo de trabajo del SDK de Multiplayer: FOnlineSubsystemPlayFab::Init() inicializa el singleton del SDK multijugador InitializeMultiplayer() para su título. En PlayFabLobby.cpp, FPlayFabLobby::DoWork() procesa los
cambios de estado desencadenados por las API de Multiplayer (vea Platforms/GDK/Include/PFLobby.h para las API).
Flujo de trabajo del SDK de Party: FOnlineSubsystemPlayFab::Init() inicializa el singleton del SDK multijugador InitializeParty() para su título. En OnlineSubsystemPlayFab.cpp, FOnlineSubsystemPlayFab::DoWork() procesa los
cambios de estado desencadenados por las API de Party (vea Platforms/GDK/Include/Party.h para las API).
“PlayStation” es una marca comercial registrada o marca comercial de Sony Interactive Entertainment Inc.
“PS4” es una marca comercial registrada o marca comercial de Sony Interactive Entertainment Inc.
“PS5” es una marca comercial registrada o marca comercial de Sony Interactive Entertainment Inc.