Skip to main content

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

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.bat para 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}.uproject y, 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 DriverClassName requiere 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.
Todas las plataformas permiten VoIP de forma predeterminada. Para deshabilitar VoIP en una plataforma específica, agregue el nombre del modelo de plataforma a su archivo de configuración de Unreal Engine, como se muestra en el ejemplo siguiente.
Estos pasos completan la configuración del OSS necesaria para usarlo en su juego.

Uso en el código del juego

PlayFab Online Subsystem solo admite el nombre de la sesión de juego como NAME_GameSession
De forma similar al uso de otros complementos de Online Subsystem: Agregue PublicDependencyModuleNames.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:
Código de ejemplo en GameFriends.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 PlayFabParty como deshabilitado:
  • Vaya a Engine\Platforms\GDK\Plugins\Online\OnlineSubsystemGDK\Source\
  • Abra OnlineSubsystemGDK.Build.cs y comente la inclusión de PlayFabParty:
Si usa Unreal Engine 5.0 - 5.3:
  • 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.
Si usa Unreal Engine 4.27+:
  • 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.
Ejemplo de configuración de Modules en PlayFabParty.uplugin para Unreal Engine 4.27+:

Error de protocolo de enlace en Steam

Si ve errores de protocolo de enlace (como LogHandshake: 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:
El módulo OnlineSubsystemModule de Unreal Engine crea una instancia del subsistema en línea para PlayFab y comienza a crear ⁠PlayFabSingleton. En este punto, el SDK se inicializa en⁠ 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.
Última modificación el 28 de agosto de 2026