Unity 검색

Subway Surfers 제작 과정: SYBO와의 Q&A

2022년 6월 16일 게임 | 11 분 소요
Subway Surfer characters superimposed on famous landmarks
Subway Surfer characters superimposed on famous landmarks
다루는 주제
공유

Is this article helpful for you?

Thank you for your feedback!

두 학생의 꿈이 어떻게 다운로드 30억 건 달성이라는 현실이 되었을까요? 10년 전 SYBO는 무한 러너 게임 장르의 대명사가 된 Subway Surfers를 릴리스했습니다. 릴리스 후 처음 3일 동안 다운로드 100만 건 돌파에 뒤이어 8개월 동안 다운로드 1억 건을 기록하며 SYBO는 초고속으로 흥행 가도를 질주했습니다. 역대 최고로 유명한 모바일 게임 중 하나를 만들어낸 셈입니다.

Subway Surfers의 제작 과정을 들어보고자 SYBO Games의 Mathias Gredal Nørvig CEO와 테크니컬 디렉터인 Murari Vasudevan과 함께하는 자리를 마련했습니다. 이 포스팅에서는 짧은 Q&A를 통해 게임을 개발하게 된 계기와 게임의 테마를 자세히 살펴보고 스케일링과 셀프 퍼블리싱, 게임을 다시 빌드하는 과정에 대한 인사이트를 제공합니다. 

 

Subway Surfers의 컨셉에는 어떤 스토리가 숨겨져 있나요?

Mathias Gredal Nørvig: 창립자인 Sylvester와 Bodie는 그라피티나 브레이크댄스, 거리 미술 등의 하위문화를 추구하던 이들로, 둘은 애니메이션 학교에서 만났습니다. 당시 Bodie는 스트리트 패션 의류를 판매하는 매장을 운영하고 있었고, Sylvester는 매장에서 판매되는 잡지에 실리는 그림을 그렸습니다. 15년 전에는 하위문화를 추구하는 집단의 규모가 작았던 상태라 서로 알고 지냈습니다. 어쩌다 졸업 프로젝트 'Trainbombing'을 함께 진행하게 되었는데, 한 어린 악동이 열차에 그라피티를 그린 후에 경비원에게서 도망치는 내용을 담고 있습니다. 이 프로젝트는 지금도 YouTube에서 보실 수 있습니다. 이때 만든 짧은 애니메이션 작품이 바로 게임의 시작이 되었습니다. 

둘의 목표는 SYBO의 로직을 따르는 러너 장르를 완벽히 구현하는 데 있었습니다. 수평선이 매끄럽게 비스듬히 이어지고, 방향이 급격히 전환되지 않으며 스와이프 동작으로 제어할 수 있어야 합니다. 긍정적이고 쾌활한 분위기를 위해 밝고 선명한 색상을 사용하고자 했습니다. 또한 다양성과 포용성을 고취하는 부분도 중요시했습니다. 따라서 크루가 어느 도시든 지하철을 찾아 편안하게 플레이할 수 있는 '월드 투어' 컨셉이 탄생했습니다.

Three Subway Surfer characters standing in a yellow background

이 컨셉은 몇 년에 걸쳐 어떻게 적용되었나요?

Mathias: 게임 출시 이후 Subway Surfers 크루는 수백 개의 캐릭터로 탄생했으며 거의 100개에 달하는 목적지를 여행했습니다. SYBO는 다양성에 총력을 기울이고 있으며, 누구나 Subway Surfer가 될 수 있습니다. 프라이드(Pride) 행사를 기념할 뿐만 아니라 #BeKind21 캠페인에서는 레이디 가가가 설립한 Born This Way Foundation과도 파트너십 관계를 맺고 있습니다. SYBO는 플랫폼을 통해 선한 영향력을 최대한 행사하려 노력하고 있으며, 이는 친환경적이고 사회적 영향을 주는 프로젝트의 영감이 되었습니다.

Subway Surfer character with a backpack in a forest

게임 스케일링 시 가장 큰 도전 과제는 무엇이었나요?

