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

# Inicialização da sessão de destino e QoS

> Inicialização da sessão de destino do SmartMatch no XBOX, abrangendo os estágios de inicialização gerenciada e as verificações de qualidade de serviço entre pares antes da jogabilidade.

Este tópico descreve como um título confirma que jogadores suficientes ingressaram e conseguem se conectar quando são combinados em uma sessão de destino.

Um grupo de jogadores é combinado em uma sessão de destino pelo matchmaking SmartMatch. O título deve tomar medidas para confirmar que jogadores suficientes ingressaram, para que eles consigam se conectar uns aos outros, se necessário. Esse processo é conhecido como *inicialização da sessão de destino*.

Para jogos que usam topologias de rede ponto a ponto, um aspecto importante da inicialização da sessão de destino é a medição e a avaliação da qualidade de serviço (QoS).
As operações associadas são as seguintes.

* A medição da latência e da largura de banda entre consoles XBOX One (ou posteriores) ou entre consoles e servidores
* A avaliação das medições resultantes para determinar se a conexão de rede entre os nós é boa

O fluxograma a seguir ilustra como implementar a inicialização da sessão de destino e as operações de QoS.

![Imagem de um fluxograma de QoS de matchmaking que ilustra como implementar a inicialização da sessão de destino e as operações de QoS](https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/services/Multiplayer_2015_Matchmaking_QoS.png?fit=max\&auto=format\&n=gzrdvT5kpqAXKEQt\&q=85\&s=d581bf4774ce705effe9420a8246f98a)

## Inicialização gerenciada

O Multiplayer Session Directory (MPSD) oferece suporte a um recurso chamado *inicialização gerenciada*, por meio do qual ele coordena o processo de inicialização da sessão de destino entre os clientes envolvidos em uma sessão.
O MPSD acompanha automaticamente os estágios de inicialização e os tempos limite associados da sessão. O MPSD também avalia a conectividade entre os clientes, se necessário.
A inicialização gerenciada é representada pela enumeração [XblMultiplayerInitializationStage](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayerinitializationstage.md).

> [!NOTE]
>
> É altamente recomendável que seu título use o matchmaking SmartMatch para aproveitar o recurso de inicialização gerenciada pelo MPSD.

### Episódios e estágios da inicialização gerenciada

Uma sessão de destino passa pela inicialização gerenciada sempre que o matchmaking adiciona novos jogadores à sessão.
O SmartMatch adiciona membros à sessão com o estado de usuário Reserved, o que significa que cada membro ocupa uma vaga, mas ainda não ingressou na sessão.
Cada grupo de novos jogadores dispara um novo episódio de inicialização.

Quando a inicialização é concluída, cada jogador é aprovado ou reprovado no processo.
Um jogador que conclui a inicialização com êxito pode jogar usando a sessão de destino.
Um jogador que falha deve ser reenviado ao matchmaking para ser combinado em outra sessão.

Nos casos em que uma sessão é enviada ao matchmaking com o parâmetro `preserveSession` definido como `Always`, os membros preexistentes da sessão não passam pela inicialização, porque o MPSD pressupõe que eles estejam configurados corretamente.

Cada episódio de inicialização gerenciada consiste nos estágios a seguir.

* **Entrada:** os membros da sessão se gravam na sessão para mudar seu estado de usuário de `Reserved` para `Active`. Eles podem carregar dados básicos, como um endereço de dispositivo seguro.
* **Medição:** em topologias baseadas em pares, os membros da sessão medem a QoS entre si e, em seguida, carregam os resultados na sessão.
* **Avaliação:** o MPSD avalia os resultados dos dois últimos estágios e, em seguida, determina se a sessão ou os membros foram inicializados com êxito.

O código do título opera na sessão para avançar cada jogador (e, portanto, a sessão) pelas fases de entrada e medição.
Em seguida, o título pode começar a jogar ou voltar ao matchmaking depois que o estágio de avaliação tiver sido bem-sucedido ou falhado.

## Configurando a sessão de destino para a inicialização

O título pode configurar o processo de inicialização gerenciada usando constantes na sessão de destino que está sendo inicializada.
Essas constantes são definidas em */constants/system* no modelo de sessão com a versão 107. Recomendamos essa versão de modelo.

