2019년 5월 24일
Drifter Entertainment가 멋들어진 최적화를 통해 Oculus Quest에서 Robo Recall을 선보인 방법
시스템 요구 사양은 낮아졌지만 로보 리콜: 언플러그드는 오큘러스 리프트의 게임과 동일합니다. 적군의 수와 피직스, 공간 오디오가 본래 게임과 여전히 동일하다는 의미입니다. 드리프터 엔터테인먼트가 단 7명으로 6개월 안에 이를 해냈다는 점은 더욱더 놀랍습니다. 우리는 이런 결과를 어떻게 이뤄냈는지 알아보기 위해 스튜디오의 테크니컬 디렉터인 맷 통스(Matt Tonks)와 인터뷰했습니다. 이 인터뷰에서 드리프터 엔터테인먼트 개발팀은 이들이 극복해야 했던 어려움과 성능 향상에 매우 큰 도움이 되었던 최적화 방법, 오큘러스 퀘스트 개발팁에 대해 공유해 주셨습니다.

드리프터 엔터테인먼트가 오큘러스 퀘스트용 로보 리콜을 주도적으로 개발하게 된 배경에 대해 설명해 주실 수 있나요?
맷 통스(테크니컬 디렉터): 오큘러스 퀘스트는 오큘러스 리프트 스타일의 게임을 추구하기 때문에 로보 리콜이 오큘러스 퀘스트에 이식된다는 것은 환영할 만한 일이었죠. 로보 리콜은 에픽게임즈의 게임입니다. 생각하실 법한 대로, 에픽게임즈는 다른 팀에게 이식 작업을 맡기는 일에 조금 소극적이었어요. 다행히 드리프터는 수십 년간 언리얼 엔진을 사용하면서 에픽게임즈와 좋은 관계를 유지해 왔기 때문에 언리얼 엔진으로 오큘러스 퀘스트의 가능성을 선보일 수 있는 완벽한 파트너였습니다.
게임플레이 관점에서 오큘러스 퀘스트 버전의 로보 리콜은 에픽게임즈가 개발한 오큘러스 리프트 버전과 얼마나 유사한가요?
통스: 사실상 두 게임의 게임플레이가 동일하다고 말할 수 있어 뿌듯합니다. 처음 이 게임이 오큘러스 퀘스트로 이식된다는 소식을 들었을 때 사람들은 적군의 수, 피직스, 타격감 등 모든 면에서 부족한 결과물을 떠올렸을 것입니다. 하지만 그렇지 않습니다. 우리는 게임의 본래 감성(또는 득점 가능성)을 바꾸지 않으려고 최선을 다했습니다. 적군의 수도 동일하고, 무기도 동일하게 작동하며, 원작 게임의 멋진 피직스 기반 애니메이션 기능도 여전히 동일합니다. 처음에는 일관된 프레임 속도로 동할 수 있도록 이러한 요소를 줄여야 할지도 모른다고 걱정했습니다. 다행히도, 동일한 게임플레이에 집착한 덕분에 아무것도 줄일 필요가 없었죠.

로보 리콜은 상당히 성능 좋은 게이밍 PC가 요구되는 오큘러스 리프트로 개발되었는데요. 어떻게 성능이 부족한 모바일 프로세서를 사용하는 오큘러스 퀘스트에서 플레이할 수 있도록 하셨나요?
통스: 엄청나게 노력했다고 밖엔 할 수 없네요. 사용해야 할 기기의 정확한 능력을 미리 파악하는 게 확실히 도움이 됩니다. 대부분의 경우, 오큘러스 퀘스트에서 어떻게 동작할지 바로 알았기 때문에 어떤 부분을 제거하고 다시 생각하며 만들어야 할지를 알았죠. PC용 게임을 개발할 경우 레벨의 건물 구성이나 캐릭터의 조각 개수에 대해 크게 걱정할 필요가 없습니다. 그래서 초기에는 "이건 40개 컴포넌트로 되어 있지만, 3개로 같은 결과를 낼 수 있는" 경우가 많았습니다. 애셋을 옛날 방식으로 최적화하고 다양한 게임플레이 시스템의 불필요한 부분을 제거할 때와 비슷한 노력이었다고 생각합니다. 마지막으로 필요했던 퍼즐 조각은 엔진이 CPU와 GPU를 최대한 구석구석까지 활용하도록 하는 일이었죠.
슬로우 모션 탄환이나 던질 수 있는 무기 등 로보 리콜은 상당히 많은 피직스를 필요로 하는데요. 게임의 피직스를 구현하는 일은 어려우셨나요?
통스: 일단 CPU에 피직스 엔진을 조금 할당하고, 안드로이드에서 발생하는 수많은 사소한 버그들을 수정하고 나니 대부분은 "문제없이 동작"했습니다. 하지만 게임의 복잡한 피직스를 단순화해 피직스 부담을 약간 줄일 필요는 있었죠.

