Emparejamiento
Este es un flujo simplificado de cómo usar el emparejamiento y MPSD junto con PlayFab Party:- Los jugadores crearán sesiones de MPSD que representan los grupos que quieren jugar juntos en las sesiones de emparejamiento y se reunirán en ellas. Los jugadores se reunirán en estas sesiones mediante las características de invitación y unión de XBOX.
- Esos grupos de jugadores enviarán vales al servicio de emparejamiento, que reunirá a los grupos de jugadores compatibles en una sesión de emparejamiento. Esta sesión de emparejamiento estará representada, a su vez, por un nuevo documento de sesión al que los jugadores se unirán. Los jugadores también deben escuchar los cambios de este documento de sesión.
- Una vez que la sesión de emparejamiento se haya finalizado y la lista de participantes esté bloqueada, el título debe elegir a uno de los miembros de la sesión de emparejamiento para configurar la red de PlayFab Party. Una estrategia sencilla para seleccionar al creador de la red de Party es usar el primer miembro del documento de sesión de MPSD de emparejamiento.
-
El miembro seleccionado creará la red con una
PartyInvitationinicial que restringe el acceso a la red solo a los miembros de la sesión de emparejamiento. Una vez que la red se haya creado correctamente, el miembro seleccionado debe publicar el descriptor de red resultante y la invitación de Party en el documento de sesión como una propiedad de sesión para que los demás miembros la usen. -
Cuando cada miembro vea el documento de sesión actualizado, podrá usar el descriptor de red y la invitación para conectarse a la red y unirse a ella.
Aquí hemos presentado un flujo para incorporar el emparejamiento y MPSD con PlayFab Party. Las ideas fundamentales de este flujo se pueden extender a otros flujos que puedan interesarle con MPSD, pero presentar todos los flujos posibles queda fuera del ámbito de esta documentación. Para obtener más información, consulte la documentación completa de MPSD.
Invitaciones de la plataforma
Este es un flujo de cómo incorporar las invitaciones de la plataforma XBOX en PlayFab Party:-
PlayerA crea un documento de sesión de MPSD, escucha los cambios de la sesión y crea una red de Party. Cuando se haya completado la creación de la red de Party, *PlayerA *publica el descriptor de red y una invitación inicial (si es necesario) en el documento de sesión de MPSD.
- Cuando PlayerA quiere invitar a PlayerB a la red de Party, PlayerA inicia una invitación de la plataforma para PlayerB a través de la interfaz de usuario del juego o de la consola.
- PlayerB recibe la invitación de la plataforma, que incluye un “invite handle” que PlayerB puede usar para encontrar el documento de sesión de MPSD de PlayerA.
- PlayerB se une al documento de sesión y escucha los cambios.
-
PlayerA ve que PlayerB se une al documento de sesión. PlayerA crea una nueva invitación para que la use PlayerB y la publica en el documento de sesión.
-
PlayerB ve la invitación publicada en el documento de sesión y la usa para unirse a la red de Party.
Las invitaciones creadas a través de PartyNetwork::CreateInvitation dejarán de ser válidas si el PartyLocalUser que las creó abandona la red. Por lo tanto, si un usuario nuevo se agrega a un documento de sesión pero el usuario que lo invitó se va, se recomienda que el usuario nuevo se quite del documento de sesión y espere a que otro usuario lo vuelva a invitar.
Unión a partidas en curso
Unirse a sesiones de juego en curso es muy similar al escenario de invitación de la plataforma. La diferencia fundamental es que, en lugar de que PlayerA envíe a PlayerB un “invite handle”, PlayerB obtendrá un “join handle” cuando inicie una unión a una partida en curso desde la interfaz de usuario de la plataforma. Con este “join handle”, PlayerB se unirá al documento de sesión y escuchará los cambios. PlayerA responderá creando y publicando en el documento de sesión una nueva invitación de Party para él. PlayerB verá esta nueva invitación junto con el descriptor de red y la usará para unirse a la red de Party.Las invitaciones creadas a través de PartyNetwork::CreateInvitation dejarán de ser válidas si el PartyLocalUser que las creó abandona la red. Por lo tanto, si un usuario nuevo recibe una invitación de Party del flujo de unión a una partida en curso, pero no puede usarla porque el usuario que la creó se ha ido, se recomienda que el usuario nuevo se quite del documento de sesión y se vuelva a unir más tarde. Esto permitirá que otro miembro de la sesión reinicie el flujo y genere una nueva invitación de Party para este usuario.
Desconexiones y limpieza
Si un jugador abandona una red de Party o se desconecta de ella por cualquier otro motivo, también debe quitarse de las sesiones de MPSD asociadas a esa red de Party. Las desconexiones de la red de Party no iniciadas por una operación PartyNetwork::LeaveNetwork se consideran irrecuperables. Después de experimentar una desconexión irrecuperable, un jugador puede intentar volver a conectarse y a autenticarse en la red, pero también debe volver a unirse a la sesión de MPSD. Si la conexión de un jugador a una sesión de MPSD se interrumpe temporalmente, es posible que se desconecte de esa sesión. Los jugadores pueden intentar volver a unirse a la sesión pero, si no lo consiguen, deben quitarse voluntariamente de la red de Party llamando a PartyNetwork::LeaveNetwork.Los mecanismos y las heurísticas que detectan las desconexiones de las redes de Party y de las sesiones de MPSD son diferentes. Incluso en escenarios en los que un jugador se desconecte tanto de la red de Party como de la sesión de MPSD, estos eventos de desconexión son independientes y no se garantiza que se produzcan cerca en el tiempo. Los títulos deben controlar el escenario en el que un jugador podría desconectarse solo de la red de Party o solo de la sesión de MPSD.