Você pode fazer os dois tipos de definições de configuração a seguir.

* Definições que configuram o processo de inicialização gerenciada como um todo

* Definições que configuram os requisitos de QoS

Para obter exemplos de modelos de sessão para cenários comuns de títulos, consulte [Modelos de sessão multiplayer](https://docs.xbox.com/pt-BR/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates.md) e [Visão geral do Multiplayer Session Directory](https://docs.xbox.com/pt-BR/services/xbox-services/multiplayer/mpsd/live-mpsd-overview.md).

> [!NOTE]
>
> Se os requisitos de QoS não estiverem definidos na configuração de inicialização da sessão de destino, o estágio de medição durante a inicialização será ignorado.

### Configurando a inicialização gerenciada como um todo

Para controlar a inicialização gerenciada de forma geral, defina os campos a seguir.

Os campos a serem definidos para controlar a inicialização gerenciada fazem parte do objeto `/constants/system/memberInitialization`.

* `joinTimeout`: especifica quanto tempo o MPSD aguarda a entrada de cada membro depois que o episódio de inicialização começa. O padrão é 10 segundos.

* `measurementTimeout`: especifica quanto tempo o MPSD aguarda que cada membro carregue os resultados da medição de QoS depois que o estágio de medição começa. O padrão é 30.000 segundos.

* `membersNeededToStart`: especifica o número de membros que devem concluir a inicialização com êxito para que o primeiro episódio de inicialização seja bem-sucedido. O padrão é 1.

> [!NOTE]
>
> Se esse limite não for atingido, todos os membros falharão na inicialização.

### Configurando os requisitos de QoS

A QoS só é necessária durante a inicialização se o título usar uma topologia ponto a ponto ou par-host.
Cada topologia corresponde a uma constante específica da topologia em */constants/system/*.

#### Configurando os requisitos de QoS para a topologia ponto a ponto

> [!NOTE]
>
> É raro que os títulos definam requisitos de QoS para a topologia ponto a ponto. Essas definições são muito restritivas e causam problemas para jogadores que têm conversões de endereços de rede (NATs) estritas.

Você pode definir os requisitos de QoS da topologia ponto a ponto no objeto `peerToPeerRequirements`.
Cada cliente deve conseguir se conectar a todos os outros clientes.

O objeto `peerToPeerRequirements` tem os campos pertinentes a seguir.

* `latencyMaximum`: especifica a latência máxima entre dois clientes quaisquer

* `bandwidthMinimum`: especifica a largura de banda mínima entre dois clientes quaisquer

#### Configurando os requisitos de QoS para a topologia par-host

Você pode definir os requisitos de QoS da topologia par-host no objeto `peerToHostRequirements`.
Cada cliente deve conseguir se conectar a um único host comum.
Se esse objeto estiver configurado e a inicialização for bem-sucedida, o MPSD criará uma lista inicial de clientes que são possíveis hosts, conhecidos como *candidatos a host.*

Defina os campos a seguir.

* `latencyMaximum`: especifica a latência máxima entre cada par e o host

* `bandwidthDownMinimum`: especifica a largura de banda mínima de download entre cada par e o host

* `bandwidthUpMinimum`: especifica a largura de banda mínima de upload entre cada par e o host

* `hostSelectionMetric`: especifica a métrica usada para selecionar o host

## Confira também

[Modelos de sessão multiplayer](https://docs.xbox.com/pt-BR/services/xbox-services/multiplayer/mpsd/concepts/live-session-templates.md)

[Visão geral do Multiplayer Session Directory](https://docs.xbox.com/pt-BR/services/xbox-services/multiplayer/mpsd/live-mpsd-overview.md)


## Related topics

- [Visão geral do matchmaking](https://docs.xbox.com/pt-BR/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview.md)
- [XblMultiplayerInitializationStage](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayerinitializationstage.md)
- [XblMultiplayerPeerToHostRequirements](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayerpeertohostrequirements.md)
- [XblMultiplayerMeasurementFailure](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayermeasurementfailure.md)
- [XblMultiplayerMetrics](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/multiplayer_c/enums/xblmultiplayermetrics.md)