Mathias: 소규모 스튜디오가 플레이어 1억 명인 게임을 지원하는 건 매우 힘듭니다. 이렇게 엄청난 게임을 운영하는 신생 팀이 있다는 점은 가히 이해하기 어렵습니다. Unity와 마찬가지로 게임 업계가 발전함에 따라 SYBO도 함께 성장했으며, 파라미터를 비롯해 모든 것이 빠르게 바뀌었습니다. 

SYBO는 처음부터 게이머가 Subway Surfers를 플레이할 때 최고의 기분을 느끼도록 하는 데 목표를 뒀으며, 모든 의사 결정 단계에서 이를 염두에 두고 있습니다.

2020년 중반부터 모바일 플랫폼을 위한 퍼블리싱을 진행하고 있으며 지난 18개월 동안 셀프 퍼블리싱 방법을 빠르게 익히고 있습니다. 

지금까지 다방면으로 게임을 개선했지만 지속적으로 성장하고 최적화할 부분은 항상 남아있습니다. 셀프 퍼블리싱을 하는 초기에는 광고 플랫폼을 활용하지 않았습니다. SYBO 플레이어 기반의 10%로 시작했지만 이는 곧 1,000만 명의 플레이어를 의미한 데다가 이러한 플레이어들은 우리를 해커라고 생각했기 때문입니다.

 

기술 측면의 도전 과제는 어떤가요?

Murari Vasudevan: 기술 측면에서 iOS와 Android를 생각해 보면 기기 수가 엄청납니다. Android만 해도 고유 기기 수가 2만 대를 넘습니다. 퍼블리싱을 할 때는 타겟팅하는 모든 기기에서 게임이 원활하게 실행되도록 보장해야 했습니다. 

성능 예외와 크래시 관련 문제, 응답 없는 애플리케이션 관련 문제가 발생했는데, 각 문제가 동시에 발생하는 상황을 실시간으로 해결하면서 실시간으로 진단도 수행해야 했습니다. 플레이어가 흥미를 잃지 않도록 Unity Profiler를 기준으로 최적화하고 로딩 시간을 조정해야 했습니다. 원래 버전 대비 로딩 시간이 같거나 짧아지도록 개선해야 했습니다. 

최저 사양의 스마트폰에서도 게임플레이가 원활하게 이뤄지도록 여러 기술을 사용했습니다. 레벨 지오메트리를 배칭해 드로우 콜을 줄이고, GPU에서 실행되는 셰이더 대신 CPU에서 실행되는 C# 스크립트를 통해 코인을 회전시켜 드로우 콜을 추가로 최소화했습니다. 또한 UI 리드로우를 최소화하고, 레벨을 생성할 때 최적의 타이밍을 보장할 뿐만 아니라 사용자에게 표시되는 양보다 더 많은 콘텐츠를 생성하지 않도록 했습니다. Unity Profiler와 Frame Debugger를 사용하면 이 모든 기술이 효과가 있는지 쉽고 정확하게 모니터링할 수 있습니다. Unity의 다양한 품질 설정도 사용하여 저사양 기기에서 프레임 속도와 새로고침 속도를 최적화합니다.

진행 과정에서 효율성을 높일 수 있도록 부트스트래핑 퍼널(funnel)을 미세 조정하고 코드를 최적화하는 데 많은 시간을 들였습니다. 플레이어가 무엇을 하는지, 다양한 스테이지를 어떻게 거치는지, 어디서 이탈하는지 확인하기 위해 분석을 다수 수행해야 했습니다. 이는 많은 기기와 플레이어를 지원할 때 자연스레 따르는 일이자 개발 초기부터 지속적으로 해결해야 하는 도전 과제였습니다.

Subway Surfer character riding a dragon on train tracks

독특한 게임플레이 느낌을 유지하도록 게임을 리빌드하는 과정은 어땠나요?

Mathias: 꽤 흥미로웠습니다. SYBO는 코드베이스를 견고하게 만들고 최적화하고자 했습니다. 프로그래머들이 스파게티 코드라고 할 법한 부분에서는 최적화된 코드의 성능이 더 좋지 않았습니다. 복잡하고 길게 작성된 코드라 문제만 야기했습니다. 부분적으로는 로직이 완벽해 두 줄로 작성할 수 있을 것 같았지만, 그렇게 하는 과정에서 일부 요소를 누락했습니다. 여러 코드 라인을 추가해 매끄럽게 다시 다듬어야 했습니다. 

