Greak:의 최적화된 컨트롤, 메모리 및 빌드 크기: Azur의 추억의 Android 포트

2021년 8월, Navegante는 Greak: Memories of Azur를 차세대 콘솔 및 PC 플랫폼에서 동시에 온라인 및 오프라인으로 출시했습니다. 지난 4년 동안, 팀은 커뮤니티와 밀접하게 소통하며, 게임을 넘어 IP를 확장하는 데 도움이 된 수상 소식과 라이센스 기회를 공유했습니다.
지난 1년 동안, 그들은 라틴 아메리카의 스튜디오가 Google Play Pass에 게임을 가져올 수 있도록 지원을 받는 훌륭한 프로그램을 발견했습니다.
우리는 Navegante의 공동 창작 감독이자 리드 프로그래머인 로드리고 페르난데스와 스튜디오의 리드 프로듀서인 아나히트 페르난데스, 그리고 수석 프로그래머인 네스토르 고메즈와 이야기를 나눴습니다. 세 사람은 팀이 타이틀을 Android로 포팅하는 동안 겪었던 어려움을 어떻게 극복했는지에 대해 이야기했습니다.
Greak:의 출시를 축하합니다 Memories of Azur가 Google Play Pass에 출시되었습니다. 팀이 4년 후에 게임을 모바일로 포팅하기로 결정한 이유는 무엇인가요?
로드리고 페르난데스: 몇 년 전 모바일 게임 생태계가 얼마나 성숙해졌는지를 고려할 때, 우리는 매우 호기심이 많았습니다. 특히 많은 훌륭한 인디 모바일 게임이 새로운 관객에게 도달하는 것을 보았기 때문입니다. 그래서 우리는 기회를 찾기 시작했고 Google의 훌륭한 프로그램을 발견했습니다.
게임을 모바일로 가져오는 데 가장 큰 도전은 무엇이었나요?
로드리고: 가장 큰 도전은 터치스크린 컨트롤을 재설계하고 작은 화면 크기 제한을 극복하는 것이었습니다. 우리는 수정해야 할 사소한 셰이더 문제들이 있었습니다. 우리는 또한 최적화와 게임 내 성능 옵션 추가를 더 면밀히 살펴보았습니다.
네스토르 고메즈: 가능한 많은 장치에서 게임이 잘 실행되도록 하고, 최소 및 권장 사양 크기를 결정하는 것이 가장 어려웠습니다. 우리는 훌륭한 플레이어 경험을 제공하는 것과 도달률을 극대화하는 것 사이에서 좋은 균형을 찾아야 했습니다.
아나히트 페르난데스: 상업적인 측면에서, 모바일 스토어가 PC와 콘솔 스토어와 다르다는 점이 도전적이었습니다. 스토어 자산을 만들고 설명을 작성하는 것부터 가격 책정 및 기타 세부 사항을 파악하는 것까지, 이는 큰 학습 경험이었습니다.

터치스크린 컨트롤 재설계 접근 방식은 무엇이었나요?
로드리고: 우리는 경험을 가능한 한 전체 컨트롤러에 가깝게 유지하려고 했습니다. 그러나 버튼을 조합하여 액션을 수행하거나 더 많은 손재주가 필요한 메커니즘과 같은 특정 버튼 조합은 잘 재현할 수 없습니다. 그런 경우에는 게임의 특정 측면을 재작업하여 더 접근 가능하게 만들거나 완전히 재작업해야 했습니다.
네스토르: 우리는 다른 모바일 게임을 플레이하며 연구를 했고, 컨트롤 디자인을 반복하여 편안하고 직관적으로 느껴지도록 했습니다. 우리는 플레이어가 즐길 수 있는 좋은 레이아웃을 찾았다고 생각합니다. 우리는 또한 외부 컨트롤러를 지원하여 플레이어에게 콘솔과 같은 경험을 제공하는 것을 매우 자랑스럽게 생각합니다. 언제든지 터치스크린과 외부 컨트롤러 간에 전환할 수 있습니다. 우리는 플레이어가 그것을 즐기기를 바랍니다.

팀은 모바일에서 부드러운 전투 성능을 어떻게 보장했나요?
로드리고: 다양한 모바일 장치가 존재하기 때문에, 우리는 플레이어가 렌더 품질과 목표 프레임 속도를 조정할 수 있도록 추가 설정을 추가했습니다. 그래서 저사양 기기에서도 플레이어는 부드럽고 재미있는 경험을 할 수 있습니다.
네스토르: CPU, GPU, 메모리 및 빌드 크기를 최적화하는 데 상당한 시간을 보냈습니다. Unity Profiler와 다른 사용 가능한 도구를 사용하여 몇 차례 최적화를 진행하고 다양한 기기에서 게임을 테스트하여 우리의 진행 상황을 측정했습니다. 다양한 기기에서 FPS, 메모리 사용량 및 빌드 크기를 지속적으로 측정함으로써 현재 상태와 얼마나 추가 최적화가 필요한지를 추적할 수 있었습니다.

