Descripción de la relación entre Lobby y Matchmaking
Lobby y Matchmaking funcionan a la perfección juntos para crear una experiencia de matchmaking multijugador coherente para su título.- Matchmaking reúne a un conjunto de jugadores que buscan participar en una sesión de juego.
- Después de que el matchmaking identifique un conjunto de jugadores, Lobby les proporciona un medio de comunicación para coordinar la unión a una sesión de juego juntos.
- Entre los escenarios comunes del lobby se incluyen compartir la información de conexión del servidor de juego, compartir las IP de los clientes para juegos entre pares (peer-to-peer) y compartir las configuraciones de los jugadores.
Lobbies organizados
Los títulos pueden usar los “lobbies organizados” (Arranged Lobbies) para facilitar la creación de lobbies para los jugadores que se agrupan mediante matchmaking. Después de que el ticket de matchmaking empareje correctamente a un grupo de jugadores, el ticket de matchmaking contiene un lobbyArrangementString. Cada jugador puede entonces pasar la cadena de organización a PFMultiplayerJoinArrangedLobby para unirse al mismo lobby.Escenario de ejemplo
Un jugador quiere jugar con otras personas. El jugador inicia una partida multijugador, invita a amigos y espera a que otros se unan.Especificaciones de diseño
- La partida está abierta para que se una cualquiera.
- El conjunto inicial de jugadores se rellena mediante matchmaking.
- El propietario del lobby puede invitar a amigos a unirse.
- Cuando se alcanza el número requerido de jugadores, todos los jugadores del lobby reciben un mensaje que les pregunta si están listos para empezar la partida. Tienen un minuto para responder. La partida comienza después de que todos los jugadores hayan confirmado que están listos para empezar.
- Si algunos jugadores del lobby no confirmaron su estado de listos para jugar, el propietario del lobby puede quitarlos como jugadores inactivos y usar el matchmaking para encontrar nuevos jugadores que los sustituyan rápidamente.
- Cuando un jugador se desconecta inesperadamente durante la partida, el título debe encontrar un sustituto para el jugador desconectado mediante matchmaking usando el relleno de servidor (backfill).
- Cuando la partida termina, todos los jugadores vuelven al lobby. Los jugadores reciben los logros de equipo por igual. Pueden quedarse para empezar otra partida juntos o abandonar el lobby.
Implementación
En esta sección se describe cómo usar Matchmaking y Lobby para implementar las especificaciones de diseño.- Crear un lobby formado por matchmaking
- Enviar invitaciones a amigos
- Permitir que las personas encuentren la partida y se unan a ella
- Obtener la confirmación de los jugadores para empezar la partida
- Quitar y reemplazar a los jugadores inactivos
- Gestionar una partida finalizada
Crear un lobby formado por matchmaking
Cree un lobby público para un grupo de jugadores emparejados mediante matchmaking.- Cada jugador crea un ticket de matchmaking con sus atributos de matchmaking especificados.
- Para obtener más información, consulte Especificar atributos de ticket.
- Todos los tickets creados se agregan a una cola de matchmaking para emparejarse entre sí.
- Los tickets se emparejan según reglas.
- Las reglas se pueden definir en la configuración de la cola de matchmaking.
- Para obtener más información, consulte Configurar colas de matchmaking.
- Después del matchmaking, cada jugador se une al lobby formado por matchmaking mediante el lobbyArrangementString del ticket de matchmaking.
- Al unirse al lobby organizado, especifique que el accessPolicy del lobby sea Public para que el lobby esté abierto.
- Para obtener más información, consulte Lobbies organizados.
- El primer jugador que se une al lobby organizado se convierte en el propietario del lobby.
- Las propiedades del lobby se pueden usar para especificar qué mapa de juego pretende usar una sesión de juego.
- Para obtener más información, consulte Propiedades del lobby.
- Use las propiedades de búsqueda para permitir que los jugadores encuentren este lobby y esta sesión de juego entre todos los lobbies activos de su título.
- Para obtener más información, consulte Propiedades de búsqueda.
Enviar invitaciones a amigos
Permita que el propietario del lobby seleccione amigos y envíe invitaciones.- Obtenga la lista de amigos del propietario del lobby
- Muestre la interfaz de usuario del juego para permitir que el propietario del lobby seleccione a los amigos a los que invitar
- Envíe invitaciones dentro del juego a los amigos seleccionados.
- Para obtener más información, consulte Invitaciones de lobby.
Permitir que las personas encuentren la partida y se unan a ella
Configure las propiedades de búsqueda del lobby para permitir que otros jugadores lo encuentren- Muestre todos los lobbies en la interfaz de usuario del juego. Su título también debe proporcionar una forma de aceptar los términos de búsqueda del jugador.
- Use PFMultiplayerFindLobbies con los parámetros de búsqueda del jugador para devolver una lista de lobbies que coincidan con los criterios.
- Cuando un jugador seleccione unirse a una partida, use PFMultiplayerJoinLobby para agregar al jugador a la partida.
Obtener la confirmación de los jugadores para empezar la partida
Informe a todos los jugadores del lobby de que la partida está lista para empezar- Cuando el número requerido de jugadores esté en el lobby, muestre la interfaz de usuario del juego para que los jugadores confirmen que están listos para empezar a jugar.
- Permita que el propietario del lobby vea estas respuestas de confirmación.
Quitar y reemplazar a los jugadores inactivos
El propietario del lobby tiene la capacidad de quitar a los jugadores inactivos o desconectados e iniciar el matchmaking para llenar los puestos restantes- Si un jugador se desconecta o no respondió en el plazo establecido (un minuto), use PFLobbyForceRemoveMember para quitar al jugador.
- El propietario del lobby usa CreateServerBackfillTicket para crear un ticket de matchmaking. Los tickets creados con esta API tienen prioridad durante la búsqueda. Este enfoque minimiza la interrupción del juego. Para obtener más información, consulte Uso de tickets de relleno de servidor.
- Después de unirse al lobby de relleno, el propietario del lobby de la partida puede compartir la cadena de conexión del lobby original con los nuevos jugadores de relleno para que se unan al lobby original.
- Amplíe la hora de inicio de la partida cuando corresponda.
Gestionar una partida finalizada
Cuando finaliza la partida, todos los jugadores vuelven a la pantalla del lobby para completar la sesión de juego.- Los lobbies son transitorios, por lo que cualquier dato del lobby que deba conservarse debe ser retenido por cada jugador en este momento.
- Por ejemplo, algunos escenarios de juego pueden beneficiarse de procesar los datos almacenados en las propiedades de los miembros y convertirlos en logros de los jugadores.
- Los jugadores que quieran seguir jugando con el mismo grupo permanecen en el lobby.
- Los jugadores que quieran dejar de jugar con el mismo grupo abandonan el lobby con PFLobbyLeave y reinician el proceso con un nuevo grupo de matchmaking.
