갓포지 최적화: 200명 이상의 영웅, 수백만 개의 폴리곤으로 이루어진 세계

Fateless의 공동 창립자이자 공동 CEO인 사이먼 로커비와 히샴 살레와의 인터뷰를 확인해 보세요. 그들은 Godforge 에서 200명이 넘는 영웅과 최대 백만 개의 폴리곤으로 구성된 고화질 환경을 관리하기 위해 사용한 핵심 최적화 전략을 공유합니다. 그들은 Unity) 환경에서 작업함으로써 메모리 사용량을 4GB에서 1.3GB로 줄이고 프레임률을 57% 향상시키는 데 성공했다고 설명합니다.
사이먼 로커비: 갓포지는 신화를 배경으로 하는 턴제 분대 RPG입니다. 라, 제우스, 심지어 시진과 같은 마야 신들과 싸우고 장대한 보스전에 도전할 수도 있습니다.
Unity 사용하기 시작했을 때 모바일 최적화와 관련하여 가장 큰 어려움 중 일부는 빌드 크기, 게임 내 프레임 속도, 그리고 실제 다운로드 속도와 관련된 문제였습니다.
저희는 셰이더 변형, 프레임률 향상, APK 다운로드 크기 축소, 전반적인 다운로드 속도 개선 등 여러 가지 최적화 작업을 시도하고 싶었습니다.

시간에 따른 성능 확장
히샴 살레: 저희는 게임을 성장시키고 개발하는 과정에 있기 때문에, 이 프로젝트는 6개월 만에 끝나는 것이 아닙니다. 이는 오랜 과정이었습니다. 따라서 최적화 목표와 목표 기기는 시간이 지남에 따라 실제로 변화해 왔으며, 이는 단지 예상일 뿐입니다.
저희는 항상 가능한 한 많은 모바일 기기를 지원하고자 합니다. 저희는 멋진 PC 조립을 완성하고 싶었기 때문에, 팀원들이 최소 사양과 달성해야 할 목표치를 정확히 알 수 있도록 하는 데 집중했습니다. 그리고 나서 우리는 가장 낮은 해상도에서도 최대한 보기 좋게 만들고, 모바일에서 가장 높은 해상도로 보이도록 집중적으로 보여주고 싶습니다. Unity 우리가 그렇게 할 수 있도록 많은 도구를 만들어 주었습니다.
사이먼 로커비: Unity 팀에서 제공해준 툴 덕분에 미래에도 문제없이 사용할 수 있게 되었습니다. 이 시스템 덕분에 대형 메시가 포함되거나 중복된 메시가 빌드에 포함되는 시점을 파악하고, 처음부터 아틀라스를 제대로 활용할 수 있었습니다. 이러한 모든 시스템을 구축함으로써 향후 빌드 크기, 다운로드 속도, 프레임 속도 등을 제어할 수 있게 되었습니다.
히샴 살레: 우리가 진정으로 집중했던 부분을 살펴보면, 이러한 환경, 등장인물, 그리고 화면에 나타나는 모든 것들이죠. 만약 장면 안에 수백만 개의 폴리곤(제 생각엔 수백만 개까지는 아니더라도 아마 백만 개 정도 될 겁니다)이 있고, 그걸 전부 한 번에 불러오려고 하면 로딩 속도가 매우 느릴 겁니다.
그래서 오클루전 콜링 덕분에 우리가 원했던 모든 것을 할 수 있었고, 모든 것이 멋지게 보일 뿐만 아니라 로딩 속도도 빨라질 수 있었습니다. 플레이어들이 들어와서 전투를 시작할 때, 이전에는 5~6초씩 걸리던 게 이제는 아주 좋은 기기에서는 상당히 빠르게 로딩되고, 가장 사양이 낮은 기기에서도 최대 1~2초 정도밖에 걸리지 않습니다.

자산 적재 성능 최적화
사이먼 로커비: 가장 큰 기쁨은 저희가 모든 피규어를 모았을 때였어요. 저희는 히어로 피규어 수집가라서 200개가 넘는 다양한 히어로 피규어를 가지고 있거든요. 따라서 플레이어는 언제든지 200개 이상의 영웅 초상화를 선택할 수 있습니다. 그래서 그 정보들을 아틀라스에 추가했더니 영웅 목록 로딩 속도가 이전에는 끔찍하게 느렸던 것에 비해 엄청나게 빨라졌습니다.
히샴 살레: Addressables에 모범 사례를 적용하니 CDN 규모가 정말 많이 줄어들었고, 이는 우리에게 큰 도움이 되었습니다. 제 말은, 주된 목적은 불필요한 것을 로드하지 않고, 필요할 때만 플레이어에게 필요한 것을 제공하며, 빌드 내에 수많은 버전과 복사본이 떠돌아다니지 않도록 하는 것이었습니다.
때때로, 작업을 완료하고 게임의 외관과 느낌, 플레이 방식 모두 훌륭하게 만드는 데 집중하다 보면 이러한 모범 사례를 간과할 수 있습니다. 그럴 때는 다시 돌아가서 수정해야 합니다.

메모리 및 프레임률 향상
히샴 살레: 자산 조정이 가장 큰 영향을 미쳤다고 생각합니다. 제 생각에는 2~3GB 메모리를 가진 저사양 기기에서 우리가 목표로 하는 품질 수준의 게임을 구동하는 것은 쉽지 않았습니다. 그래서 밉맵을 최적화하고 모든 것이 표준화되고 적절한 시기에 제대로 로드되도록 하는 것이 우리가 원하는 품질 기준을 충족하는 데 결정적인 역할을 했습니다.
사이먼 로커비: 말 그대로, 최적화 작업을 시작하기 전에는 메모리가 4GB였는데, 작업을 마친 후에는 1.3GB까지 줄었습니다. 그래서 그것은 엄청난 변화였습니다.
Unity 팀 덕분에 셰이더 변형 성능을 약 76% 향상시킬 수 있었습니다. 그들은 프레임률을 57% 향상시킬 수 있었습니다. 게임을 실행하려고 시도한 기기 유형을 식별하는 데 유용한 도구들이 많이 있습니다.
그러니까, 부하가 걸릴 때 기기 유형에 따라 낮음, 중간 또는 높음 설정을 선택할 수 있고, 따라서 해당 기기에 맞는 프로파일링을 활성화할 수 있다는 거죠. 이는 실제 서비스에 투입될 때 정말 획기적인 변화가 될 겁니다.
Steam 큐레이터 페이지 에서 Made with Unity 더 많은 게임을 살펴보시고 , Unity Unity 와 리소스 허브 에서 Unity 개발자들의 더 많은 이야기를 확인해 보세요.