게임의 품질을 유지하면서 크기를 줄일 수 있었던 방법은 무엇인가요?
로드리고: 모바일 기기가 작은 화면 크기로만 제한되어 있기 때문에, 우리는 아트 자산과 비디오 클립의 해상도를 줄이는 데 집중했습니다. 이러한 변경 사항이 눈에 띄지 않으면서도 작은 다운로드 크기를 유지할 수 있도록 하기 위해 많은 내부 테스트를 진행했습니다.
네스토르: 게임이 더 큰 화면을 위해 제작되었기 때문에, 우리는 대부분의 텍스처에서 추가 해상도가 있다는 것을 알고 있었습니다. 우리는 수백 개의 텍스처를 검토하고 그것들을 축소할 수 있는지 확인했습니다. 각 텍스처에 대해 메모리와 빌드 크기를 절약하기 위해 적절한 텍스처 형식을 선택했습니다. 이렇게 함으로써 우리는 빌드 크기를 거의 50% 줄일 수 있었습니다.

다양한 기기를 위해 게임을 최적화하기 위해 어떤 단계를 밟았나요?
네스토르: 첫 번째 단계는 모든 것을 측정하는 것이었습니다. 우리는 Unity Profiler, Frame Debugger, Memory Profiler와 Android Studio 및 Asset Studio와 같은 외부 도구를 사용했습니다. 우리의 기술 중 일부는 객체 풀링, ETC2 압축 텍스처 형식 사용, 다중 스레드 렌더링 활성화, 불필요한 드로우 호출 줄이기, 게임 플레이 카메라 렌더링 축소 및 리소스 폴더 정리 등이 포함되었습니다.
가장 유용했던 Unity 도구와 기능은 무엇인가요?
네스토르: 우리는 이 포트 작업 중에 많은 도구와 기능을 사용했습니다. Unity Remote는 새로운 빌드를 장치에 배포하지 않고도 터치 입력을 시뮬레이션하는 데 도움을 주었고, Patch and Run 옵션은 빌드 시간을 크게 줄일 수 있게 해주었습니다.
Unity Profiler는 추가 성능을 얻을 수 있는 기회를 식별하는 데 도움을 주었습니다. 우리는 타임라인 뷰를 좋아하며, 그것이 매 프레임에서 무슨 일이 일어나고 있는지를 훌륭하게 보여줍니다. Memory Profiler를 사용하여 불필요한 리소스가 로드되고 있음을 확인하여 소중한 메모리를 절약했습니다. 빠른 메모리 사용량 측정을 위해 Android Logcat 패키지를 사용했으며, 이는 장치에서 메시지를 확인하는 데도 훌륭합니다.
Frame Debugger는 배칭을 깨뜨리는 요소를 식별하는 데 훌륭한 방법이었습니다. 장치와 에디터 모두에서 실행하는 것이 중요합니다. Visual Studio에서 장치에서 직접 디버깅할 수 있는 것도 에디터에서 재현할 수 없는 문제에 도움이 되었습니다.
우리는 C# Job System을 우리가 원하는 만큼 광범위하게 사용하지 않았습니다. 그러나 우리는 패럴랙스 시스템을 IJobsParallelForTransform을 사용하도록 변환하여 수백 개의 스프라이트에서 코드를 병렬로 실행하여 CPU의 몇 밀리초를 절약했습니다. 우리는 성능 개선을 활용하기 위해 향후 프로젝트에서 더 광범위하게 사용할 계획입니다.

모바일로 PC 및 콘솔 게임을 포팅하려는 개발자에게 가장 큰 팁은 무엇인가요?
네스토르: 가능한 한 빨리 장치에서 테스트하고 가능한 한 자주 테스트하세요. 이는 터치 컨트롤러, 글꼴 렌더링, UX, 성능, 메모리 사용량, 빌드 크기 및 도구 호환성까지 모든 것을 포함합니다. 지원할 계획에 따라 저사양 및 중간 사양 장치를 테스트용으로 준비해야 합니다.
Anahit: 출시를 위해 먼저 주요 플랫폼에 집중하고, 팀에 여유가 생기면 다른 플랫폼으로 확장하세요. 우리의 경우, 커뮤니티는 믿을 수 없을 만큼 지원적이었습니다. Greak: Azur의 추억이 처음 출시된 지 몇 년이 지났지만, 이 Android 출시를 둘러싼 흥분은 이 과정을 가치 있게 만들었습니다.
이제 Greak: Azur의 추억이 Android에서 출시되었습니다. 다음은 무엇인가요?
Anahit: 올해 말에 발표할 계획인 스튜디오의 두 번째 게임을 작업 중입니다!
Unity로 제작된 프로젝트에 대한 자세한 내용을 보려면 리소스 페이지를 방문하세요.
