> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Uso del emparejamiento de SmartMatch

> Use el emparejamiento de SmartMatch de XBOX para crear sesiones de vale de emparejamiento, establecer atributos de jugador, administrar la QoS y reutilizar sesiones de juego en su título multijugador.

<a id="top" />

Este tema describe cómo usar SmartMatch para emparejar jugadores en un juego multijugador.

[Diagrama de flujo: el proceso de emparejamiento de SmartMatch](#flow-chart-smartmatch-matchmaking-process)
[Creación de una sesión de vale de emparejamiento y de un vale de emparejamiento](#creating-a-match-ticket-session-and-a-match-ticket)
[Establecimiento de atributos de emparejamiento en la sesión y en los jugadores](#setting-matchmaking-attributes-on-the-session-and-players)
[Realización del emparejamiento](#making-the-match)
[Mantenimiento del vale de emparejamiento](#maintaining-the-match-ticket)
[Reutilización de la sesión de juego como sesión de vale de emparejamiento](#reusing-the-game-session-as-a-match-ticket-session)
[Eliminación del vale de emparejamiento](#deleting-the-match-ticket)
[Realización del emparejamiento para juegos mediante XBOX Compute](#performing-matchmaking-for-games-using-xbox-live-compute)
[Consulte también](#see-also)

<a id="flow-chart-smartmatch-matchmaking-process" />

## Diagrama de flujo: el proceso de emparejamiento de SmartMatch

El diagrama de flujo siguiente ilustra el proceso de emparejamiento de SmartMatch.

<img src="https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/services/Multiplayer_2015_SmartMatch_Matchmaking.png?fit=max&auto=format&n=gzrdvT5kpqAXKEQt&q=85&s=2754663723a8fc3a3214f997266f015c" alt="Imagen de un diagrama de flujo de emparejamiento que ilustra el proceso de emparejamiento de SmartMatch" width="1133" height="1064" data-path="images/gdk/services/Multiplayer_2015_SmartMatch_Matchmaking.png" />

[Volver al principio de este tema.](#top)

<a id="creating-a-match-ticket-session-and-a-match-ticket" />

## Creación de una sesión de vale de emparejamiento y de un vale de emparejamiento

Antes de que comience el proceso de emparejamiento, un "explorador" de emparejamiento configura una sesión de vale de emparejamiento para representar al grupo de personas que quieren entrar juntas en el emparejamiento.
Todos los jugadores de este grupo se unen a la sesión mediante [XblMultiplayerSessionJoin](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersessionjoin).

Una vez creada la sesión de vale y rellenada con jugadores, el título envía la sesión al servicio de emparejamiento mediante [XblMatchmakingCreateMatchTicketAsync](/reference/live/xsapi-c/matchmaking_c/functions/xblmatchmakingcreatematchticketasync).
Este método crea un vale de emparejamiento que representa la sesión de vale y, a continuación, actualiza el campo `/servers/matchmaking/properties/system/status` de la sesión de vale a `searching`.
Para obtener más información, consulte la sección [Crear un vale de emparejamiento](/services/xbox-services/multiplayer/mpsd/how-to/live-mpsd-how-tos#camt) del tema de tareas de multijugador.

La respuesta del método de creación del vale de emparejamiento es un objeto [XblCreateMatchTicketResponse](/reference/live/xsapi-c/matchmaking_c/structs/xblcreatematchticketresponse).
La respuesta contiene el identificador del vale de emparejamiento. Se trata de un GUID que se puede usar para cancelar el emparejamiento eliminando el vale.
La respuesta también contiene un tiempo de espera medio para el hopper, que se puede usar para establecer las expectativas de los jugadores.

[Volver al principio de este tema.](#top)

<a id="setting-matchmaking-attributes-on-the-session-and-players" />

## Establecimiento de atributos de emparejamiento en la sesión y en los jugadores

Al enviar una sesión al emparejamiento, el título puede establecer atributos que el servicio de emparejamiento usa para agrupar la sesión con otras sesiones.
El título puede especificar atributos en el nivel del vale o en el nivel de cada miembro.

### Establecimiento de atributos de emparejamiento en el nivel del vale de emparejamiento

El título envía los atributos en el nivel del vale de emparejamiento en el parámetro `ticketAttributesJson` del método [XblMatchmakingCreateMatchTicketAsync](/reference/live/xsapi-c/matchmaking_c/functions/xblmatchmakingcreatematchticketasync).
Los atributos que se especifican en el nivel del vale invalidan los mismos atributos que se especifican en el nivel de cada miembro.

### Establecimiento de atributos de emparejamiento en el nivel de cada miembro

El título especifica los atributos por miembro en cada miembro dentro de la sesión de vale de emparejamiento.
Estos atributos se establecen llamando a [XblMultiplayerSessionCurrentUserSetCustomPropertyJson](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersessioncurrentusersetcustompropertyjson) con un nombre de propiedad de `matchAttrs`.
Esta llamada coloca los atributos en el campo `/members/{index}/properties/custom/matchAttrs` de cada jugador dentro de la sesión de vale.

El proceso de emparejamiento "aplana" los atributos por miembro, cada uno en un único atributo en el nivel del vale, según el método `flatten` que se haya especificado para ese atributo en la configuración de los servicios de XBOX para el hopper.
Esto se configura en [Partner Center](https://partner.microsoft.com/dashboard).

[Volver al principio de este tema.](#top)

<a id="making-the-match" />

## Realización del emparejamiento

Con la sesión de vale y el vale de emparejamiento configurados, el servicio de emparejamiento empareja la sesión de vale representada con otras sesiones de vale que representan otros grupos y, a continuación, crea o identifica una sesión de destino del emparejamiento.
El servicio también crea reservas para los jugadores emparejados en la sesión de destino y, a continuación, marca las sesiones de vale como emparejadas.
El Multiplayer Session Directory (MPSD) notifica al título este cambio en la sesión de vale.

A continuación, el título debe tomar medidas para inicializar la sesión de destino a fin de confirmar que hay suficientes jugadores presentes. El título realiza comprobaciones de calidad de servicio (QoS) para garantizar que los jugadores puedan conectarse correctamente entre sí.
Si la inicialización o la QoS fallan, el título marca la sesión de vale para reenviarla al emparejamiento de modo que se pueda encontrar otro grupo.
Para obtener más información, consulte [Inicialización de la sesión de destino y QoS](/services/xbox-services/multiplayer/matchmaking/concepts/live-matchmaking-target-session).

Durante la actividad de emparejamiento, se realizan los cambios siguientes en los objetos JSON de la sesión.

* El campo `/servers/matchmaking/properties/system/status` se establece en `found`

* El campo `/servers/matchmaking/properties/system/targetSessionRef` se establece en la sesión de destino

* El campo `/members/{index}/properties/custom/matchAttrs` de cada sesión de vale se copia en el campo `/members/{index}/constants/custom/matchmakingResult/playerAttrs`

* Para cada jugador, los atributos del vale se copian del campo `ticketAttributes` del vale de emparejamiento al campo `/members/{index}/constants/custom/matchmakingResult/ticketAttrs`

[Volver al principio de este tema.](#top)

<a id="maintaining-the-match-ticket" />

## Mantenimiento del vale de emparejamiento

El servicio de emparejamiento usa una instantánea de la sesión de vale tomada en el momento en que se crea el vale de emparejamiento para la sesión.
Como resultado, si algún jugador se une a la sesión de vale o la abandona, el título debe usar el servicio de emparejamiento para eliminar el vale de emparejamiento y volver a crearlo.

[Volver al principio de este tema.](#top)

<a id="reusing-the-game-session-as-a-match-ticket-session" />

## Reutilización de la sesión de juego como sesión de vale de emparejamiento

<Info>Dos sesiones con `preserveSession` establecido en `Always` no pueden emparejarse entre sí porque no se pueden combinar. El flujo de emparejamiento que use el título debe tenerlo en cuenta.</Info>

Un título puede reutilizar una sesión de juego existente como sesión de vale de emparejamiento para encontrar más jugadores que se unan a una partida que ya está en curso.
Para habilitarlo, el título debe crear el vale de emparejamiento llamando a [XblMatchmakingCreateMatchTicketAsync](/reference/live/xsapi-c/matchmaking_c/functions/xblmatchmakingcreatematchticketasync) con el parámetro `preserveSession` establecido en [XblPreserveSessionMode](/reference/live/xsapi-c/matchmaking_c/enums/xblpreservesessionmode)`::Always`.
El servicio de emparejamiento garantiza entonces que la sesión existente que se usa para el vale se conserve durante todo el proceso de emparejamiento y se convierta en la sesión de destino resultante.

[Volver al principio de este tema.](#top)

<a id="deleting-the-match-ticket" />

## Eliminación del vale de emparejamiento

Para eliminar el vale de emparejamiento, el título llama a [XblMatchmakingDeleteMatchTicketAsync](/reference/live/xsapi-c/matchmaking_c/functions/xblmatchmakingdeletematchticketasync).
La eliminación del vale:

1. Detiene el emparejamiento para los jugadores de la sesión de vale.

2. Actualiza el campo `/servers/matchmaking/properties/system/status` de la sesión de vale a `canceled`.

[Volver al principio de este tema.](#top)

<a id="performing-matchmaking-for-games-using-xbox-live-compute" />

## Realización del emparejamiento para juegos mediante XBOX Compute

A continuación se indican los pasos de alto nivel que se llevan a cabo para que un jugador sea emparejado en una partida basada en XBOX Compute.
Un flujo similar debería aplicarse a los juegos hospedados por terceros.

1. El explorador crea una sesión de vale para representar al grupo. Esta sesión contiene una lista de centros de datos potenciales que se encuentran en la configuración de la sesión en `/constants/system/measurementServerAddresses`. Procede de la plantilla de sesión, si la lista de centros de datos es estática, o del cliente, que la escribe al crear la sesión después de obtenerla primero de XBOX Compute. Esta sesión también contiene los valores `gsiSetId`, `gameVariantId` y `maxAllowedPlayers` en el objeto `targetSessionConstants/custom/gameServerPlatform`.

2. Todos los demás jugadores del grupo se unen a la sesión de vale.

3. Todos los miembros del grupo descargan los valores de `measurementServerAddresses` del objeto `/constants/system` de la sesión de vale, les hacen ping mediante la API de la plataforma y, a continuación, cargan en la sesión una lista ordenada de centros de datos preferidos tal como se define en `/members/{index}/properties/system/serverMeasurements`.

   > \[!NOTE]
   > El título puede establecer y recuperar los valores de `measurementServerAddresses` de la sesión mediante el método [XblMultiplayerSessionConstantsSetMeasurementServerAddressesJson](/reference/live/xsapi-c/multiplayer_c/functions/xblmultiplayersessionconstantssetmeasurementserveraddressesjson) y [XblMultiplayerSessionConstants](/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionconstants)`::MeasurementServerAddressesJson`.

4. El explorador llama a [XblMatchmakingCreateMatchTicketAsync](/reference/live/xsapi-c/matchmaking_c/functions/xblmatchmakingcreatematchticketasync), pasando una referencia a la sesión de vale.

   > \[!NOTE]
   > Si los objetos de la sesión de vale tienen constantes que no coinciden, es posible que el método de creación del vale no se realice correctamente. Esto puede evitarse agregando una regla `MUST` al hopper, para impedir el emparejamiento con jugadores que tengan constantes que no coincidan.

   Si [XblMatchTicketDetailsResponse](/reference/live/xsapi-c/matchmaking_c/structs/xblmatchticketdetailsresponse)`::PreserveSession` está establecido en `Never`, el servicio de emparejamiento copia las mediciones de servidor de cada miembro en la representación interna del vale.
   Aplana las mediciones de servidor de los miembros del vale en una única colección de mediciones de servidor para el vale que se almacena en la representación interna del vale como un atributo `special` del vale.

   Si [XblMatchTicketDetailsResponse](/reference/live/xsapi-c/matchmaking_c/structs/xblmatchticketdetailsresponse)`::PreserveSession` está establecido en `Always`, las mediciones de servidor no se usan.
   En su lugar, el servicio de emparejamiento copia el valor de `/properties/system/matchmaking/serverConnectionString` de la sesión en la representación interna del vale como una colección `serverMeasurements` de tamaño 1 con latencia cero.

5. El servicio de emparejamiento empareja la sesión de vale con otras, que representan otros grupos, teniendo en cuenta las colecciones de mediciones de servidor. El servicio intenta emparejar el grupo con otros grupos que tienen los mismos centros de datos muy preferidos.

6. Una vez encontrado un grupo emparejado, el servicio de emparejamiento crea o identifica una sesión de destino y agrega a todos los jugadores de las sesiones de vale que se emparejan juntas. El servicio escribe las mediciones de servidor aplanadas finales del grupo emparejado en `/properties/system/serverConnectionStringCandidates`. Escribe las mediciones de servidor enviadas originalmente para cada miembro recién agregado en la sesión de destino en `/members/{index}/constants/system/matchmakingResult/serverMeasurements`.

7. Todos los jugadores realizan la inicialización en la sesión de destino como se ha mencionado anteriormente. Sin embargo, dado que los jugadores se conectarán a XBOX Compute, no realizan QoS entre sí para confirmar la conectividad.

8. Todos los jugadores juegan.

[Volver al principio de este tema.](#top)

<a id="see-also" />

## Consulte también

[Información general del emparejamiento](/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview)


## Related topics

- [Conceptos de emparejamiento](/es/services/xbox-services/multiplayer/matchmaking/concepts/live-matchmaking-concepts-nav.md)
- [Conceptos](/es/services/xbox-services/multiplayer/matchmaking/concepts/index.md)
- [Preguntas frecuentes y solución de problemas de multijugador](/es/services/xbox-services/multiplayer/mpsd/concepts/live-multiplayer-2015-faq.md)
- [Emparejamiento SmartMatch](/es/services/xbox-services/multiplayer/matchmaking/live-matchmaking-nav.md)
- [Información general del emparejamiento](/es/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview.md)