애니메이터들은 게임마다 고유한 느낌을 만들어주는 디자인 측면에서 유사한 문제를 겪었습니다. 보다 숙련된 애니메이터들이 더 나은 방식을 제안하기도 했지만, 결과는 이전 버전보다 반응이 좋지 않았습니다. 독보적인 러너 게임을 제작하는 SYBO의 최대 자산은 여전히 독특한 이미지와 조작, 부드러운 애니메이션입니다. 문제를 해결하는 과정에서 SYBO 팀의 가장 숙련된 구성원인 창립자들과 SYBO의 열성 팬들이 게임을 플레이하고 참여하면서 시시각각 피드백을 제공했습니다. 창립자의 한 사촌은 게임을 무수히 많이 플레이해 본 후 특정 고레벨에서 로직이 깨진다고 말했으며, 이러한 피드백은 큰 도움이 되었습니다.

Murari: 약간의 수정을 거치니 마침내 훨씬 더 효과적인 코드베이스를 갖춘 상태에서 이전과 같은 게임을 제공할 수 있었습니다. 재작성한 코드는 훨씬 더 깔끔했습니다. 이전 코드베이스와 달리 데이터 기반 패턴과 스크립터블 오브젝트는 물론, 시스템 간에 메시지를 전달하기 위한 이벤트를 사용했습니다. 이들은 상태 머신으로 한 상태에서 다른 상태로 이동할 때 시각적으로 설정할 수 있습니다. 

결국 재작성한 코드에서는 사라진 100개 정도의 다양한 if 구문들이 발견되었습니다. 예를 들어 캐릭터가 기차 위에 있는 상태에서 스와이프해도 기차에서 떨어지는 상태로 빠르게 전환되지 않았습니다. 내부에서 테스트를 진행한 결과, 기차에서 빠르게 내릴 수 없어 여러 번 죽는다는 사실을 알게 되었습니다. 0.001초 범위 내 차이로 이러한 문제가 발생했지만 실제로도 체감할 수 있었습니다.

Mathias: 청크 생성에서도 같은 일이 일어났습니다. 레벨 생성은 매력적이지만 결함이 있는 예전 논리를 따랐는데, 최적화를 수행했음에도 사람들은 원래 버전에 있던 요소가 없어졌다며 불만을 표했습니다. 가속도까지도 문제가 되었습니다. 플레이어들은 출발 속도와 가속도 관련 문제도 발견했으며 이는 두 속도가 각기 다른 두 가지 방식으로 생성되었기 때문에 발생한 일이었습니다. 새로운 버전에서 플레이어는 조금 빠르게 출발한 다음 동일한 비트에 도달했는데, 기존에 오래 게임을 플레이한 유저에게는 실망스러운 부분이었습니다. 2012 버전 디자인의 느낌을 유지하기 위해 게임의 모든 측면을 살펴보고 재구상해야 했습니다.

 

명작은 많이 수정하면 안됩니다. 10년의 역사와 다운로드 30억 건이라는 기록을 보면 Subway Surfers는 이미 인정받은 수작이라 생각합니다. 

더 자세히 알고 싶으신가요? Subway Surfers가 Unity와의 파트너십을 통해 역대 최고의 모바일 게임 반열에 오른 방법을 알아보려면 유니티의 새 활용 사례를 읽어보세요.

SYBO의 지속 가능성 노력과 자선 활동에 대해 자세히 알아보려면 유니티의 새 인터뷰 동영상을 시청하세요.

이 콘텐츠는 Targeting Cookies 카테고리를 수락해야만 동영상을 시청할 수 있도록 허용하는 타사 제공업체에서 호스팅합니다. 이러한 제공업체의 비디오를 보려면 쿠키 환경 설정에서 Targeting Cookies 카테고리를 수락하시기 바랍니다.

2022년 6월 16일 게임 | 11 분 소요

Is this article helpful for you?

Thank you for your feedback!

다루는 주제