언리얼을 활용한 멀티 플랫폼 최적화, '카트라이더: 드리프트' 실전 사례
지난 27일부터 오는 30일까지 총 4일 간 자사가 개발하는 언리얼 엔진의 기술 및 개발 노하우를 공유하는 행사, '언리얼 서밋 온라인 2022'은 27일 공통, 28일 게임, 29일 영화·TV·애니메이션, 30일 건축 & 자동차 등 주제를 나눠 강연을 진행하고 있다. 금일(28일)은 게임과 관련된 다양한 강연을 들어볼 수 있었다.
이중 눈에 띄는 것이 있었다면 올해 말 출시가 예정된 캐주얼 레이싱 게임 '카트라이더: 드리프트'를 소재로 언리얼 엔진을 활용한 게임 최적화 강연이다. 카트라이더: 드리프트는 PC, 모바일, 콘솔 등 다양한 플랫폼을 지원하는 만큼 게임 최적화가 핵심이다. 강연에서는 상세한 현장 사례와 함께 풀 크로스 플레이 환경 구축을 위한 다양한 최적화 노하우를 엿볼 수 있었다.
해당 강연은 니트로 스튜디오의 강길전 개발자가 맡았다. 본고에서는 최적화에 관심 있는 개발자 및 아티스트는 물론, 게이머도 흥미로울 만한 핵심 내용만 발췌하여 가볍게 소개해보고자 한다.
2004년에 출시한 크레이지레이싱 카트라이더는 2005년부터 e-스포츠를 시작해 국내 e-스포츠 종목 중 최장수 리그 타이틀을 가지고 있으며, PC 회원 수 합산 누적 3억 8천만 명, 국내 한정 인구 절반 이상인 3천 2백만 명이 게임을 즐겼을 정도로 많은 사랑을 받아오고 있다.
카트라이더: 드리프트는 그 크레이지레이싱 카트라이더를 언리얼 엔진으로 새롭게 재해석하고, '풀 크로스 플레이'를 더한 게임이다. 풀 크로스 플레이란 PC, 모바일, 콘솔 등 다양한 기기를 지원하며, 어느 기기로 즐겨도 부족함 없는 크로스 플레이 경험을 제공하는 환경을 말한다.
풀 크로스 플레이 환경을 제공하기 위해서는 최적화가 중요하다. 흔히 최적화란 '프레임'을 높이는 작업이라고 생각하는 경우가 많은데, 꼭 그것만이 목표인 것은 아니다. 강길전 개발자는 "프레임은 최적화 작업의 목표 중 하나일 뿐, 정확한 정의라고 말하긴 어렵다."라며 "초당 5천만 프레임이 나오는 어플리케이션보다 유저들에게 향상된 경험과 재미를 제공하는 것이 중요하다."고 설명했다.
강길전 개발자는 게임 최적화 작업을 "맞춤 양복을 재단하는 일"이라고 표현했다. 각 프로젝트의 성향과 목표에 따라 다르게 진행되어야 한다는 뜻이다. 카트라이더: 드리프트의 경우 다양한 플랫폼에서 함께 즐길 수 있는 '멀티 플랫폼 풀 크로스 플레이'를 목표로 했다. 성능에 대한 예산을 분배해서 어느 수준의 디바이스까지 지원이 가능할 지 조율해 나갔으며, 기기별 목표 프레임을 정해 최초 PC와 Xbox를 시작으로 플레이스테이션, IOS와 안드로이드 까지 지원 플랫폼을 확장했다.
풀 크로스 플레이 환경을 목표로 할 때 가장 신경써야 할 것은 각 플랫폼 별 유불리 논쟁이다. 플랫폼별로 달라지는 조작감, 프레임, 인풋랙 등으로 다양한 유불리 논쟁이 터지기 마련인데, 카트라이더: 드리프트 같은 e-스포츠화를 목표로 하는 게임은 특히 유불리 논쟁으로 인한 공정성 이슈 민감하게 반응할 필요가 있다.
특히 PC와 안드로이드의 경우 기기 메이커가 다양하기 때문에 같은 플랫폼이라도 폭 넓은 성능 차이가 존재한다. 때문에 본격적인 최적화 작업 이전에 최대한 다양한 디바이스 환경에서 프로파일링과 QA를 진행하는 것이 중요하다.
개발팀이 정한 카트라이더: 드리프트의 최소사양은 아래와 같다. 각 플랫폼별로 최소사양이 천차만별인 것을 볼 수 있는데, 이는 각 디바이스마다 성능 분포가 다른 만큼 저사양이라고 무조건 낮은 옵션으로 통일해서 사용하는 것이 아니라 각 플랫폼별 디바이스에 맞춰 별도 개발했기 때문이다.
최적화를 진행하려면 먼저 어느 스레드에서 언제 병목현상이 발생하는지 확인할 필요가 있다. 카트라이더: 드리프트의 경우 팀 대다수가 처리 시간 통계를 확인할 수 있는 'Stat UnitGraph'를 활용해 프로파일링을 지원해 PC와 콘솔 기준 드로우는 400개, 한 화면에 800만 폴리곤이 넘지 않으면 된다는 것을 확인할 수 있었다. 비교적 성능 제한이 큰 모바일의 경우 한 화면에 50만 폴리곤을 넘지 않아야 했다.
원래 카트라이더: 드리프트 프로젝트는 PC와 콘솔 플랫폼을 감안하여 개발됐는데, 나중에 모바일이 추가됐다. 이 같은 경우를 예를 들어 플랫폼의 추가로 최적화 작업 방향이 바뀐 사례도 소개됐다.
먼저 로비 그래픽이다. 로비에서는 비교적 프레임이 중요하지 않기 때문에 인벤토리나 상점 등을 통해 퀄리티 높은 캐릭터나 카트바디를 보여줘 사용자에게 시각적 만족감을 줄 수 있는 장소였고, 그만큼 그래픽 우선으로 작업이 진행돼 최적화가 인게임에 비해 덜 진행됐던 부분이 있었다. 하지만 모바일 플랫폼을 추가하게 되면서 문제가 생겼다. 인게임 외 발열을 조절하고 배터리를 절약할 수 있는 '휴식 시간'을 만들어 내야 했기 때문이다. 보통 발열과 배터리 소모가 심한 게임은 이러한 휴식 시간이 존재하지 않거나 짧아서다.
카트라이더: 드리프트는 모바일 플랫폼 추가를 위해 로비 그래픽과 UI를 최적화할 필요가 있었다. 이처럼 크로스 플랫폼을 감안하여 개발할 때는 연산 성능 외적인 문제도 충분히 고려하여 최적화해야 한다. 관련하여 강길전 개발자는 "최적화의 핵심은 어느 타이밍에 병목이 발생하는지 추적하는 것이다. 다양한 디바이스에서 보다 많은 테스트를 진행하는 것이 중요하다."라고 설명했다.
병목현상이 일어나는 좀 더 정확한 위치를 찾아낼 때는 '언리얼 인사이트(Unreal Insight)'가 큰 도움이 된다. 언리얼 인사이트는 언리얼 엔진과 통합된, 게임 내 데이터를 수집, 분석하고 시각화하는 단독 프로파일링 시스템이다. 어떤 스레드에서 병목현상이 일어나는지 상세하게 확인할 수 있으며, CPU, GPU, 에셋 로드 시간, 네트워크 부하 등을 별도로 추적할 수 있다.
특히 언리얼 엔진의 경우 Nullrhi(Null Rendering Hardware Interface)를 제공해 렌더링 없이 클라이언트를 실행, 로컬에서 쾌적하게 8인 데디케이티드 서버 테스트를 진행할 수 있다. 최종적으로 최적화 결과를 확인할 때는 각각 해당 디바이스에서 직접 테스트를 하는 것이 중요하지만, 팀 규모가 클 때는 각 작업자의 속도가 팀 전체 프로젝트 진행 속도를 추월하는 종종 경우가 생기기 때문에, 많은 인원이 최적화에 관심을 갖고 빠른 확인을 할 수 있는 이러한 옵션을 이용하면 좋다.
병목현상 지점을 확인했다면 본격적인 최적화 작업이 시작된다. 카트라이더: 드리프트는 정해진 경로로 주행하는 레이싱 게임 특성상 한 화면에 필요한 메쉬 수가 제한되고 컬링해야 할 요소가 적어서 게임 스레드 최적화에 집중했으며, 비교적 성능이 제한된 모바일 플랫폼을 위해 LOD(Level of Detail) 등 기술을 활용해 저사양 환경에서는 폴리곤을 50만으로 제한하는 등 프로젝트 특성과 디바이스에 맞춰 최적화 작업을 진행했다.
최적화 핵심 전략은 필요한 기능을 필요한 시간에만 처리하는 것이다. 이를 위해 화이트 리스트를 만들어 관리할 필요가 있다. 예를 들어 카트라이더: 드리프트에는 아이템전과 스피드전이 있다. 아이템전은 부스터를 포함해 모든 아이템이 포함된 모드이며, 스피드전은 아이템 중 부스터 밖에 사용하지 않는 모드다. 스피드전은 '스피드전 = 전체아이템 - 아이템전'이 되선 안되고 '스피드전 += 부스터'가 되어야 한다. 이처럼 컴포넌트 단위로 기능을 분리해 필요한 곳에만 객체를 생성해주는 방식으로 최적화를 이루게 된다.
이러한 방식은 서버 최적화에도 응용할 수 있다. 게임플레이에 실제 영향을 주지 않는 연출이나 장식 요소는 유저가 직접 그래픽을 보는 클라이언트에서는 실행되도, 서버에서는 굳이 실행될 필요가 없다. 서버는 오브젝트의 움직임을 감지할 수 있는 최소한의 그래픽, 메쉬의 충돌 데이터 등만 감지할 수 있으면 되며, 애초에 이러한 요소들을 포함하지 많으면 통해 CPU 리소스나 용량을 아낄 수 있다.
강길전 개발자는 관련하여 "특정한 기술을 사용하는 자체보다 개발하고 있는 프로젝트의 특성에 대한 이해와 그에 따른 맞춤 적용 방안이 중요하다."며 "팀 구성원 전체가 최적화에 관심을 가지고 자주 프로파일링하고 개발 중인 프로젝트 특성에 따른 이해와 그에 따른 맞춤 적용 방안이 중요하다."고 강조했다.
이 밖에도 강연에서는 풀 크로스 플레이 환경 구현 및 게임 최적화에 대한 다양한 기술적 설명을 들어볼 수 있었다. 게임 최적화에 관심이 있는 개발자라면 언리얼 서밋 온라인 2022 DAY 2 게임 '카트라이더: 드리프트 멀티 플랫폼을 위한 최적화 드라이브'에 주목하도록 하자. 강연은 언리얼 엔진 공식 유튜브에 업로드 될 예정이다.
안민균 기자 ahnmg@ruliweb.com |