> ## 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.

# Inicialización de la sesión de destino y QoS

> Inicialización de la sesión de destino para SmartMatch en XBOX, que abarca las etapas de inicialización administrada y las comprobaciones de calidad de servicio entre elementos del mismo nivel antes del juego.

Este tema describe cómo un título confirma que se han unido suficientes jugadores y que pueden conectarse cuando se emparejan en una sesión de destino.

El emparejamiento de SmartMatch empareja a un grupo de jugadores en una sesión de destino. El título debe tomar medidas para confirmar que se han unido suficientes jugadores de modo que puedan conectarse correctamente entre sí si lo necesitan. Este proceso se conoce como *inicialización de la sesión de destino*.

Para los juegos que usan topologías de red de emparejamiento entre pares, un aspecto importante de la inicialización de la sesión de destino es la medición y evaluación de la calidad de servicio (QoS).
Las operaciones asociadas son las siguientes.

* La medición de la latencia y el ancho de banda entre consolas XBOX One (o posteriores), o entre consolas y servidores
* La evaluación de las mediciones resultantes para determinar si la conexión de red entre los nodos es buena

El diagrama de flujo siguiente ilustra cómo implementar la inicialización de la sesión de destino y las operaciones de QoS.

<img src="https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/services/Multiplayer_2015_Matchmaking_QoS.png?fit=max&auto=format&n=gzrdvT5kpqAXKEQt&q=85&s=d581bf4774ce705effe9420a8246f98a" alt="Imagen de un diagrama de flujo de QoS de emparejamiento que ilustra cómo implementar la inicialización de la sesión de destino y las operaciones de QoS" width="1339" height="1090" data-path="images/gdk/services/Multiplayer_2015_Matchmaking_QoS.png" />

## Inicialización administrada

El Multiplayer Session Directory (MPSD) admite una característica denominada *inicialización administrada*, mediante la cual coordina el proceso de inicialización de la sesión de destino entre los clientes que participan en una sesión.
MPSD realiza automáticamente el seguimiento de las etapas de inicialización y de los tiempos de espera asociados de la sesión. MPSD también evalúa la conectividad entre los clientes, si es necesario.
La inicialización administrada se representa mediante la enumeración [XblMultiplayerInitializationStage](/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayerinitializationstage).

<Note>Se recomienda encarecidamente que su título use el emparejamiento de SmartMatch para aprovechar la característica de inicialización administrada por MPSD.</Note>

### Episodios y etapas de la inicialización administrada

Una sesión de destino se somete a la inicialización administrada cada vez que el emparejamiento agrega nuevos jugadores a la sesión.
SmartMatch agrega miembros de sesión con el estado de usuario Reserved, lo que significa que cada miembro ocupa una plaza pero aún no se ha unido a la sesión.
Cada grupo de nuevos jugadores desencadena un nuevo episodio de inicialización.

Cuando se completa la inicialización, cada jugador supera el proceso o falla en él.
Un jugador que supera la inicialización puede jugar mediante la sesión de destino.
Un jugador que falla debe volver a enviarse al emparejamiento para que se le empareje en otra sesión.

En los casos en que una sesión se envía al emparejamiento con el parámetro `preserveSession` establecido en `Always`, los miembros preexistentes de la sesión no se someten a la inicialización porque MPSD supone que están configurados correctamente.

Cada episodio de inicialización administrada consta de las etapas siguientes.

* **Unión:** los miembros de la sesión se escriben en la sesión para cambiar su estado de usuario de `Reserved` a `Active`. Pueden cargar datos básicos, como una dirección de dispositivo segura.
* **Medición:** en las topologías basadas en pares, los miembros de la sesión miden la QoS entre sí y, a continuación, cargan los resultados en la sesión.
* **Evaluación:** MPSD evalúa los resultados de las dos etapas anteriores y, a continuación, determina si la sesión o los miembros se han inicializado correctamente.

El código del título opera sobre la sesión para hacer avanzar a cada jugador (y, por tanto, a la sesión) por las fases de unión y medición.
A continuación, el título puede iniciar el juego o volver al emparejamiento después de que la etapa de evaluación se haya superado o haya fallado.

## Configuración de la sesión de destino para la inicialización