드리프터 엔터테인먼트에서는 기존 애셋을 활용하셨나요, 아니면 새로운 애셋을 만들어야 했나요?
통스: 비용을 절약하고 원래 게임 느낌을 그대로 살리기 위해 가능하면 애셋을 재사용했습니다. 움직이는 것들 대부분은 오큘러스 퀘스트 사양을 염두에 두고 엄청난 최적화를 거쳤지만, 스태틱 애셋은 대부분 유지했습니다.
드리프터 엔터테인먼트는 멀티뷰(Multiview) 덕분에 오큘러스 퀘스트의 GPU 성능을 최대한 활용할 수 있었다고 강조했는데요. 멀티뷰란 어떤 방식이고, 스튜디오가 이를 어떻게 활용했는지 자세히 설명해 주신다면요?
통스: 멀티뷰는 게임을 스테레오로 렌더링하는 데 드는 비용 중 일부를 상쇄하기 위해 고안된 기술입니다. 뎁스를 구현하기 위해 게임은 한쪽 눈마다 한 번씩, 총 두 번 표현됩니다. 따라서 각 프레임을 렌더링하는 데 보통 2배의 시간이 소요되죠. 멀티뷰는 한쪽 시야에서 사용한 렌더링을 다른 쪽 시야에서도 재사용하는 영리한 방법입니다. 멀티뷰를 활용한 덕분에 원본과 더욱 유사한 외관을 표현할 수 있었죠.
주어진 하드웨어 예산에서 그래픽을 선보이고 공간 오디오까지 통합하는 일이 어렵지는 않으셨나요?
통스: 저희도 처음에는 걱정했지만, 에픽게임즈의 수석 오디오 프로그래머인 애런 맥라렌(Aaron McLeran)과 그의 팀이 안드로이드용 포트나이트의 오디오 시스템을 최적화해 온 덕분에 큰 어려움은 없었습니다. UE4의 오디오 시스템은 정말 많이 발전해 왔죠.

최적화로 성능을 구현하는 데 가장 어려웠던 점은 무엇인가요?
통스: 끝까지 고생했던 부분은 아마 드로우콜과 셰이더 복잡도일 겁니다. 밥 로스(Bob Ross)가 게임의 각 프레임을 그리는데 작고 사랑스러운 나무의 위치를 하나하나 구체적으로 알려줘야 한다고 생각해 보세요. 그럼 아주 오랫동안 그 옆에 앉아서 "좋아요. 저기에 나무 한 그루를 그리고요. 저기에도 그리고, 저기에도 그려 주세요."라고 말해야 할 겁니다. 이 나무들은 GPU가 화면에 특정 사물을 구현하도록 하는 명령어와 유사합니다. 원래 로보 리콜의 경우 특정 프레임에서 약 1,000개의 드로우콜이 발생합니다. 동일한 프레임 속도에서 오큘러스 퀘스트는 그 중 4분의 1만 처리할 수 있습니다. 따라서 우리는 게임의 모든 레벨의 메시를 결합하거나, 눈에 보이지 않는 메시를 제거하거나, "불쌍한 밥"이 그림을 적게 그릴 수 있는 영리한 방법을 찾느라 많은 노력을 기울였습니다.
앞서 언급한 것처럼 셰이더 복잡도도 문제가 되었는데요. 성능 좋은 GPU에 맞춰 개발된 원작인 로보 리콜은 게임 내내 매우 코스트가 높은 셰이더를 사용합니다. 우리는 많은 시간을 들여 이를 트래킹했고, 복잡하지 않으면서도 유사한 비주얼 이펙트를 내는 저렴한 머티리얼로 교체했습니다.
가장 큰 성능 향상을 보인 최적화 방법은 무엇인가요?
통스: 가장 크게 영향을 준 것으로는 드리프터 엔터테인먼트의 아트 디렉터 겸 설립자인 케네스 스콧(Kenneth Scott)이 캐릭터와 총 메시를 플랫폼으로 가져온 작업을 꼽고 싶습니다. 케네스는 예산에 맞춰 멋진 시각화를 구현하는 게 낯설지 않은 사람인데 그 경험이 이번에도 빛을 보았죠.
정말 코스트가 높았던 신(Scene)은 FFR(Fixed Foveated Rendering, 픽스드 포비티드 렌더링)의 덕을 보았습니다. 우리는 각 장면에서 GPU 부하를 기반으로 FFR을 얼마나 적극적으로 사용할지 선택하는 동적 접근법을 사용했습니다.
또한 오큘러스 퀘스트가 하드웨어 오클루전을 지원하지 않기 때문에 GPU가 먼 거리의 오브젝트를 불러오지 않도록 하는 HLOD(계층형 레벨 오브 디테일) 시스템을 조정함으로써 가시성을 사전에 계산하여 게임 전반적으로 메시 결합/인스턴스를 자유롭게 사용하도록 했습니다.

