El SDK multijugador de PlayFab también proporciona API para las salas (Lobbies) de PlayFab. * Para obtener más información sobre las API de C++, consulte el Inicio rápido del SDK de Lobby * Para obtener más información sobre las API de Unity, consulte el Inicio rápido para Unity * Para obtener más información sobre las API de Unreal, consulte el Inicio rápido para Unreal
Requisitos previos
Necesita una cuenta de PlayFab para usar PlayFab Matchmaking. Para obtener instrucciones sobre cómo crear una cuenta, consulte Inicio rápido: Game Manager.Configurar una cola de emparejamiento en Game Manager
La biblioteca empareja a los usuarios que crean tickets para las colas configuradas en Game Manager. Para obtener detalles sobre cómo configurar una, consulte Configuración de colas de emparejamiento.Descargar y configurar el SDK multijugador de PlayFab
Descargue el SDK de C/C++ para su plataforma e integre los archivos de encabezado y biblioteca proporcionados en su compilación.Este inicio rápido se centra en el uso del SDK de C/C++. Para las interfaces de Unity y Unreal, consulte los siguientes artículos: * Inicio rápido para Unity * Inicio rápido para Unreal
Iniciar sesión con una entidad de PlayFab
Para usar el SDK de Lobby de PlayFab, debe autenticar su cliente mediante claves de entidad y tokens de entidad de PlayFab. Adquiera un par de clave de entidad y token de PlayFab iniciando sesión con la API REST LoginWithCustomId. Esta API también está disponible como proyección de C/C++ a través del SDK de REST de PlayFab.LoginWithCustomId es una forma rápida de empezar a usar las características de PlayFab, pero no está pensada como el mecanismo de inicio de sesión que incluirá en su versión final. Para obtener orientación sobre el inicio de sesión, consulte Conceptos básicos y procedimientos recomendados de inicio de sesión.
Inicializar el SDK multijugador de PlayFab
Inicialice el SDK multijugador de PlayFab siguiendo estos pasos básicos:- Inicialice el SDK llamando a PFMultiplayerInitialize
- Establezca la clave de entidad y el token que usa la biblioteca en nombre de los jugadores llamando a PFMultiplayerSetEntityToken.
Crear un ticket de emparejamiento
Un ticket de emparejamiento se crea mediante PFMultiplayerCreateMatchmakingTicket, en el que se especifican todos los usuarios locales que deben formar parte de la partida y los atributos que desee asociar a esos usuarios. Esta función también toma una estructura PFMatchmakingTicketConfiguration donde se especifica a qué cola pertenece el ticket, un tiempo de espera para el ticket y los usuarios remotos que desee emparejar en este ticket.Emparejamiento con un único usuario local
Puede iniciar el emparejamiento para un único usuario local con una llamada a PFMultiplayerCreateMatchmakingTicket.Emparejamiento con un grupo de usuarios remotos
Para iniciar el emparejamiento en grupo con usuarios remotos, resulta útil considerar a un cliente como el líder. Haga que el líder cree el ticket mediante PFMultiplayerCreateMatchmakingTicket, especificando los demás usuarios del grupo a través del parámetro configuration. Una vez creado el ticket, llame a GetTicketId para obtener el identificador del ticket. Envíe este identificador a cada uno de los demás usuarios a través de un mecanismo externo, como una malla de red o una sala compartida de PlayFab, y haga que cada cliente llame a PFMultiplayerJoinMatchmakingTicketFromId con el identificador del ticket para unirse al ticket de emparejamiento. El estado del ticket será PFMatchmakingTicketStatus::WaitingForPlayers mientras espera a que se unan los jugadores especificados y cambiará a PFMatchmakingTicketStatus::WaitingForMatch una vez que todos los jugadores se hayan unido al ticket.Emparejamiento con varios usuarios locales
Al emparejar con varios usuarios locales, en lugar de pasar una sola PFEntityKey a las funciones PFMultiplayerCreateMatchmakingTicket o PFMultiplayerJoinMatchmakingTicketFromId, debe pasar una lista de claves. De forma similar, deberá pasar una lista de atributos para cada usuario. Las posiciones de las entradas de cada lista deben corresponderse entre sí. Es decir, la primera entrada de la lista de atributos debe contener los atributos del primer jugador de la lista de PFEntityKey.Comprobar el estado del ticket de emparejamiento
Debe comprobar las actualizaciones del ticket llamando a PFMultiplayerStartProcessingMatchmakingStateChanges para recibir los cambios de estado y, después, llamando a PFMultiplayerFinishProcessingMatchmakingStateChanges cuando haya terminado de procesar esos cambios de estado. El SDK devolverá un cambio de estado TicketStatusChanged cada vez que cambie el estado del ticket y un cambio de estado TicketCompleted cuando el emparejamiento haya finalizado.Ejemplo con el SDK de cliente de Matchmaking
Obtener la partida
Después de recibir el cambio de estado PFMatchmakingStateChangeType::TicketCompleted, llame a PFMatchmakingTicketGetMatch para obtener los detalles de la partida. Estos detalles contendrán el identificador de la partida, los usuarios que se han emparejado, la región preferida para la partida y una cadena de organización (arrangement string) para la sala asociada a la partida. Una vez que haya recuperado la información que necesite de la estructura PFMatchmakingMatchDetails, el ticket debe destruirse con PFMultiplayerDestroyMatchmakingTicket.Ejemplo con el SDK de cliente de Matchmaking
Cancelación de un ticket de emparejamiento
Si por algún motivo su cliente desea cancelar el proceso de emparejamiento antes del tiempo de espera establecido enPFMatchmakingTicketConfiguration, llame a PFMatchmakingTicketCancel con el identificador del ticket.
Llamar a esta API no garantiza que el ticket se cancele. El ticket todavía podría completarse antes de que se procese la cancelación, o la solicitud de cancelación podría fallar debido a errores de red o del servicio. Puede seguir procesando los cambios de estado del emparejamiento para obtener el resultado del ticket si desea confirmar que la cancelación del ticket se ha completado antes de continuar. De lo contrario, puede llamar inmediatamente a PFMultiplayerDestroyMatchmakingTicket.
Ejemplo con el SDK de cliente de Matchmaking
(Opcional) Conectar a los jugadores en una sala
Después de que los jugadores se hayan emparejado, pueden unirse en una sala (lobby). La estructura PFMatchmakingMatchDetails del ticket emparejado contiene un campo lobbyArrangementString, que puede usarse para unir a los usuarios en la misma sala. Para obtener más información sobre cómo interactúan Lobby y Matchmaking, consulte Uso conjunto de sala y emparejamiento. Para obtener más información sobre las salas de PlayFab, consulte la Información general de Lobby de PlayFab.Ejemplo con el SDK de cliente de Matchmaking
Conclusión
Con este inicio rápido, ahora debería tener un flujo de emparejamiento funcional en su juego. Además, debería tener en cuenta lo siguiente:- Cómo controla el título la formación de grupos.
- Qué muestra el título mientras los usuarios esperan una partida.
- Cómo controlar los errores y los reintentos.
