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

# Práticas recomendadas para resolução personalizada no game streaming

> Práticas recomendadas para resolução personalizada no game streaming

A resolução personalizada permite que os títulos sejam renderizados em uma ampla variedade de resoluções e proporções durante o streaming. Este documento descreve as recomendações da Microsoft sobre a melhor forma de usá-la.

## Escolhendo a melhor resolução

Os jogadores fazem streaming de jogos para uma grande variedade de dispositivos, incluindo telefones, tablets, PCs e TVs. Eles vão de telas de baixa a alta resolução, e de monitores ultrawide 32:9 a tablets quadrados e dispositivos altos no modo retrato. Os jogadores preferem que o jogo preencha toda a tela ou janela, sem letterbox. Sempre que possível, a imagem também fica mais nítida se corresponder à tela do cliente sem dimensionamento. Por fim, a resolução ideal para um cliente pode depender das condições de hardware e de rede.

A API [XGameStreamingGetDisplayDetails](/pt-BR/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) leva todos esses fatores em consideração e retorna uma largura e uma altura "preferenciais". Em condições ideais, a resolução "preferencial" é a resolução e a proporção da tela do cliente, mas, se essa resolução não for possível, será a resolução e a proporção mais próximas que se encaixem nas restrições do stream e nos parâmetros passados para `XGameStreamingGetDisplayDetails`.

Se o seu jogo puder renderizar qualquer resolução, basta chamar [XGameStreamingSetResolution](/pt-BR/reference/system/xgamestreaming/functions/xgamestreamingsetresolution) e definir a resolução de renderização como a resolução preferencial para obter os melhores resultados.

Muitos jogos são projetados para um conjunto fixo de resoluções. Por exemplo, seu jogo pode ter uma versão para PC que oferece suporte a várias resoluções, mesmo que normalmente elas sejam reduzidas a uma no XBOX. Nesse caso, a Microsoft recomenda usar a resolução preferencial como guia para escolher a resolução mais próxima com suporte no seu jogo. Uma boa maneira de fazer isso é encontrar a correspondência mais próxima da proporção preferencial, para que o jogo preencha o máximo possível da tela do cliente. Observe que a estrutura [XGameStreamingDisplayDetails](/pt-BR/reference/system/xgamestreaming/structs/xgamestreamingdisplaydetails) inclui os limites das resoluções que você pode definir. Ela também inclui sinalizadores que indicam se o stream atual oferece suporte a resoluções não padrão e a dimensionamento na apresentação.

Se não for viável escolher a resolução automaticamente, mas a versão para PC do seu jogo incluir um seletor de resolução, você também poderá permitir que os jogadores escolham as resoluções, desde que elas se encaixem nas restrições de `XGameStreamingDisplayDetails`.

## Escutar atualizações

Durante um stream, a melhor resolução pode mudar por vários motivos:

1. Nos servidores na nuvem, os jogos são iniciados antes que os clientes de streaming se conectem, portanto a resolução preferencial não fica disponível imediatamente.
2. Um jogador com um telefone ou tablet pode girar o dispositivo entre os modos retrato e paisagem.
3. Um jogador no PC pode redimensionar a janela do cliente de streaming ou alternar a tela inteira.
4. As condições de rede podem mudar e exigir uma resolução de stream diferente.

Para oferecer a melhor experiência de streaming à medida que as mudanças ocorrem, use [XGameStreamingRegisterConnectionStateChanged](/pt-BR/reference/system/xgamestreaming/functions/xgamestreamingregisterconnectionstatechanged)  para detectar novos clientes e [XGameStreamingRegisterClientPropertiesChanged](/pt-BR/reference/system/xgamestreaming/functions/xgamestreamingregisterclientpropertieschanged) (verificando a propriedade `XGameStreamingClientProperty::DisplayDetails`) para detectar quando a resolução preferencial do cliente mudar. Quando esses eventos ocorrerem, altere a resolução para corresponder ao novo `XGameStreamingDisplayDetails`.

<Note>No mínimo, é muito importante tratar o evento de conexão inicial do cliente para jogadores em servidores na nuvem, a fim de obter uma resolução correspondente.</Note>

## Limitações de alteração

