핸드헬드 Windows 디바이스용 GDK 게임 최적화에 이미 나열된 검사 외에도, 핸드헬드 디바이스에서 작동하도록 게임을 개발할 때 개발자가 염두에 두어야 할 몇 가지 다른 고려 사항이 있습니다.
핸드헬드 고정 동작
일부 핸드헬드 도킹 시 재생될 수 있습니다. 핸드헬드에 도킹된 경우 검사 간단한 API는 없지만 도킹된 디바이스에는 외부 디스플레이가 연결되어 있을 수 있습니다. 개발자는 EnumDisplayDevices 및 EnumDisplaySettings API를 사용하여 외부 디스플레이를 검사 수 있습니다.
외부 디스플레이가 있는지 확인하는 다른 여러 가지 방법도 있습니다.
핸드헬드 디바이스가 도킹된 경우:
- 추가 게임 패드를 확인합니다. 핸드헬드에서 기본 제공된 항목이 있습니다. 그러나 사용자가 추가 게임 패드를 연결했을 수 있습니다.
- 연결된 디스플레이의 화면 크기를 확인합니다.
- 게임 패드가 여전히 기본 입력 메커니즘이므로 가상 키보드 권장 사항은 그대로 유지됩니다.
- 일부 플레이어는 콘솔에서와 마찬가지로 마우스와 키보드를 연결할 수 있습니다.
보장된 입력
다른 게임 핸드헬드에는 추가 입력 옵션이 있을 수 있지만 개발자는 게임 핸드헬드에 의존하여 다음과 같은 입력을 할 수 있습니다.
- A, B, X, Y 단추
- 왼쪽 및 오른쪽 범퍼
- 왼쪽 및 오른쪽 트리거
- 왼쪽 및 오른쪽 엄지 스틱
- 방향 패드
- 메뉴 단추
- 보기 버튼
도킹할 때 검사 것으로 언급되었지만, 모든 인스턴스에서 도킹 여부와 관계없이 개발자는 연결된 모든 게임 패드 및 입력 장치에 대해 항상 검사 합니다.
전원
핸드헬드에서 배터리 대신 AC 전원을 사용하고 있는지 알고자 하는 게임은 GetSystemPowerStatus 함수를 호출할 수 있습니다. 이 함수는 디바이스가 AC 전원을 사용하고 있는지 여부를 보여 줍니다. 배터리 충전 상태(높음, 낮음, 중요, 충전)에 대한 요약을 제공합니다.
개발자는 지정된 게임에 얼마나 많은 전력이 필요할지 명확하지 않기 때문에 디바이스의 배터리 수명에 미치는 영향을 고려해야 합니다. Xbox 지속 가능성 도구 키트의 가능한 절전에 대한 일반적인 권장 사항이 있으며 핸드헬드에도 적용할 수 있습니다.
가장 큰 전력 절감은 다음과 같습니다.
- VSync를 사용하도록 설정하면 GPU가 더 많은 유휴 시간을 사용하고 전원을 절약할 수 있습니다.
- 내부 렌더링 해상도를 줄이고 업스케일 패스를 사용합니다.
- 프레임 속도를 줄여 전원을 절약합니다. 이는 게임 플레이에 영향을 미칠 수 있습니다.
- 전체 화면 메뉴 또는 UI 요소가 표시되거나 게임이 일시 중지되면 월드 렌더링을 중지합니다.
- 플레이어가 걸어나갔을 때 입력 유휴 상태가 감지되면 게임을 일시 중지합니다.
화면 차원
다른 게임 핸드헬드에는 다양한 화면 해상도가 있지만 다음을 사용할 수 있습니다.
- 화면 크기는 7인치 이상입니다.
- 화면의 가로 세로 비율은 16:9 또는 16:10입니다.
디바이스에 물리적으로 통합된 디스플레이의 화면 크기를 알고자 하는 개발자는 GetIntegratedDisplaySize 함수를 호출할 수 있습니다. 이 함수는 컴퓨터에 물리적으로 통합된 디스플레이의 대각선 화면 크기를 보고합니다.
핸드헬드 환경 모범 사례 샘플
핸드헬드 디바이스에 맞게 게임을 최적화하는 & 빌드에 대한 자세한 인사이트를 위해 네이티브 C++ 샘플과 Unity 관리형 C# 샘플이라는 두 가지 샘플을 릴리스했습니다. 둘 다 API를 활용하여 게임 핸드헬드 환경을 쉽게 관리하는 방법에 대한 유사한 모범 사례 집합을 제공합니다.
- 디바이스가 핸드헬드인지 확인합니다.
- 디바이스가 배터리 전원, 충전 또는 외부 전원 사용 중인지 확인합니다.
- 통합 디스플레이 속성을 포함하여 디바이스별 속성을 조회합니다.
- DPI 변경 내용을 처리하고 그에 따라 UI를 조정합니다.
- 텍스트 항목에 가상 키보드를 활용합니다.
- 네트워크 디바이스 & 유형을 조회합니다.
- 네트워크 및 Bluetooth 연결을 확인합니다.
- 게임 패드, 키보드 및 마우스의 입력을 처리합니다.
- 입력 형식(즉, 사용되는 최신 입력 디바이스)을 결정합니다.
이러한 샘플은 Windows 핸드헬드 게임 시나리오에 유용한 Windows 개선 사항이 만들어지고 이러한 디바이스를 위해 빌드하는 게임 개발자의 피드백을 수집함에 따라 계속 업데이트됩니다.
이러한 샘플을 가져오려면 다음을 참조하세요.
- 네이티브 C++ 샘플: GitHub의 C++ 샘플.
- Unity 관리형 C# 샘플: GitHub에서 관리되는 C# 샘플 Unity.