이 글의 원문은 여기서 확인 가능합니다.
지난 7월에 AGDK(Android 게임 개발 키트)가 출시된 후, AGDK 라이브러리와 툴, Android의 메모리 최적화, 그래픽 구현 등에 관해 개발자들이 문의 주신 몇 가지 핵심 질문을 모아봤습니다.
먼저, 인기 게임 개발자 여러분이 AGDK 라이브러리 및 도구 세트를 사용하는 방법에 대해 많이 질문해 주셨습니다. 설정에 따라 다음 사항을 권장합니다.
Defold, Godot, Unity 또는 Unreal과 같은 인기 있는 게임 엔진을 사용하는 개발자 여러분은 Android에서 앱을 개발하는 방법에 관한 가이드를 참조하실 수 있습니다. 이러한 게임 엔진을 사용하면 전체 기술 스택 대신 게임플레이 빌드에 집중할 수 있습니다.
Unreal Engine을 사용하고 PC 또는 콘솔과 같은 여러 플랫폼을 대상으로 하는 경우 AGDE(Android 게임 개발 확장 프로그램)가 워크플로에 큰 도움이 될 수 있습니다.
또한 자체 게임 엔진을 커스터마이징하고 작성하려는 개발자도 지원합니다. C 또는 C++ 설명서를 통해 이에 대해 자세히 알아볼 수 있습니다.
게임 엔진과 워크플로를 선택한 후에는 게임을 검사하기 위한 Android Studio Profiler, 그래픽을 프로파일링하기 위한 Android GPU Inspector, 프레임 속도와 로드 시간을 최적화하기 위한 Android Performance Tuner와 같은 도구를 살펴봐야 합니다.
이후에는 Android 12에 맞는 개발 방법에 관한 질문이 이어졌습니다. Android 12에서 게임이 실행되는 데 특별히 필요한 일은 없지만, 플레이어가 게임 환경을 커스터마이징하는 데 도움이 되는 Game Mode API 및 개입을 도입했습니다.
Game Mode API에 대한 자세한 내용을 읽어보고, 사용자가 게임 모드를 선택할 때 최고의 성능이나 긴 배터리 수명을 누리기 위해 게임을 최적화하는 방법을 알아보세요.
Game Mode 개입에 대해 알아보세요. 이 기능은 OEM(Original Equipment Manufacturer)에 의해 설정되며, 개발자가 더 이상 업데이트하지 않는 게임의 성능을 개선합니다. 그 예로 기기의 GPU 로드를 줄이기 위한 WindowManager 백버퍼 크기 조정이 있습니다.
둘째, Windows에 비해 Android 게임 개발 시 메모리 액세스의 작동 방식이 어떻게 다른지 질문을 받았습니다. 다음과 같은 몇 가지 지침으로 요약할 수 있습니다.
게임은 시스템과 메모리를 공유해야 합니다. 기기에 따라 사용 가능한 메모리가 적을 수 있으므로, 다양한 지원 기기에서 메모리 부족 문제가 있는지 테스트가 필요합니다. 사용자가 설치했을 법한 일반적인 앱이 있는 기기(즉, 깔끔하게 정리된 기기가 아님)에서 테스트를 수행해야 합니다.
게임에서 할당할 수 있는 메모리의 양은 물리적 메모리의 양, 더티 페이지 수, (압축 스와핑을 위한) 총 zRam의 양 등 다양한 요인에 따라 다릅니다.
메모리가 부족하면 onTrimMemory() 호출, 메모리 스래싱 또는 Low Memory Killer에 의한 게임 종료와 같은 증상이 나타날 수 있습니다. 버그 신고 로그를 사용하여 Low Memory Killer로 게임이 종료되었는지 확인하거나, Android 11 이상에서는 ApplicationExitInfo를 확인해 REASON_LOW_MEMORY 때문에 게임이 종료되었는지 살펴보세요.
메모리 스래싱을 방지하세요. 게임을 종료할 수 없을 만큼 메모리가 부족할 때 메모리 스래싱이 발생합니다. 시스템 추적을 통해 이를 감지할 수 있으며, 이 문제를 방지하려면 전체 메모리 사용 공간을 줄여야 합니다.
Android Profiler와 기타 도구를 사용해 메모리 사용량을 검사하세요.
셋째, Android에서의 그래픽 구현에 대한 질문을 받았습니다. OpenGL ES 또는 Vulkan graphics API 옵션을 사용할 수 있습니다.
변수를 초기화하고 게임 루프, 장면, 객체로 렌더링을 하여 C++ 게임 엔진에 맞게 OpenGL ES 그래픽을 구성하는 방법을 알아보세요.
Vulkan 가이드에서 큐브를 그리고, 셰이더를 컴파일하고, 유효성 검사 계층을 설정하는 방법과 기타 모범 사례를 알아보세요.
Q&A 동영상을 확인해 AGDK에 대한 주요 질문을 확인하고, g.co/android/AGDK를 방문해 Android 게임 개발을 위한 최신 리소스를 살펴보세요.