- Handheld Compatibility (https://aka.ms/hhcompatguide). 휴대가 가능하고 터치 및 게임패드 우선 기기에서 훌륭한 게이밍 경험을 구축하기 위한 가이드, 도구, 샘플.
- Handheld Performance (https://aka.ms/hhperfguide). 이 시리즈는 모바일 기기의 게임을 더 오래 그리고 더 빠르게 실행되도록 유지하기 위해 개발자가 취할 수 있는 간단한 단계에 초점을 맞춥니다.
인게임 설정 최적화
인게임 설정이 왜 중요한가?
시리즈 소개(https://aka.ms/hhperfintro)에서 언급했듯이, 인게임 설정은 개발자가 배터리 구동 기기에서 게임을 보다 효율적으로 실행하도록 제어할 수 있는 첫 번째 방법입니다. 플레이어가 스토어에서 XBOX on PC 게임을 볼 때 제품 상세 페이지(PDP)에는, 그들의 기기가 가장 흔한(대개 기본) 게임 설정으로 해당 게임을 30FPS 이상으로 플레이할 수 있는지에 대한 Performance Fit 기능의 권장 정보가 표시됩니다. 그림 1 - XBOX on PC 스토어 제품 상세 페이지(PDP) 예시. 노란색으로 강조된 사각형에 Performance Fit 권장 사항이 인쇄되는 위치가 표시됨. 목표는 개발자가 정의하기 쉬운, 훌륭한 첫 플레이어 경험을 제공하는 Windows 게이밍 핸드헬드용 기본 게임 설정을 활성화하는 것입니다.- 네, PC입니다! Windows 게이밍 노트북처럼 핸드헬드 게이밍 기기는 휴대용 PC입니다. 터치 스크린을 포함하며, 성능과 작동 시간의 균형을 위한 다양한 전력 상태와 배터리로 실행할 수 있습니다.
- 아니오, 단순한 PC가 아닙니다! Windows 게이밍 노트북과 달리 핸드헬드 게이밍 PC는 배터리로 몇 시간 동안 게임을 플레이할 수 있어야 하며, 이를 가능하게 하는 스마트한 게임 설정이 필요합니다. 핸드헬드 PC에는 키보드나 마우스가 없을 수 있습니다. XBOX on PC 경험부터 게임 런처와의 상호작용, 플레이 중 나타날 수 있는 모든 프롬프트에 이르기까지 사용자 인터페이스의 모든 계층에 컨트롤러 지원이 필요합니다. 또한 플레이어의 편의와 접근성을 위해 게임에 네이티브 터치 지원이 있으면 큰 이점이 있습니다.
인게임 설정에 대한 주요 권장 사항은?
다음은 이 문서의 중요한 시사점과 섹션 요약입니다.- Windows 게이밍 핸드헬드에서 잘 동작하도록 게임을 스케일링하세요. 이는 개발자가 배터리 구동 기기에 대해 특별히 테스트하고 설정을 만드는 것을 의미합니다. 이러한 설정은 게임 플레이나 전반적인 아트 스타일의 희생 없이 배터리 수명이 연장되도록 게임을 축소해야 합니다. 이러한 설정은 시장의 대표 기기(예: 고효율 ROG XBOX Ally 핸드헬드)에서 테스트해야 합니다.
- 하드웨어의 자동 감지 및 인게임 설정 적용을 구현하세요. 일부 게임은 이미 이를 갖추고 있습니다. 개발자는 하드웨어 기능에 매핑되는 게임 내 옵션이 무엇인지 생각해 스마트 기본값을 만들어야 합니다.
- ROG XBOX Ally와 ROG XBOX Ally X를 첫 가이드로 삼으세요. 이 기기들은 이 시리즈에서 언급하는 설정 최적화 사항을 최초로 갖춘 Windows 게이밍 핸드헬드이며, XBOX + ASUS에서 구현되었습니다.
가이드라인 | 하드웨어의 자동 감지 및 인게임 설정 적용
네이티브 C++ 샘플(https://aka.ms/hhexpsample)과 Unity 관리형 C# 샘플(https://aka.ms/hhexpsample_unity)을 제공합니다. 이 샘플들은 개발자가 감지 코드를 자기 게임에 복사해서 붙여넣기 쉽게 해줍니다. 이 코드 스니펫은 기기 내 하드웨어 구성 요소의 기능에 대한 정보를 얻는 데 사용될 수 있습니다. 개발자는 이 기능들을 활용해 다양한 기기에 걸쳐 스케일링되는 합리적인 기본값을 게임에 만들 수 있습니다. ROG XBOX Ally와 ROG XBOX Ally X를 예로 들어, 다음은 C++ 샘플 소스 코드에서 해당 값을 어디서 확인할 수 있는지에 대한 링크와 함께 코드 스니펫의 반환 값입니다. 별표(*)로 표시된 항목은 표 아래에서 자세히 설명합니다.UI / 스케일링 요소에 대한 중요 참고 사항. 화면 해상도의 차이에 맞춰 조정하면 특히 작은 화면에서 인게임 UI의 가독성 측면에서 덜 바람직한 결과가 나올 수 있습니다. 게임 디자이너에게 도움이 될 수 있는 화면 크기와 브레이크포인트에 관한 일반적인 앱 안내는 여기에서 확인할 수 있습니다: /windows/apps/design/layout/screen-sizes-and-breakpoints-for-responsive-design.
- ”*” = VRAM 할당은 사용자 선택형입니다. 이는 기본값이며 보장되지 않고 베이스라인 프로파일링 계산에 사용하는 예시일 뿐입니다.
- ”**” = 이 기기의 권장 기본 해상도는 720p입니다. 개발자는 게임에 잘 맞는 것을 확인하기 위해 설정을 테스트하고 그에 맞게 설정해야 합니다. 또한 일부 게임별 설정은 테스트 결과 이 게임이 더 높은 해상도에서 30FPS 미만으로 실행되는 경우 효율을 개선하기 위해 게임에 광고되는 화면 해상도를 재정의할 수 있지만, 플레이어가 이를 재정의할 수도 있습니다.
- ”***” = DirectX 게임의 경우 기존 권장 사항은 비디오 메모리에 대한 게임 예산을 동적으로 결정하기 위해 QueryVideoMemoryInfo를 사용하는 것입니다. 예시 GetMemoryInfo.cpp에서 사용된 (GlobalMemoryStatusEx) 메서드는 게임이 메모리를 사용하는 다른 차원을 아는 것이 가치 있을 경우를 위한 추가 솔루션입니다.
가이드라인 | 정적 인게임 설정 만들기
정적 인게임 설정은 상태가 마지막으로 확인된 단일 전력 상태에서의 하드웨어 구성만 고려합니다. 정적 인게임 설정을 만드는 것은 프레임 레이트와 같은 객관적 지표를 목표로 하는 것에서 시작합니다.플레이어 기대 게임은 잘 플레이되기 위해 필요한 것을 이해하고, 최소 1080p30 성능(예: ROG XBOX Ally X) 또는 720p30 성능(ROG XBOX Ally)을 제공하는 최상의 설정으로 기본 설치됩니다. 테스트 단계기대 결과 Windows 게이밍 핸드헬드의 고성능 클래스(예: ROG XBOX Ally X)와 고효율 클래스(예: ROG XBOX Ally) 모두에서 안정적인 프레임 레이트를 동등하게 잘 유지하는 최소 [2]개의 인게임 설정을 만들거나 캡처하게 됩니다.
- 배터리에서 테스트합니다. 배터리가 완충된 채로 전원이 분리된 핸드헬드 기기에 게임을 설치하고 기본 설정으로 실행합니다.
- 실행 시와 에셋 로드/IO 안정화 후 FPS 미터로 성능을 모니터링합니다. Windows + G를 눌러 Windows Game Bar의 Frames Per Second(FPS) 미터에 액세스하거나, PresentMon(자세한 내용은 GitHub 프로젝트)을 실행해 실시간으로 FPS를 기록하고 추적하세요.
- 평균 FPS 설정보다 최소 FPS에 초점을 맞춥니다. FPS가 최소 1080p30(예: ROG XBOX Ally X 또는 동급 하드웨어) 또는 720p30(예: ROG XBOX Ally 또는 동급 하드웨어)으로 일관되게 실행될 때까지 설정을 조정합니다.
- 고성능과 고효율 하드웨어 구성 모두에 대한 인게임 설정 라이브러리를 만듭니다. 다른 하드웨어 SKU(예: ROG XBOX Ally vs. ROG XBOX Ally X)에 대한 이상적인 설정을 확인하기 위한 향후 테스트를 위해 이러한 설정을 저장하세요.
가이드라인 | 동적 인게임 설정 만들기
동적 인게임 설정은 정적 인게임 설정보다 더 세밀합니다. 최소 두 가지 전력 상태(플러그인 또는 배터리 사용)에 매핑되며, 게임 실행 중 Power Mode 변경 이벤트에 반응하는 것이 이상적입니다.플레이어 기대 특히 Windows 게이밍 핸드헬드의 경우, 플러그인과 배터리 사용을 오가는 동안 게임이 성능과 배터리 수명 사이의 균형을 최대한 잘 맞춰 주기를 기대합니다. 게임은 잘 플레이되기 위해 필요한 것을 이해하고, 최소 1080p30 성능(예: ROG XBOX Ally X) 또는 720p30 성능(ROG XBOX Ally)을 제공하는 최상의 설정으로 기본 설치됩니다. 테스트 단계기대 결과 게임 실행 시 또는 Power Mode가 변경되었다는 알림 수신 시 적용될 최대 [4]개의 인게임 설정을 만들거나 캡처하게 됩니다. 이러한 인게임 설정은 Windows 게이밍 핸드헬드의 고성능 및 고효율 클래스에 매핑되지만, 배터리를 자주 전환하는 각 기기의 플러그인 및 배터리 상태에도 매핑됩니다.
- 배터리에서 테스트합니다. 배터리가 완충된 채로 전원이 분리된 핸드헬드 기기에 게임을 설치하고 기본 설정으로 실행합니다.
- 실행 시와 에셋 로드/IO 안정화 후 FPS 미터로 성능을 모니터링합니다. Windows + G를 눌러 Windows Game Bar의 Frames Per Seconds(FPS) 미터에 액세스하거나 PresentMon을 실행해 실시간으로 FPS를 기록하고 추적하세요.
- 평균 FPS 설정보다 최소 FPS에 초점을 맞춥니다. FPS가 최소 1080p30(예: ROG XBOX Ally X 또는 동급 하드웨어) 또는 720p30(예: ROG XBOX Ally 또는 동급 하드웨어)으로 일관되게 실행될 때까지 설정을 조정합니다.
- 고성능과 고효율 하드웨어 구성 모두에 대한 인게임 설정 라이브러리를 만듭니다. 다른 하드웨어 SKU(예: ROG XBOX Ally vs. ROG XBOX Ally X)에 대한 이상적인 설정을 확인하기 위한 향후 테스트를 위해 이러한 설정을 저장하세요.
- 감지 방법을 구현합니다. 이 문서의 Dynamic Preset 감지 섹션을 참조하세요.
가이드라인 | 하드웨어 전력 상태 감지
- 동적(권장): 타이틀이 알려진 Power Setting GUID 중 하나와 함께 RegisterPowerSettingNotificiation API를 사용해 전력 스킴/프로필 변경을 수신하도록 등록하면, WPARAM 값이 PBT_POWERSETTINGCHANGE로 설정된 WM_POWERBROADCAST 메시지가 LPARAM 값의 추가 세부 정보와 함께 전송됩니다. 예를 들어 GUID_POWERSCHEME_PERSONALITY로 등록하면 시스템이 Balanced에서 High Performance 등으로 변경되는지 알림을 받습니다. GUID_ACTIVE_POWERSCHEME을 사용하면 어떤 전력 프로필 변경이든 알림을 받습니다. GUID_ENERGY_SAVER_STATUS를 사용하면 기기가 Battery/Energy Saver 모드로 진입하는지 알림을 받습니다.
- 정적: 기기가 전원 연결 상태인지 배터리로 실행 중인지 쉽게 판별하기 위해 샘플에 표시된 대로 수동으로 조회할 수 있습니다.
지원 | 핸드헬드 게이밍 PC용 게임 설정 최적화에 대한 질문이나 우려 사항이 있다면 어디로 문의해야 하나요?
다음 리소스 요약 외에도 ID@XBOX 같은 XBOX 개발자 프로그램에 속한 개발자는 포럼(https://forums.xboxlive.com – 활성 NDA 계정 로그인 필요)에서 연결할 수 있습니다. 모든 개발자는 Microsoft Game Dev Discord 서버(https://discord.gg/msftgamedev)에서도 연결할 수 있습니다.- Microsoft Game Dev Handheld Development Hub: https://developer.microsoft.com/games/resources/handheld-development/
- Microsoft Windows Gaming Handheld Code Samples:https://developer.microsoft.com/games/articles/2025/07/windows-gaming-handheld-code-samples/
- Microsoft Game Dev Discord: https://discord.gg/msftgamedev
- Microsoft NDA Developer Forums: https://forums.xboxlive.com (관련 전문가에게 요청이 전달되도록 “handheld” 태그를 사용)
