Se recomienda encarecidamente que considere el uso de los Multiplayer SDK, ya que incluyen compatibilidad con mensajes en tiempo real que reduce la necesidad de sondeo, lo que mejora la experiencia de emparejamiento y reduce los retrasos. Uso de vales de reposición de servidor - Multiplayer SDK
- Coincidencia
- Los vales de reposición no pueden coincidir entre sí.
- Los vales de reposición tienen prioridad durante la búsqueda. Esto reduce la fragmentación de la base de jugadores.
- Contrato
- Los vales de reposición se pueden crear con un campo
ServerDetails. Esto permite al servidor indicar cómo deben conectarse a él los jugadores emparejados. - Los vales de reposición se pueden crear con asignaciones de equipo. Esto permite que los juegos con equipos mantengan su información de equipo.
- Los vales de reposición se pueden crear con un campo
- Propiedades de la cola
- Los vales de reposición no desencadenan la asignación de Multiplayer Server.
- Los vales de reposición no se reflejan en las estadísticas de cola, ya que sus jugadores ya están jugando una partida y sesgarían de forma imprecisa el tiempo de espera.
- Propiedad
- Los vales de reposición pertenecen a un servidor de juego, no a un usuario. Los usuarios no pueden ver los vales de reposición ni interactuar con ellos de ninguna manera.
Creación de un vale de reposición de servidor
El proceso de reposición comienza de forma similar a la creación de un vale de emparejamiento normal, pero con la llamada CreateServerBackfillTicket en lugar de una llamada CreateServerMatchmakingTicket. El servidor de juego debe proporcionar toda la información de los miembros de la partida que hospeda actualmente. La forma más eficaz de hacerlo es almacenar los atributos devueltos en el resultado de la partida anterior. Estos atributos se pueden recuperar llamando a GetMatch con la marcaReturnMemberAttributes. Como alternativa, el servidor de juego puede consultar a los usuarios para obtener la información de atributos.
Además de los miembros, el servidor de juego puede especificar dos datos adicionales.
ServerDetails
Esta estructura es idéntica a la estructura devuelta en una llamada GetMatch, y permite al servidor especificar cualquier información necesaria para conectarse a él. Cuando el vale de reposición coincide, su estructura ServerDetails se devuelve a los jugadores que llamen a GetMatch en la partida resultante. Todos los campos de esta estructura son opcionales. Es posible que los títulos solo necesiten un subconjunto de ellos para proporcionar información suficiente para que los clientes se conecten al servidor de juego.El campo
IPV4Address no se valida y puede usarse para proporcionar información arbitraria de cadena de conexión a los clientes.Asignaciones de equipo
Si el vale de reposición se envía a una cola con equipos, cada miembro también puede especificarse con un TeamId, que indica el equipo en el que se encuentra actualmente. Esta pertenencia se conserva cuando se devuelve una partida. Si no se especifica un TeamId para un usuario, este puede colocarse en cualquier equipo.Interacción con un vale de reposición
Una vez creado, un vale de reposición comienza a buscar vales de emparejamiento normales que cumplan los criterios de las reglas. El flujo de los vales de reposición es idéntico al funcionamiento de los vales de emparejamiento normales, pero con API análogas. El servidor de juego puede comprobar el estado de su vale llamando a GetServerBackfillTicket. También puede cancelar el vale llamando a CancelServerBackfillTicket.Los clientes no pueden cancelar un vale de reposición en el que se encuentren. Supongamos que un cliente estaba en una partida 4 contra 4 y un jugador del equipo contrario abandonó. El cliente podría mantener su ventaja cancelando continuamente los vales de reposición en los que estuviera. Para evitarlo, solo los servidores de juego pueden cancelar vales de reposición.
Límites de pertenencia y recuperación de vales de reposición perdidos
Al igual que con los vales de emparejamiento normales, en cualquier momento un usuario solo puede estar en un vale de reposición por cola. Este límite se registra por separado de los vales normales que controla un cliente. En el caso de que un servidor de juego cree un vale de reposición y luego se bloquee, los usuarios del vale de reposición perdido no podrán enviarse en otro vale de reposición debido al límite de pertenencia. Un servidor de juego lo descubre al recibir el errorMatchmakingTicketMembershipLimitExceeded, junto con una lista de usuarios que indica cuáles tienen vales de reposición pendientes en un cuerpo errorDetails.