El título puede configurar el proceso de inicialización administrada mediante constantes en la sesión de destino que se está inicializando.
Estas constantes se establecen en */constants/system* en la plantilla de sesión con la versión 107. Se recomienda esta versión de plantilla.

Puede realizar los dos tipos de opciones de configuración siguientes.

* Opciones que configuran el proceso de inicialización administrada en su conjunto

* Opciones que configuran los requisitos de QoS

Para ver ejemplos de plantillas de sesión para escenarios comunes de títulos, consulte [Plantillas de sesión multijugador](/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates) e [Información general del Multiplayer Session Directory](/services/xbox-services/multiplayer/mpsd/live-mpsd-overview).

<Note>Si los requisitos de QoS no están definidos en la configuración de inicialización de la sesión de destino, la etapa de medición durante la inicialización se omite.</Note>

### Configuración de la inicialización administrada en su conjunto

Para controlar la inicialización administrada en general, establezca los campos siguientes.

Los campos que hay que establecer para controlar la inicialización administrada forman parte del objeto `/constants/system/memberInitialization`.

* `joinTimeout`: especifica cuánto tiempo espera MPSD a que se una cada miembro, una vez iniciado el episodio de inicialización. El valor predeterminado es de 10 segundos.

* `measurementTimeout`: especifica cuánto tiempo espera MPSD a que cada miembro cargue los resultados de las mediciones de QoS, una vez iniciada la etapa de medición. El valor predeterminado es de 30.000 segundos.

* `membersNeededToStart`: especifica el número de miembros que deben superar la inicialización para que el primer episodio de inicialización se complete correctamente. El valor predeterminado es 1.

<Note>Si no se alcanza este umbral, todos los miembros fallan en la inicialización.</Note>

### Configuración de los requisitos de QoS

La QoS solo es necesaria durante la inicialización si el título usa una topología de emparejamiento entre pares o de par a host.
Cada topología se asigna a una constante específica de la topología en */constants/system/*.

#### Configuración de los requisitos de QoS para la topología de emparejamiento entre pares

<Note>Es poco frecuente que los títulos configuren requisitos de QoS para la topología de emparejamiento entre pares. Estas opciones son muy restrictivas y causan problemas a los jugadores que tienen traducciones de direcciones de red (NAT) estrictas.</Note>

Puede establecer los requisitos de QoS de la topología de emparejamiento entre pares en el objeto `peerToPeerRequirements`.
Todos los clientes deben poder conectarse a todos los demás clientes.

El objeto `peerToPeerRequirements` tiene los campos pertinentes siguientes.

* `latencyMaximum`: especifica la latencia máxima entre dos clientes cualesquiera

* `bandwidthMinimum`: especifica el ancho de banda mínimo entre dos clientes cualesquiera

#### Configuración de los requisitos de QoS para la topología de par a host

Puede establecer los requisitos de QoS de la topología de par a host en el objeto `peerToHostRequirements`.
Todos los clientes deben poder conectarse a un único host común.
Si este objeto está configurado y la inicialización se completa correctamente, MPSD crea una lista inicial de clientes que son hosts potenciales, conocidos como los *candidatos a host*.

Establezca los campos siguientes.

* `latencyMaximum`: especifica la latencia máxima entre cada par y el host

* `bandwidthDownMinimum`: especifica el ancho de banda mínimo de bajada entre cada par y el host

* `bandwidthUpMinimum`: especifica el ancho de banda mínimo de subida entre cada par y el host

* `hostSelectionMetric`: especifica la métrica que se usó para seleccionar el host

## Consulte también

[Plantillas de sesión multijugador](/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates)

[Información general del Multiplayer Session Directory](/services/xbox-services/multiplayer/mpsd/live-mpsd-overview)


## Related topics

- [XblMultiplayerInitializationStage](/es/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayerinitializationstage.md)
- [Conceptos de emparejamiento](/es/services/xbox-services/multiplayer/matchmaking/concepts/live-matchmaking-concepts-nav.md)
- [Preguntas frecuentes y solución de problemas de multijugador](/es/services/xbox-services/multiplayer/mpsd/concepts/live-multiplayer-2015-faq.md)
- [Información general del emparejamiento](/es/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview.md)
- [Uso del emparejamiento de SmartMatch](/es/services/xbox-services/multiplayer/matchmaking/concepts/live-matchmaking-how-tos.md)
