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

# 게임 스트리밍 사용자 지정 해상도 모범 사례

> 게임 스트리밍 사용자 지정 해상도 모범 사례

사용자 지정 해상도를 사용하면 타이틀을 스트리밍할 때 다양한 해상도와 화면 비율로 렌더링할 수 있습니다. 이 문서는 이를 가장 잘 활용하는 방법에 대한 Microsoft의 권장 사항을 설명합니다.

## 최적의 해상도 선택

플레이어는 휴대폰, 태블릿, PC, TV 등 다양한 기기로 게임을 스트리밍합니다. 이러한 기기는 저해상도부터 고해상도 디스플레이, 32:9 초광폭 모니터부터 정사각형 태블릿, 세로가 긴 세로 방향 기기까지 다양합니다. 플레이어는 레터박스 없이 게임이 화면이나 창 전체를 채우는 것을 선호합니다. 가능한 경우, 클라이언트의 디스플레이와 스케일링 없이 일치할 때 화면이 더 선명해집니다. 마지막으로, 클라이언트에 최적의 해상도는 하드웨어 및 네트워크 조건에 따라 달라질 수 있습니다.

[XGameStreamingGetDisplayDetails](/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) API는 이러한 모든 요소를 ​​고려하여 "선호" 너비와 높이를 반환합니다. 이상적인 조건에서 "선호" 해상도는 클라이언트 화면의 해상도와 화면 비율이지만, 해당 해상도가 불가능한 경우 스트림의 제약과 `XGameStreamingGetDisplayDetails`에 전달된 매개 변수에 맞는 가장 가까운 해상도와 화면 비율이 반환됩니다.

게임이 모든 해상도를 렌더링할 수 있는 경우, [XGameStreamingSetResolution](/reference/system/xgamestreaming/functions/xgamestreamingsetresolution)을 호출하고 렌더링 해상도를 선호 해상도로 설정하기만 하면 최상의 결과를 얻을 수 있습니다.

많은 게임은 고정된 해상도 집합에 맞춰 설계되어 있습니다. 예를 들어, 게임에 여러 해상도를 지원하는 PC 버전이 있을 수 있지만, XBOX에서는 일반적으로 하나로 좁혀지는 경우가 많습니다. 이러한 경우 Microsoft에서는 선호 해상도를 참조하여 게임이 지원하는 가장 가까운 해상도를 선택할 것을 권장합니다. 좋은 방법 중 하나는 게임이 클라이언트 화면을 최대한 채울 수 있도록 선호 화면 비율에 가장 가까운 값을 찾는 것입니다. [XGameStreamingDisplayDetails](/reference/system/xgamestreaming/structs/xgamestreamingdisplaydetails) 구조체에는 설정 가능한 해상도의 한계가 포함되어 있습니다. 또한 현재 스트림이 비표준 해상도 및 표시 배율을 지원하는지 여부를 나타내는 플래그도 포함되어 있습니다.

자동으로 해상도를 선택하는 것이 불가능하지만 게임의 PC 버전에 해상도 선택기가 포함된 경우, 해상도가 `XGameStreamingDisplayDetails`의 제약 조건에 맞는 한 플레이어가 해상도를 선택할 수 있도록 할 수도 있습니다.

## 업데이트 수신 대기

스트리밍하는 동안 최적의 해상도는 여러 가지 이유로 변경될 수 있습니다.

1. 클라우드 서버에서는 스트리밍 클라이언트가 연결되기 전에 게임이 시작되므로 선호 해상도를 즉시 사용할 수 없습니다.
2. 휴대폰이나 태블릿을 사용하는 플레이어는 세로 방향과 가로 방향 사이에서 기기를 회전할 수 있습니다.
3. PC의 플레이어는 스트리밍 클라이언트 창의 크기를 조정하거나 전체 화면을 전환할 수 있습니다.
4. 네트워크 상태가 변경되어 다른 스트림 해상도가 필요할 수 있습니다.

변경 사항이 발생할 때 최상의 스트리밍 경험을 제공하려면 [XGameStreamingRegisterConnectionStateChanged](/reference/system/xgamestreaming/functions/xgamestreamingregisterconnectionstatechanged)를 사용하여 새 클라이언트를 감지하고, [XGameStreamingRegisterClientPropertiesChanged](/reference/system/xgamestreaming/functions/xgamestreamingregisterclientpropertieschanged)(`XGameStreamingClientProperty::DisplayDetails` 속성 확인)를 사용하여 클라이언트의 선호 해상도가 언제 변경되는지 감지합니다. 이러한 이벤트가 발생하면 새 `XGameStreamingDisplayDetails`와 일치하도록 해상도를 변경합니다.

<Note>최소한, 클라우드 서버의 플레이어에게 일치하는 해상도를 제공하기 위해 초기 클라이언트 연결 이벤트를 처리하는 것이 매우 중요합니다.</Note>

## 변경에 대한 제한 사항

