게임 모드 개입

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

  • 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 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에서 설정한 개입이 사용됩니다.

리소스

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