오큘러스 퀘스트로 이식하는 데 4개월밖에 걸리지 않은 게 사실인가요? 비교적 소규모 팀에서 이처럼 빠른 작업이 가능했던 비결은 무엇인가요?
통스: 팀 규모가 크다고 해서 항상 더 빠르지는 않습니다. 이 분야의 경험이 풍부한 베테랑에게 이식은 아주 어려운 작업이 아닙니다. 일반적으로 이식에는 반복작업 또는 창의적인 사고력이 많이 필요하지는 않죠.
이식하는 데는 총 6개월 이상의 시간이 걸렸습니다. 게임을 충분히 플레이할 수 있었던 건 약 4개월 만이었고요. 나머지 시간은 오큘러스 퀘스트의 디스플레이 새로 고침 속도에 맞춰 게임이 초당 72프레임에 맞춰 실행되는 데 문제가 발생하지 않게 성능을 조정했습니다.
오큘러스 퀘스트의 초기 개발자 중 한 명으로서 새로 알게 된 점이 있으신가요?
통스: 출시 전에는 회의적인 시각이 많았지만 이제 오큘러스 퀘스트가 제대로 된 게임 기기라는 사실이 분명해졌습니다. 케이블이나 설치, 추가 하드웨어 없이도 400달러 패키지의 하드웨어가 탁월한 VR 경험을 줄 수 있는 우수한 트래킹을 선보인다는 것은 정말 놀라운 일입니다.
사실, 괜찮은 VR 경험을 제공하는 모바일 GPU나 VR 플랫폼을 경험해 봤지만 실제로는 부족한 점이 많았습니다. 대개 기기가 제한 없이 완전히 기울어진 상태로 실행되도록 설계되지 않았기 때문이죠. 예를 들어 전화기가 과열되거나 다운클락되면 VR의 재미는 거기서 끝이 납니다. 오큘러스 퀘스트의 경우 100%의 성능으로 몇 시간이나 플레이를 해 봤지만, 결코 과열되거나 경험이 저하되는 일이 없었습니다.

오큘러스 퀘스트로 게임을 개발하거나 이식하려는 개발자들에게 조언해 주실 수 있으신가요?
통스:
- 오큘러스 퀘스트는 코드나 방향 제한이 없고 트래킹도 우수합니다. 이를 활용해 보세요!
- 자신을 격려하고 250개의 드로우콜부터 생각해 보세요. 여러분이 만들고자 하는 모습을 전달하고 유지하는 방법을 생각하는 것부터 시작해 보시면 좋을 것 같습니다.
- 로보 리콜을 위한 지원은 부족하지만 불칸(Vulkan)을 주목해 주세요. 이제 막 등장했지만 이를 활용하면 더 많은 신을 구현할 수 있습니다.
- 불필요한 시간을 낭비하지 마세요. UE4는 필요한 모든 툴을 제공합니다. 시간을 들여 UE4 사용 방법을 배워 두면 좋습니다.
다시 한 번 이렇게 시간을 내주셔서 감사합니다. 드리프터 엔터테인먼트와 게임에 대한 자세한 정보를 확인할 만한 곳이 있을까요?
통스: 물론이죠! www.driftervr.com에서 현재 상황을 가장 잘 알 수 있습니다.
로보 리콜: 언플러그드에 대한 더 자세한 정보는 www.driftervr.com/roborecall를 방문해 주세요. 기존에 공개한 VR 게임인 건하트(Gunheart)에 대한 내용도 확인해 보세요!