새로고침 빈도 최적화

Android 15는 전원 소모를 최적화하기 위해 게임의 기본 화면 재생 빈도를 60Hz로 설정합니다. 120FPS와 같은 더 높은 프레임 속도를 사용하려면 이제 Frame Rate API 또는 Swappy 라이브러리를 사용하여 이를 명시적으로 요청해야 합니다.

하지만 시스템은 배터리 수준이나 기기 온도와 같은 요인에 따라 이 요청을 재정의할 수 있습니다. 화면 재생 빈도가 높을수록 시각적 부드러움이 향상되지만 전력 소모량이 증가하고 열이 더 발생합니다. 따라서 사용자에게 원하는 새로고침 레이트를 선택할 수 있는 옵션을 제공하고 균형 잡힌 사용자 환경을 보장하기 위해 성능을 주의 깊게 모니터링하는 것이 중요합니다.

setFrameRate() API 사용

setFrameRate() API를 사용하면 게임 개발자가 특정 디스플레이 재생 빈도를 사용할 수 있습니다. 이 작업은 다음 두 단계로 진행됩니다.

  1. 기기 및 Android 버전 호환성을 확인합니다.
  2. setFrameRate()를 사용하여 높은 FPS를 요청합니다.

기기 및 Android 버전 호환성 확인:

Display.getSupportedModes() 메서드를 사용하여 기기가 90Hz, 120Hz 또는 기타 새로고침 빈도를 지원하는지 확인합니다. 기기가 60Hz로 제한된 경우 이 한도를 초과할 수 없습니다.

Kotlin

val display = windowManager.defaultDisplay
val supportedModes = display.supportedModes
for (mode in supportedModes) {
  Log.d("DisplayInfo", "Supported mode: ${mode.physicalWidth}x${mode.physicalHeight}, ${mode.refreshRate}Hz")
}

높은 FPS 요청

렌더링 루프가 시작될 때, 게임 창 초기화 중에 또는 타겟 FPS가 디스플레이 새로고침 빈도를 변경해야 할 때 setFrameRate()를 호출합니다.

더 높은 비율을 요청하더라도 절전 모드나 열 제한과 같은 요인으로 인해 시스템에서 화면 재생 빈도를 60Hz로 제한할 수 있습니다. 게임의 렌더링 성능이 타겟 FPS에 도달하지 못하는 경우 더 높은 새로고침 빈도를 요청하면 불필요한 전력이 소모되고 기기의 온도가 올라갈 수 있습니다.

다음 스니펫은 setFrameRate() API를 사용하여 너무 높은 새로고침 빈도를 방지하는 방법을 보여줍니다.

Kotlin

val targetFps = 120f
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
  window.setFrameRate(
      targetFps,
      Window.FrameRateCompatibility.FRAME_RATE_COMPATIBILITY_FIXED_SOURCE,
      0
  )
}

자세한 내용은 프레임 속도 페이지를 참고하세요.

프레임 속도 라이브러리 사용

프레임 속도 라이브러리(Swappy)는 C/C++ Android 게임 엔진에서 VSync 관리 및 프레임 예약을 간소화하도록 설계된 오픈소스 라이브러리입니다. 이 도구는 새로고침 빈도 최적화 프로세스를 간소화하여 setFrameRate()와 같은 기능에 대해 상위 수준의 추상화 레이어 역할을 합니다. 또한 Swappy는 게임의 전반적인 부드러움과 성능을 개선할 수 있는 추가 기능을 제공합니다.

Swappy 페이지에서 자세한 내용을 확인하세요.

최상의 결과를 위한 추가 도움말

다음 섹션에서는 몇 가지 유용한 도움말을 설명합니다.

  1. 동적 프레임 속도 전환
  2. Performance Monitoring
  3. 최대 디스플레이 재생 빈도를 기반으로 FPS 옵션을 제공합니다.

동적 프레임 속도 전환

성능과 전원 소모량을 모두 최적화하려면 게임에 동적 프레임 속도 전환을 구현하는 것이 좋습니다. 이 기법을 사용하면 까다로운 장면에서 더 부드러운 게임플레이를 위해 120Hz와 같은 더 높은 화면 재생 빈도와 덜 까다로운 순간이나 배터리 수명이 우려되거나 60FPS 미만을 타겟팅하는 경우 60Hz와 같은 더 낮은 화면 재생 빈도 간에 원활하게 전환할 수 있습니다. 120Hz로 지속적으로 실행하면 과도한 열 발생과 빠른 배터리 소모가 발생하여 사용자 환경이 저하될 수 있습니다. 현재 렌더링 부하와 기기 상태에 따라 화면 재생 빈도를 지능적으로 조정하면 시각적 충실도와 전력 효율성의 균형을 맞출 수 있습니다.

성능 모니터링

더 높은 재생 빈도에서 게임이 최적으로 실행되도록 하려면 프레임 카운터나 성능 오버레이와 같은 성능 모니터링 도구를 통합하세요. 이러한 도구는 게임의 실제 프레임 속도에 관한 실시간 피드백을 제공하므로 타겟 120FPS를 일관되게 달성하고 있는지 확인할 수 있습니다.

프레임 속도가 크게 변동되는 경우 지정된 기기에서 달성 가능한 더 낮은 프레임 속도를 타겟팅하는 것이 좋습니다. 이렇게 하면 최대 재생 빈도를 달성할 때 발생할 수 있는 성능 중단 없이 더 원활한 환경을 제공할 수 있습니다.

최대 디스플레이 새로고침 빈도에 따라 FPS 옵션 제공

게임은 현재 기기에서 지원하는 최대 디스플레이 재생 빈도(예: 60Hz, 90Hz, 120Hz)를 감지하고 그에 따라 FPS 설정을 제한해야 합니다. 예를 들어 기기가 최대 60Hz만 지원하는 경우 플레이어의 혼동을 피하기 위해 게임 설정에서 60FPS보다 높은 옵션을 사용 중지하는 것이 좋습니다.