Introducción
Este documento está dirigido a los desarrolladores de juegos que actualmente usan MPSD y quieren pasar a usar PlayFab Multiplayer y MPA para sus juegos multijugador. El documento cubre los escenarios multijugador más comunes y proporciona fragmentos de código que muestran cómo usar PlayFab Multiplayer con MPA.Información general de Multiplayer Session Directory (MPSD)
- Servicio de sesiones con todas las características para compartir la información necesaria para conectar a un grupo de usuarios
- Integrado con la interfaz de usuario de XBOX para las funciones de invitación y unión
- Se integra totalmente con el emparejamiento de SmartMatch
- Las sesiones se derivan de plantillas de sesión predefinidas
- Funcionalidad integrada para la detección de conectividad y el flujo de sesiones
- Disponible como servicio a servicio
Información general de Multiplayer Activity Service (MPA)
- Servicio ligero para simplificar la integración de XBOX Live para actividades de jugadores, invitaciones y jugadores recientes
- Se coordina con el shell y el sistema operativo de la consola al enviar/aceptar invitaciones y al recibir uniones
- Sin administración de sesiones ni emparejamiento
- Disponible como servicio a servicio
Información general de PlayFab Multiplayer
- Servicio completo de salas multijugador que incluye funcionalidad de búsqueda y exploración de salas
- Notificaciones de servicio multiplataforma en tiempo real con integración transparente de API
- Servicio completo de emparejamiento que admite notificaciones en tiempo real
Inicialización
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y PlayFab Multiplayer para la inicialización.Inicialización: código de ejemplo
Inicialice la biblioteca con su titleID de PlayFab y establezca el token de entidad que se recibió durante el inicio de sesión en el servicio de PlayFab.Cambios de estado de la sala
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y PlayFab Multiplayer para controlar los eventos relacionados con las sesiones/salas.Cambios de estado de la sala: código de ejemplo
Notifique a la biblioteca que va a empezar a procesar los cambios de estado. Controle cada cambio de estado en cola y, a continuación, notifique que ha terminado de procesar los cambios de estado.Creación de una sala
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y PlayFab Multiplayer para crear una sesión/sala y unirse a ella.No se requiere ninguna instalación ni configuración adicional en PlayFab Game Manager para crear una sala. Toda la configuración se puede hacer en el código.
Creación de una sala: código de ejemplo
Configure la sala y establezca las propiedades iniciales de la sala o de los miembros; a continuación, cree la sala y únase a ella.Búsqueda de salas
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y PlayFab Multiplayer para buscar sesiones/salas.Búsqueda de salas: código de ejemplo
Establezca la configuración de búsqueda y, a continuación, busque salas.Claves de búsqueda de salas
Solo se permite usar un conjunto restringido de claves al definir propiedades de búsqueda personalizadas.- Para las propiedades de cadena, se admiten las claves siguientes: string_key1, string_key2, […] string_key30
- Para las propiedades numéricas, se admiten las claves siguientes: number_key1, number_key2, […] number_key30
Operadores de búsqueda de salas
Las cadenas de consulta de las API de FindLobbies están estructuradas con una sintaxis de tipo OData. El tamaño máximo de la cadena de filtro es de 600 caracteres. Estos operadores de OData se pueden usar para componer cadenas de consulta. Los operadores distinguen mayúsculas de minúsculas.Al comparar propiedades de cadena, asegúrese de encerrar el valor comparado entre comillas simples. Por ejemplo, “string_key1 eq ‘SOME STRING VALUE’”. Las propiedades numéricas no necesitan encerrarse.
Ordenación de los resultados de la búsqueda
Cadena de estilo OData que contiene la ordenación de esta consulta en orden ascendente (“asc”) o descendente (“desc”). Las cláusulas OrderBy se pueden usar con cualquiera de las claves numéricas de búsqueda o con las claves de búsqueda predefinidas que sean numéricas. Para ordenar por proximidad a un número, se puede usar un moniker distance para ordenar por distancia respecto a la clave de búsqueda numérica dada. No puede usar ascendente ni descendente con la ordenación por distancia. Este campo solo admite una cláusula de ordenación o una cláusula de distancia. Si no se proporciona ninguna ordenación, o si se necesita un criterio de desempate para la ordenación dada, la ordenación predeterminada será descendente según la hora de creación.Ordenación y filtrado de los resultados de la búsqueda: código de ejemplo
Unión a una sala
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y PlayFab Multiplayer para unirse a sesiones/salas.Para unirse a una sala se requiere una cadena de conexión. Normalmente, el anfitrión de la sala establecerá esta cadena de conexión en su actividad o la enviará mediante una invitación. Para obtener la cadena de conexión, tiene que llamar a
PFLobbyGetConnectionString.Unión a una sala: código de ejemplo
Establezca la configuración de unión inicial y, a continuación, únase a la sala.Actualización de una sala
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y PlayFab Multiplayer para actualizar una sesión/sala.PFLobbyPostUpdate se puede usar para actualizar tanto las propiedades de la sala como las propiedades de los miembros. Puede actualizar uno o ambos tipos de propiedades con una sola llamada a la función.Actualización de una sala: código de ejemplo (propiedades de la sala)
Actualización de una sala: código de ejemplo (propiedades de los miembros)
Emparejamiento
Las API de emparejamiento de PlayFab Multiplayer son relativamente similares a las API de emparejamiento de MPSD.Las colas de emparejamiento deben configurarse mediante PlayFab Game Manager.
Cambios de estado del emparejamiento
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y PlayFab Multiplayer para controlar los eventos relacionados con el emparejamiento.Cambios de estado del emparejamiento: código de ejemplo
Notifique a la biblioteca que va a empezar a procesar los cambios de estado. Controle cada cambio de estado en cola y, a continuación, notifique que ha terminado de procesar los cambios de estado.Inicio del emparejamiento
Inicio del emparejamiento: código de ejemplo
El emparejamiento no comenzará hasta que todos los especificados en el campo
membersToMatchWith se hayan unido.Limpieza
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y PlayFab Multiplayer para la limpieza y el cierre.Asegúrese de salir de todas las salas activas y de destruir los vales de emparejamiento en curso antes de llamar a
PFMultiplayerUninitialize.Limpieza: código de ejemplo
Actividades
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y MPA para administrar actividades.Al establecer una actividad o enviar una invitación, asegúrese de usar la cadena de conexión que devuelve
PFLobbyGetConnectionString.Actividades: código de ejemplo
Invitaciones
En la tabla siguiente se muestra una lista de funciones comparables que usan MPSD y MPA para enviar y recibir invitaciones.Invitaciones: código de ejemplo (interfaz de usuario del título)
Invitaciones: código de ejemplo (interfaz de usuario de XBOX)
XGameUiShowMultiplayerActivityGameInviteResult usa la actividad establecida actualmente. Debe establecer una actividad mediante XblMultiplayerActivitySetActivityAsync antes de usar esta función.Jugadores recientes
En la tabla siguiente se muestra cómo se administra la lista de jugadores recientes al usar MPSD y MPA.Para evitar la limitación, el procedimiento recomendado es procesar por lotes las llamadas a
XblMultiplayerActivityUpdateRecentPlayers.