스트림 해상도를 변경하면 플레이어에게 짧은 플래시로 표시됩니다(PC에서 게임 해상도를 변경할 때와 유사). 방해를 최소화하기 위해 Microsoft는 위 이벤트에 대응하는 경우에만 해상도를 변경할 것을 권장합니다.

플레이어 경험 외에도, 스트림 해상도를 200ms에 한 번 이상 변경하지 않는 것이 좋습니다. 비디오 인코더가 게임 해상도에 맞춰지는 시간이 부족해 짧은 시각적 왜곡이 발생할 수 있기 때문입니다. 위 이벤트는 200ms에 한 번 이상 발생하지 않습니다.

## XGameStreamingGetDisplayDetails의 매개 변수 설정

`XGameStreamingGetDisplayDetails` API에는 게임의 제약 조건에 대한 매개 변수가 포함되어 있습니다. 이러한 매개 변수를 올바르게 설정하면 API가 해당 제약 조건 내에서 가장 적합한 해상도를 계산합니다. 매개 변수는 다음과 같습니다.

`maxSupportedPixels`: 게임이 초과하지 않아야 하는 총 픽셀 수입니다. 성능을 유지하기 위한 좋은 방법은 게임이 현재 시스템 디바이스 유형에서 일반적으로 렌더링하는 너비와 높이를 곱하는 것입니다. 예를 들어, 게임이 XBOX Series S에서 일반적으로 1440p로 렌더링되는 경우, 해당 디바이스 유형에서 maxSupportedPixels=2560\*1440=3686400을 전달합니다.

`widestSupportedAspectRatio` 및 `tallestSupportedAspectRatio`: 이것은 게임의 화면 비율 한계입니다. 테스트한 가장 넓고 가장 높은 화면 비율로 설정하면 모든 기기에서 게임이 좋아 보이도록 할 수 있습니다.

## 터치 입력 및 사용자 지정 해상도

`XGameStreamingSetResolution`을 통해 해상도를 변경하면 새 화면 비율과 일치하도록 터치 입력 좌표 공간이 변경됩니다. `GameInputTouchState`에는 0-1 정규화 범위의 터치 좌표가 포함됩니다. 해상도를 변경할 때 해당 범위는 동일하게 유지되지만, 이제는 새 해상도를 나타냅니다. 예를 들어, 1920x1080 게임에 사용자 지정 해상도가 없는 경우, (0.5, 0.5)에서의 터치는 (960, 540)을 나타내지만, `XGameStreamingSetResolution`을 호출하여 1600x800으로 변경하면 (0.5, 0.5)에서의 터치는 (800, 400)을 나타냅니다. `GameInputTouchSensorInfo`의 해상도 및 화면 비율 값은 해상도를 변경할 때 업데이트되지 않는다는 점에 유의하세요. 터치 위치를 계산할 때는 `GameInputTouchSensorInfo`가 아닌 `XGameStreamingSetResolution`에 전달한 값을 사용하세요.

## 안전 영역

많은 기기에는 노치, 둥근 모서리, 오버레이 스와이프 바로 인해 화면이 부분적으로 가려집니다. `XGameStreamingDisplayDetails`에는 화면 중앙의 방해 없는 사각형을 설명하는 `safeArea` 사각형이 포함되어 있습니다. 중요한 콘텐츠가 표시되도록 하려면 이 사각형을 타이틀 안전 공간의 경계로 취급하세요. 이 영역 바깥은 표시될 수 있고 콘텐츠를 포함할 수 있지만, 중요한 UI 요소는 포함하지 않아야 합니다.

## DirectCapture

가장 좋은 스트리밍 비디오 경험은 게임이 사용자 지정 해상도와 DirectCapture를 결합하여 스트리밍 지연 시간을 줄이는 경우입니다. 게임이 DirectCapture의 이점을 얻도록 보장하는 방법에 대한 자세한 내용은 [DirectCapture 개요](/build/core-features/common/game-streaming/game-streaming-directcapture-overview)를 참조하세요.

## 참고 항목

[사용자 지정 해상도 개요](/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview)

[사용자 지정 해상도로 테스트하기(NDA 항목)](/build/core-features/common/game-streaming/game-streaming-testing-custom-resolution)

[DirectCapture 개요](/build/core-features/common/game-streaming/game-streaming-directcapture-overview)


## Related topics

- [사용자 지정 해상도로 테스트하기](/ko/build/core-features/common/game-streaming/game-streaming-testing-custom-resolution.md)
- [사용자 지정 해상도 개요](/ko/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview.md)
- [XBOX Cloud Gaming 터치 및 스트리밍 지원](/ko/build/core-features/common/game-streaming/index.md)
- [멀티플레이어 테스트를 위한 XBOX Manager 모범 사례](/ko/tools/tools-console/xbom/manager-tool-multiplayer.md)
- [게임 스트리밍 관리 (wdgamestream.exe)](/ko/tools/tools-console/console_commandlinetools/wdgamestream.md)
