NEW STATE Mobile은 2021년 11월에 전세계에 출시한 크래프톤(Krafton)의 배틀 로얄 게임으로, 출시 첫 달에 4천 5백만 건 이상 다운로드 되었습니다. 크래프톤은 전세계 유저에게 혁신적이고 매력적인 엔터테인먼트 경험을 제공하기 위해 독립적인 게임 개발 스튜디오가 모여 만든 집합체입니다. 펍지 스튜디오(PUBG Studios), 블루홀 스튜디오(Bluehole Studio), 스트라이킹 디스턴스 스튜디오(Striking Distance Studios), 라이징윙스(RisingWings), 드림모션(Dreamotion), 언노운 월즈(Unknown Worlds)가 각자 고유의 전문 기술을 가지고 뭉쳤습니다. NEW STATE Mobile은 언리얼 엔진 4(Unreal Engine 4)로 제작되었으며, 게임 특성상 GPU 사용량이 높아 발열과 배터리 소모를 줄이기 위해 다양한 방법을 시도했습니다.
장거리 전투가 벌어지기 때문에, 상당히 먼 거리까지 렌더링이 가능해야 했습니다. 또한 전장에 표시되는 식생이 많기 때문에, 게임 성능이 상당히 저하되기도 했습니다. 그래서 개발 팀은 게임의 GPU 사용량을 최적화하고 해결 방법을 찾기 위해 Android GPU Inspector(AGI)를 활용했습니다.
사진 1: NEW STATE Mobile 스크린샷
NEW STATE Mobile은 AGI를 통해 수많은 GPU counter 정보에 따라 GPU 사용량을 최적화했습니다. AGI가 제공하는 GPU activity 프로파일링 데이터의 도움을 받아 불필요한 렌더 패스를 발견했습니다. 어떤 세그먼트가 GPU 사용량과 메모리 대역폭을 차지하는지 확인한 후, GPU counter와 GPU activity를 오가며 최적화가 올바른 방향으로 수행되고 있는지 점검하며 작업을 이어갔습니다.
사진 2: NEW STATE Mobile 스크린샷
NEW STATE Mobile이 AGI를 사용하며 게임 수행에 관해 확인한 점이 몇 가지 있습니다.
베이스 패스 최적화: Depth prepass는 Early-Z 사용을 향상하는 기법으로, 프래그먼트 쉐이딩을 저하하는 데 도움을 주었습니다. 특별히 스크린 공간 대부분을 차지하는 LOD0에 사용되어, 추가 드로우 콜로 발생할 수 있는 부담을 최소화했습니다. 32비트 씬 컬러를 사용하면 전체 렌더 패스 성능도 향상됩니다. 언리얼 엔진 4의 기본 씬 컬러는 64비트인 Float RGBA이기 때문에 32비트 씬 컬러 포맷을 사용하면 메모리 대역폭이 절반으로 감소합니다.
결과 측정: Depth prepass를 적용한 후, GPU 사용이 7.5% 감소했습니다. Depth prepass 덕분에 더 많은 프래그먼트에 Early-Z를 사용할 수 있었습니다. 프래그먼트 쉐이딩에 소요되는 시간은 2% 감소했습니다. 32비트 씬 컬러 포맷을 통해 GPU 사용은 5.3% 낮아졌습니다. Shaders Busy는 2% 감소했고, 총 GPU가 시스템 메모리를 읽은 양은 330MB/s 감소했습니다. GPU가 시스템 메모리를 기록한 양은 78MB/s 줄었고, 텍스처 메모리 읽기는 43MB/s 감소했습니다.
쉐도우 패스 최적화: 메시가 쉐도우 캐스터로 사용될 때는, 높은 폴리곤 LOD의 사용이 품질 면에서 별다른 차이를 만들어 내지 못하기 때문에 삼각형의 수를 줄일 수 있는 낮은 폴리곤 LOD를 사용하는 것이 선호됩니다. 언리얼 엔진 4에서는 ‘ForceLODShadow’라는 콘솔 명령어로 폴리곤 LOD를 낮출 수 있습니다.
결과 측정: 그림자에 사용된 삼각형 수가 약 12만개 줄었습니다. AGI 내 GPU counter 정보를 통해 GPU 사용량은 약 2%, GPU가 시스템 메모리를 읽은 양은 130MB/s, GPU가 시스템 메모리를 기록한 양은 23MB/s만큼 감소한 것을 확인했습니다.
오토 인스턴싱: 오토 인스턴싱은 쉐도우 패스와 베이스 패스 최적화에 모두 사용될 수 있어 동일한 렌더 커맨드를 런타임에서 병합하여 한 번에 렌더링할 수 있습니다. 이를 통해 NEW STATE Mobile은 성능을 유지하면서 글로벌 일루미네이션을 개별 오브젝트에 적용했습니다. 오토 인스턴싱은 언리얼 엔진 4에서 기본으로 제공됩니다.
결과 측정: OpenGL을 통해 측정된 결과는, 드로우 콜이 500개, 약 48% 가량 감소했고, GPU 사용은 3.5% 낮아졌습니다.
사진 3: GPU 사용량 감소를 보여 주는 내부 데이터
NEW STATE Mobile은 AGI를 이용해 GPU 사용량을 22%까지 줄였습니다. Depth prepass와 쉐도우 패스 최적화로 GPU 사용량이 각각 19%와 3% 감소한 것입니다. 드로우 콜과 GPU가 시스템 메모리를 읽고 기록한 메모리 양도 상당히 줄었습니다.
Android GPU Inspector(AGI)를 이용해 성능 문제와 최적화할 영역을 발견하여 여러분의 게임이 안드로이드 기기에 미치는 영향을 분석하는 법을 배워 보세요. 더 자세한 내용은 Google for Games Developer Summit 2022의 Android GPU Inspector 세션에서 확인해보세요.