게임 모드 개입

게임 모드 개입은 개발자가 더 이상 업데이트하지 않는 게임의 성능을 개선하기 위해 OEM이 설정한 게임별 최적화입니다. 예:

  • WindowManager 백버퍼 크기 조절 사용
  • 네이티브 GLES 드라이버 대신 ANGLE 사용

게임이 OEM에서 제공하는 게임 모드 개입을 재정의하도록 Game Mode API를 지원하고 관리할 수 있습니다.

Game Mode API 및 개입은 다음에서 사용할 수 있습니다.

각 게임은 다음과 같을 수 있습니다.

  • Game Mode API 동작을 구현합니다.
  • OEM에 게임 모드 개입 설정 제안 또는
  • 게임 모드 개입을 명시적으로 선택 해제합니다.

배경

이 섹션에서는 게임 모드 개입의 기능과 각 모드에 맞게 게임을 최적화하는 방법을 설명합니다.

WindowManager 백버퍼 크기 조정

WindowManager 백버퍼 크기 조정 개입은 기기의 GPU 로드를 줄일 수 있습니다. 또한 목표 프레임 속도에서 게임을 실행할 때 배터리 소모를 줄일 수도 있습니다.

크기 조절을 사용 설정하면 GPU의 최대 30% 와 전체 시스템 전력 사용량을 10% 까지 줄일 수 있습니다. 결과는 사용된 기기, 환경 조건, 동시 처리와 같은 기타 요소에 따라 달라질 수 있습니다.

GPU에 바인딩되어 속도 조절이 되지 않는 게임은 GPU 로드가 감소하면서 프레임 속도가 높아질 수 있습니다.

균일하지 않은 프레임 속도는 사용자가 성능을 인식하는 방식에 크게 영향을 미치므로 모든 게임의 속도를 조절하는 것이 좋습니다.

FPS 제한

Android FPS 제한은 배터리 소모를 줄이기 위해 게임이 보다 안정적인 프레임 속도로 실행되도록 하는 게임 모드 개입입니다. 이러한 개입은 Android 13 이상에서 사용할 수 있습니다. 자세한 내용은 FPS 제한 개요를 참고하세요.

게임 모드 개입 평가

이 섹션에서는 adb 명령어를 사용합니다.

모드 설정

게임 모드 개입을 테스트하기 전에 앱의 게임 모드 구성 파일에서 게임 모드를 선택 해제해야 합니다. 그러지 않으면 플랫폼이 이를 우회하고 게임 내 최적화만 적용합니다.

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(선택사항) 기존 기기 구성 백업

Pixel 또는 기타 기기의 경우 기기 구성에 기존 게임 개입 구성이 있을 수 있습니다. 다음 명령어를 사용하여 구성을 쿼리할 수 있습니다.

adb shell device_config get game_overlay <PACKAGE_NAME>

쿼리가 null를 반환하면 기존 구성을 무시합니다. 그렇지 않으면 저장하고 평가 후에 재설정하세요.

개입 평가

WindowManager 백버퍼 크기 조절 개입을 자체적으로 평가하려면 다음 명령어를 사용하여 게임 모드 전반에 걸쳐 서로 다른 WindowManager 버퍼 크기 조절 값을 설정하세요.

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

위의 예에서 mode=2는 '성능'이고 mode=3는 '절전 모드'입니다. downscaleFactor 값은 크기 조절 설정에 적용되는 비율로 지정됩니다 (예: 0.7은 70%, 0.8은 80%). 90%(0.9) 크기 조절은 거의 무시할 수 있는 반면 50% (0.5)는 중대합니다.

경고: Android 12에서는 하위 프로세스의 크기를 올바르게 조절하지 못할 수도 있습니다. 특히 토스트 메시지 및 팝업이 올바르게 렌더링되어야 합니다. 크기 조절 설정을 70% 이상으로 제한하는 것이 좋습니다.

새로운 크기 조절 밸리를 설정한 후 게임 모드 간에 전환하여 WindowManager 백버퍼 크기 조정 개입이 게임에 미치는 영향을 확인합니다.

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

각 게임 모드를 선택한 후에는 게임을 다시 시작해야 합니다. 축소 개입을 위해서는 앱을 다시 시작해야 합니다.

개입 거부

선택 해제하여 게임에 개입을 적용할지 여부를 제어할 수 있습니다. 각 개입에는 자체 거부 설정이 있습니다.

  1. 게임 모드 선택 및 선택 해제를 제어하는 데 사용하는 구성 XML 파일과 동일한 구성 XML 파일이 개입 설정에도 사용됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. 게임을 다시 빌드한 다음 다시 제출하여 거부합니다.

게임에서 명시적으로 사용을 선택 해제하지 않는 한 기본적으로 OEM에서 설정한 개입이 사용됩니다.

리소스

게임 성능 측정 및 최적화에 관한 자세한 정보는 다음을 참조하세요.