A alteração da resolução do stream fica visível para os jogadores como um breve piscar (semelhante ao que pode acontecer ao alterar a resolução de um jogo em um PC). Para minimizar a interrupção, a Microsoft recomenda alterar a resolução apenas em resposta aos eventos acima.

Além da experiência do jogador, não é recomendável alterar a resolução do stream mais de uma vez a cada 200 ms, pois talvez não haja tempo para o codificador de vídeo acompanhar a resolução do jogo, causando um breve estiramento visual. Os eventos acima não serão disparados mais de uma vez a cada 200 ms.

## Definindo parâmetros para XGameStreamingGetDisplayDetails

A API `XGameStreamingGetDisplayDetails` inclui parâmetros para as restrições do seu jogo. Se eles forem definidos corretamente, a API calculará a melhor resolução que se encaixe nessas restrições. Os parâmetros são:

`maxSupportedPixels`: é a contagem total de pixels que seu jogo não deve exceder. Uma boa regra prática para manter o desempenho é multiplicar a largura e a altura que seu jogo normalmente renderizaria no tipo de dispositivo do sistema atual. Por exemplo, se o seu jogo normalmente renderizasse em 1440p no XBOX Series S, nesse tipo de dispositivo passe maxSupportedPixels=2560\*1440=3686400.

`widestSupportedAspectRatio` e `tallestSupportedAspectRatio`: são os limites de proporção do seu jogo. Defini-los como as proporções mais largas e mais altas que você testou garantirá que seu jogo tenha boa aparência em todos os dispositivos.

## Entrada por toque e resolução personalizada

Alterar a resolução por meio de `XGameStreamingSetResolution` altera o espaço de coordenadas da entrada por toque para corresponder à nova proporção. `GameInputTouchState` inclui coordenadas de toque em um intervalo normalizado de 0 a 1. Ao alterar a resolução, esse intervalo permanece o mesmo, mas passa a representar a nova resolução. Por exemplo, sem resolução personalizada em um jogo de 1920x1080, um toque em (0.5, 0.5) representa (960, 540), mas chamar `XGameStreamingSetResolution` para mudar para 1600x800 significa que um toque em (0.5, 0.5) representa (800, 400). Observe que os valores de resolução e proporção em `GameInputTouchSensorInfo` não são atualizados quando você altera a resolução; use os valores que você passou para `XGameStreamingSetResolution`, e não `GameInputTouchSensorInfo`, para calcular as posições de toque.

## Área segura

Muitos dispositivos têm telas parcialmente obstruídas por entalhes, cantos arredondados e barras de deslizar sobrepostas. `XGameStreamingDisplayDetails` inclui um retângulo `safeArea` que descreve o retângulo desobstruído no centro da tela. Para garantir que o conteúdo importante fique visível, trate esse retângulo como os limites do espaço seguro do título. As áreas fora dele podem estar visíveis e ainda devem conter conteúdo, mas não elementos de interface do usuário importantes.

## DirectCapture

A melhor experiência de vídeo em streaming ocorre quando os jogos combinam resolução personalizada e DirectCapture, que reduz a latência do streaming. Para obter informações sobre como garantir que seu jogo se beneficie do DirectCapture, consulte [Visão geral do DirectCapture](/pt-BR/build/core-features/common/game-streaming/game-streaming-directcapture-overview).

## Consulte também

[Visão geral da resolução personalizada](/pt-BR/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview)

[Testando com resolução personalizada (tópico sob NDA)](/pt-BR/build/core-features/common/game-streaming/game-streaming-testing-custom-resolution)

[Visão geral do DirectCapture](/pt-BR/build/core-features/common/game-streaming/game-streaming-directcapture-overview)


## Related topics

- [Casos de teste com mais falhas](/pt-BR/publishing/certification/xr-top-failing.md)
- [Requisitos XBOX testados na certificação para jogos de console XBOX](/pt-BR/publishing/certification/console-cert-tested-requirements.md)
- [Requisitos do XBOX para jogos do XBOX](/pt-BR/publishing/certification/xbox-requirements.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [XR-003 Qualidade do título para envio](/pt-BR/publishing/certification/xr/xr-003.md)
