Android에서 성공적인 게임을 개발하려면 성능 및 열 관리 개선이 필수적입니다. 기존에는 개발자가 게임 충실도를 낮추거나 렌더기를 추가로 최적화하여 이러한 문제를 관리해야 했습니다. 이러한 변경사항은 게임별로 적용되는 경향이 있으며 유연하지 않은 경우가 많습니다.
Android 생태계의 몇몇 참여자는 개발자에게 적응형 성능 API를 제공합니다. 적응형 성능 기능의 통합을 간소화하고 생태계의 단편화를 줄이기 위해 Google과 MediaTek은 협력을 통해 Android 동적 성능 프레임워크(ADPF) 및 MediaTek 적응형 게임 기술 (MAGT)과 같은 제품을 통합하고 있습니다.
ADPF는 개발자가 실시간 열 상황에 따라 게임 워크로드를 조정하고 현재 워크로드에 맞게 성능을 최적화할 수 있도록 OS에 힌트를 제공할 수 있는 기능을 제공합니다. 이러한 신호를 사용하여 해상도, 프레임 속도, 리소스 로드 전략과 같은 충실도 및 성능 설정을 조정할 수 있습니다. 이를 통해 성능, 발열, 충실도의 균형을 더 잘 맞추어 Android 게이머에게 가능한 한 최상의 환경을 제공할 수 있습니다. Android 생태계에서 이 기술을 활용하고 있습니다. 카카오 게임즈의 Ares는 Thermal API에 대응하여 런타임 시 워크로드를 조정하여 FPS 안정성을 96%까지 향상할 수 있었습니다.
MediaTek은 Android용 SoC의 선두 제공업체입니다. 이 회사는 새로운 Dimensity 9300과 같은 다양한 칩을 생산하고 있습니다. MediaTek은 2021년부터 제공된 MAGT SDK도 제공합니다. SDK는 실시간 성능에 관한 세분화된 정보 및 워크로드 증가를 위한 힌트와 같이 MediaTek SoC에서 성능 조정을 위한 고급 기능을 제공합니다. MediaTek은 개발자에게 MAGT를 제공할 뿐만 아니라 향상된 ADPF 기능을 제공하기 시작했습니다.
![](https://developer.android.com/static/images/cards/distribute/stories/mediatek_google.jpg?authuser=0000&hl=ko)
ADPF로 열 조절 방지 및 성능 최적화
MediaTek은 ADPF 프레임워크에서 현재 및 대상 기기 온도에 액세스하여 심각한 제한을 방지할 수 있도록 허용합니다. 애플리케이션은 ADPF getThermalHeadroom()
함수를 활용하여 기기가 심각한 제한에 도달하기 전에 사용 가능한 열 헤드룸의 추정치를 얻을 수 있습니다. 애플리케이션은 이 추정치를 사용하여 워크로드를 동적으로 조정하여 기기가 제한을 트리거하지 않도록 할 수 있으므로 전반적인 사용자 환경을 개선할 수 있습니다.
이 애플리케이션 (Unity의 보트 공격 데모를 예로 사용)도 성능을 최적화하기 위해 Performance Hint Session API를 사용합니다.
updateTargetWorkDuration()
및 reportActualWorkDuration()
함수를 각각 통해 각 프레임의 타겟 프레임 시간과 현재 프레임 시간을 제공합니다. MediaTek 플랫폼은 두 번의 reportActualWorkDuration()
호출 간에 워크로드를 계산하고 목표 기간 내에 워크로드가 완료될 수 있도록 적절한 CPU 용량을 할당합니다.
따라서 MediaTek 플랫폼은 균형 잡힌 전력 소비로 최적의 초당 프레임 수 (FPS)를 지속적으로 제공하여 원활한 사용자 환경을 보장합니다.
향상된 프레임 속도, 전력 소비 감소, 더 긴 게임 세션 지원
전반적으로 Unity Boat Attack 데모는 프레임 속도를 8.5fps로 개선하고 전력 소비를 12% 줄였으며 게임 세션을 25분 이상 늘릴 수 있도록 했습니다. FPS 표준 편차가 25% 감소했습니다. 이렇게 극적인 개선을 통해 게임의 재현성을 높이고 열적으로 지속 가능한 방식으로 더 오랜 기간 플레이 세션을 실행할 수 있습니다.
![](https://developer.android.com/static/images/cards/distribute/stories/mediatek_table.png?authuser=0000&hl=ko)
![](https://developer.android.com/static/images/cards/distribute/stories/mediatek_fps.png?authuser=0000&hl=ko)
충실도 설정을 조정하지 않고도 성능 힌트 세션을 사용 설정하기만 해도 워크로드의 평균 렌더링 스레드 시간을 거의 10%까지 줄일 수 있었습니다.
MediaTek SoCs의 적응형 성능의 다음 단계
ADPF는 향후 몇 년 동안 새로운 기능과 함께 업그레이드되고 MAGT의 새로운 기기 제약이 없는 기능을 추가할 예정입니다. MediaTek 기기를 최대한 활용하려는 개발자를 위해 MAGT SDK에는 MediaTek 칩셋 아키텍처를 고유하게 타겟팅하는 고급 기능이 포함되어 있으며 곧 핵심 ADPF 기능도 제공할 예정입니다.
![](https://developer.android.com/static/images/cards/distribute/stories/mediatek_logo.png?authuser=0000&hl=ko)
![](https://developer.android.com/static/images/cards/distribute/stories/android_logo.png?authuser=0000&hl=ko)
Android 적응성 시작하기
이제 모든 Android 게임 개발자가 Unity, Unreal, Cocos Creator 게임 엔진 및 네이티브 C++ 라이브러리를 통해 Android 동적 성능 프레임워크를 사용할 수 있습니다.
- Unity 개발자는 적응형 성능 제공자 v5.0.0으로 시작할 수 있습니다. Thermal API는 Android 11(API 수준 30)의 대부분의 Android 기기와 Android 12 (API 수준 31)의 Performance Hint API에서 지원됩니다.
- Unreal 개발자는 Android 12 (API 수준 31) 이상을 타겟팅하는 대부분의 Android 기기에 Android 동적 성능 Unreal Engine 플러그인을 시작할 수 있습니다.
- Cocos Creator의 경우 v3.8.2에서 Thermal API를, v3.8.3에서 Performance Hint API를 시작할 수 있습니다.
이러한 게임 엔진의 경우 Thermal API가 Adaptive Performance와 통합되어 기기 열 정보를 검색할 수 있으며, Performance Hint API는 추가 작업 없이 Update()
또는 Monitor()
마다 자동으로 호출됩니다.
마지막으로 커스텀 엔진의 경우 네이티브 ADPF C++ 샘플을 참조할 수 있습니다.
추가 리소스
Android 동적 성능 프레임워크가 게임의 FPS를 안정화하고 열 제한을 줄이는 데 어떻게 도움이 되는지 알아보세요.
MediaTek SoC의 고급 성능 조정을 위한 MediaTek 적응형 게임 기술에 관해 알아보세요.