2019년 6월 12일
System Era Softworks가 UE4를 활용해 Astroneer만의 환상적인 세계를 구축한 비결
다른 하나는 게임 외의 분야로, 2015년 개봉되어 무수한 극찬을 받은 영화 마션(The Martian)입니다. 이 작품도 아스트로니어의 개발을 논할 때 빼놓을 수 없을 정도로 중요한 역할을 했습니다. 브로멜은 “이 영화 덕분에 이런 류의 경험에 목마른 사람이 단지 저희뿐만이 아니라는 사실을 알 수 있었죠.”라며 덧붙이길, “마션은 여러모로 '아이디어의 바이블'이었죠. 생존의 문제를 둘러싸고 느끼는 감정이라든가, 작은 부분을 이리저리 얼추 짜 맞추어서 더 큰 목표를 달성하는 일에 대해 많은 아이디어를 얻었으니까요. 마션 덕분에 열악하고 미개척 상태인 행성에서 생존한다는 게 어떤 건지 굉장히 직접적이고도 구체적인 예시를 볼 수 있었습니다. 저희가 아스트로니어를 통해 선사하고 싶은 샌드박스형 경험도 바로 그와 비슷합니다. 다만 행성이 훨씬 다양하고, 플레이어 본인의 관심사에 따라 그 경험도 천차만별이 되는 거죠.”
이러한 아이디어와 게임 디자인을 시험해 보기 위해, 시스템 에라 소프트웍스는 2016년 12월 16일에 아스트로니어를 얼리 액세스로 공개했습니다. 이들은 그 과정에서 더없이 귀중한 경험을 얻었습니다. 울퍼트는 “기술적인 부분에서 배운 점이 상당히 많습니다. 어떤 방식으로 시스템을 구축해야 오픈 월드 컨텍스트에서 잘 구현되고, 콘텐츠를 지속적으로 원활하게 전달해주는 파이프라인으로 기능할 수 있는지를 배울 수 있었습니다.”라고 회상했습니다. 또한 “멀티플레이어 게임을 개발할 때 추가로 수반되는 부담도 몸소 배우게 되었죠. 예를 들면 새로운 게임 플레이 기능을 더할 때마다 멀티플레이어를 염두에 두고 개발해야 하는데, 싱글 플레이어용으로 개발할 때보다 더 많은 시간과 노력이 들어갑니다.”라고 덧붙였습니다. 여기에 더해 울퍼트는 “얼리 액세스를 거치며 아스트로니어의 코드 베이스와 엔지니어링 가이드라인, 실전 사례에 대대적인 변화가 일어났죠.”라고 설명했습니다.
얼리 액세스라는 관문을 통과하지 못하고 사라지는 게임도 수없이 많습니다. 하지만 아스트로니어는 얼리 액세스를 단순히 통과하는 데에 그치지 않고, 여기서 얻은 교훈을 바탕으로 앞으로 게임을 어떻게 조정해나가면 좋을지 인사이트를 얻어냈습니다. “게임 핵심 시스템의 여러 부분에서 중요한 디자인 변화가 있었습니다. 시스템 깊이를 증진시킴으로써 게임의 1.0 버전에서 좀 더 몰입형 경험을 느낄 수 있게 되었을 뿐만 아니라, 향후 그 이상으로 발전할 여지도 확보한 거죠.”
시스템 에라 네트웍스에서 출시한 작품으로는 아스트로니어가 유일하지만, 얼리 액세스를 거친 덕분에 회사의 기반이 한층 더 탄탄해지는 계기가 되었다고 합니다. 울퍼트는 “시스템 에라라는 회사가 하나의 팀으로서 많은 것을 배웠고, 아스트로니어로 구축할 수 있는 것을 극대화할 수 있었습니다. 얼리 액세스 덕분에 저희 자신을 좀 더 잘 알게 되었고, 가장 효율적인 협력 방법이라든지, 목표 달성을 위해 스스로 재조정하는 방법 등을 익힐 수 있었죠.”라고 말했습니다.
플레이어들은 아스트로니어에서 우주시대를 누비는 여정을 떠나지만, 정해져 있는 줄거리를 강요하지는 않습니다. 오히려 나만의 고유한 내러티브를 만들어 나가게 됩니다. 브로멜은 “아스트로니어는 구상 단계에서부터 샌드박스형 경험을 목표로 만들어졌습니다. 저희가 플레이어에게 스토리를 얘기하기보다는, 플레이어가 스스로 구축해나가길 원했습니다.”라고 강조하며, “마션이 어느 한 사람만의 내러티브인 것과 달리, 아스트로니어는 플레이어의 경험을 따라 각양각색으로 펼쳐지는 무수히 다양한 스토리가 되길 원했습니다.”라고 덧붙였습니다. 이와 같이 몰입도 높은 스토리텔링이 샘솟는 게임을 만들기 위해서는 단순히 재미있는 샌드박스를 제작하는 것만으로는 부족했습니다. 여기에 더해 몰입감을 높일 수 있는 원동력을 부여해야만 했죠. 이 점에 대해 브로멜은 “게임 플레이 중 발견하는 요소나 스토리의 도전은 여러분의 샌드박스형 경험을 이끌어내는 데 도움이 됩니다. ”라고 설명합니다. 브로멜은 이런 방식의 결과를 되짚어 보며 다음과 같이 말했습니다. “플레이어가 쓴 글을 보면, 플레이어들이 직면할 수 있는 동일한 도전에도 불구하고 플레이어마다 발견하고 이겨내는 방식이 서로 다 다르다는 사실을 알 수 있었습니다. 개발 당시나 지금에나 변함없이 드는 생각을 말씀드리자면, 아마 잘 짜인 선형적인 이야기를 제시했더라면 이런 식의 경험을 이끌어내지는 못했을 겁니다.”
이처럼 플레이어마다 매 순간 유일무이한 경험을 할 수 있는 비결 중 하나는 바로 아스트로니어에 사용된 절차적 생성 월드입니다. 물론 절차적 생성 월드를 제대로 다루지 않으면 많은 어려움을 겪을 수 있는데, 아스트로니어 개발진이 혹독히 배웠던 것 중 하나이기도 합니다. 울퍼트는 “얼리 액세스 기간 동안 절차적 생성 기술 부분은 모조리 다시 작성해야 했습니다.”라며, “그렇기 때문에 2016년 12월에 첫 출시된 버전에서 플레이어가 탐험했던 세계는 아스트로니어 1.0의 세계와는 완전히 다른 방식으로 제작됐습니다. 기존에는 로드할 때 다양한 월드 생성 파라미터가 포함된 액터 간 계층구조를 스폰해서 전체 행성을 사전에 생성하는 방식이었습니다.”라고 부연했습니다. “행성의 어느 위치에 있든지 간에 터레인과 데코레이터를 해결하기 위해서는 액터 계층구조 전체가 필요했기 때문에 각 행성의 복잡도에 한계가 있을 수밖에 없었습니다 그렇다고 복잡도를 높이면 사전 생성 시의 부담이 너무 커지기 때문에, 결국 기존 버전에서는 행성의 밀도가 굉장히 낮을 수밖에 없습니다.”라고 설명을 덧붙였습니다.
절차적 생성 기술을 필요에 맞게끔 다시 작성한 결과, 울퍼트는 새로운 시스템이 “레이어 노이즈 기능을 활용하기 때문에 즉석에서 터레인을 생성하고 오브젝트를 배치하면서도 로드할 때 행성에 인접한 부분을 고려할 필요도, 무언가를 생성해낼 필요도 없다.”라고 설명했습니다. “여기에 레이어를 몇 개 추가함으로써 생물군계 및 케이브 레이어의 분리 작업을 수월하게 만들었습니다. 이 덕분에 행성 생성 과정을 원활해지는 동시에 시스템 퍼포먼스도 향상되었죠. 또한 UE4의 폴리지 시스템을 활용해 초목, 돌, 자원 등의 데코레이터를 전과 비교할 수 없을 정도로 많이 추가해서 풍성한 랜드스케이프를 만들어냈습니다. 그 결과 아스트로니어 1.0의 행성들은 행성의 코어까지도 뻗어있는 동굴과, 우거진 삼림, 돌무더기 넘치는 사막지대, 넓게 뻗은 초원 등을 갖추게 되었죠.”
이처럼 개발진이 다채로운 디자인 요소를 풍성하게 집어넣은 덕분에 플레이어는 아스트로니어에서 탐험을 하며 평온함마저 느낄 수 있습니다. 심지어 하드웨어 전문지인 Wccftech는 “아스트로니어는 마음이 편안해지는 훌륭한 생존게임이다.”라고 리뷰했습니다. 이런 부분은 뜻밖의 매력 포인트가 되었습니다. 브로멜은 “애초에 심신의 안정을 주거나 ‘편안한’ 게임을 만들 생각이 아니었습니다. 탐험과 발견이라는 요소가 가장 주된 경험이 되길 원했죠.”라며, “아스트로니어는 생존보다는 발견에 초점이 맞춰져 있습니다. 무언가를 발견하고, 그걸로 어떻게 하는지가 중요하죠. 만약 산소, 음식, 물, 수면 부족에 끊임없이 허덕이는 상황에 처해있다면 탐험의 순간은 그만큼 반감될 수밖에 없습니다. 그 대신 생존의 문제를 좀 더 이분법적으로 단순화한 덕분에 (산소가 없으면 즉사하는 식으로 말이죠) 탐험 요소에 더 집중할 수 있게 된 겁니다.” 게임매체인 쉑뉴스(Shacknews)에서 게재한 아스트로니어 리뷰에서도 “플레이어는 상태 바(status bars)에 신경 쓰느라 시간을 쏟을 필요 없이 대부분의 플레이타임을 재미난 요소에 투자할 수 있다.”라고 평한 것을 고려해 보면, 시스템 에라 소프트웍스의 게임 디자인은 옳은 결정이었음이 증명된 셈입니다.
친구들과 함께 온라인으로 탐험을 즐기면 발견의 재미는 그만큼 배가 되기 마련입니다. 하지만 개발진은 협동형 플레이를 접목하는 과정에서 또 한번의 난관에 봉착했습니다. “기술적인 측면에서 모든 것이 멀티플레이어에서도 잘 돌아가도록 조정하고 모니터링하는 작업 때문에 개발진이 고생했죠.” 울퍼트가 이어서 말했습니다. “앞서 말씀드렸다시피, 멀티플레이어 게임 개발 시 추가로 수반되는 부담과 더불어, 조정 및 모니터링 작업으로 인한 추가 업무에도 익숙해져야만 했습니다. 더욱이 저희 팀 전체가 훌륭한 멀티플레이어 네트워킹 프로그래머가 되는 방법을 익혀야만 했죠.” 결국 엔지니어링 팀은 문제 해결을 위해 접근 방식을 바꿔야 했습니다. 울퍼트는 “폭넓은 콘텐츠도 거뜬히 지원할 정도의 안정적인 네트워킹 시스템 구축 방법을 배워야 했습니다.”라고 설명했습니다. 다행히도 개발진의 노력은 보람찬 결실을 맺었습니다. 쉑뉴스는 “얼리 액세스 때와는 달리, 아스트로니어 1.0에서는 협동 플레이 시 연결에 전혀 문제가 없었다. 사람들은 게임에 아무런 문제없이 자유롭게 드나들 수 있었다.”고 평했을 정도입니다.
우주를 탐험하는 게임인 아스트로니어는 특유의 다채롭고 스타일라이즈드 그래픽으로 많은 칭찬을 받았습니다. 특히 게임 리뷰 사이트인 비디오첨즈(Video Chums)는 리뷰에서 “미니멀한 텍스처와 섬세한 애니메이션으로 가득한 형형색색의 세계가 정말 매력적이다.”라고 평했습니다. 하지만 사실 이런 스타일은 순전히 실용적인 차원에서 택한 방식이었습니다. 브로멜은 “게임 개발에 착수했을 당시 저희 팀은 고작 네 명뿐이었고, 그중 두 명이 아티스트였습니다. 아트를 기술적으로 구현하는 단계에서 매우 많은 시간이 소요될 테고, 그렇게 되면 아이디어 → 플레이 가능한 콘텐츠로 넘어가는 프로덕션 과정은 그만큼 늦어졌겠죠.”라며, 이어서 말했습니다. “당시에는 모델을 언래핑하고, 고해상도 버전의 모델을 제작하고, 해당 메시에 맞는 텍스처를 만드는 데에 너무 많은 시간이 소요되는 것 같아 부담스러웠습니다. 그보다는 차라리 뛰어난 콘텐츠를 빠른 시간 안에 만들어 내는 데에 집중해야만 했거든요. 그 즈음에 저는 개인적으로 진행하던 로우 폴리 아트 프로젝트를 막 끝낸 참이었는데, 생각 이상으로 빠르게 완성할 수 있었습니다. 주말 동안에 캐너벌트(Canabalt) 팬아트로 풀 인터랙티브 디오라마를 만들어 제출했을 정도였습니다. 그래서 ‘아스트로니어를 이런 스타일로 제작하면 어떨까’ 하는 생각을 하게 되었고, 실제로 해보니 순식간에 아트를 만들어낼 수 있었습니다. 제작 속도가 빠르다는 장점 때문에, 본격적으로 로우 폴리 스타일에 디테일을 더해서 ‘아스트로니어만의 스타일’로 만들게 되었습니다.”
이처럼 미니멀리스트스러운 비주얼에는 뜻밖의 이점도 많았습니다. 예컨대 메모리의 경우 퍼포먼스 최적화에 도움이 되었다며, 울퍼트는 “게임 콘텐츠 패키지에 포함시키나 런타임에 메모리로 로드해야 하는 텍스처가 거의 없었습니다.”라고 설명을 덧붙였습니다. 울퍼트는 여기에 더해 또 다른 이점을 소개합니다. “게임 내 플레이어가 만든 오브젝트 간에 공통되는 마스터 머티리얼로 재미난 것들을 할 수 있습니다. 해당 머티리얼은 다이내믹 이미시브 ‘라이트’를 지원하는데, 온/오프가 가능할 뿐만 아니라 심지어 색상 변경도 가능하며, 오브젝트에 임의의 부분에 역동적으로 바뀌는 아이콘을 표시할 수도 있습니다. 텍스처 아틀라스 주위로 UV를 옮김으로써 플레이어의 활동에 시각적으로 반응하는 오브젝트를 만들 수 있지만, 렌더에 필요한 드로 콜은 단 하나만 있으면 됩니다. 이 부분은 플레이어가 아스트로니어에서 보게 되는 다양한 컨트롤 패널에서 확인해보실 수 있습니다. 아이템이 들어있는 상자나, 착륙장의 착륙등 같은 데에서 보실 수 있죠.”
시스템 에라 소프트웍스가 기술적인 측면에서 큰 도움을 받은 또 다른 기능은 블루프린트였습니다. 울퍼트는 블루프린트가 “엔지니어의 도움을 받지 않고도 새로운 기능을 위한 개념 증명용 프로토타입을 만들 수 있게 해주는 강력한 툴”이라고 평했습니다. 개발진은 비주얼 스크립팅 시스템을 효율적으로 활용할 수 있는 워크플로를 구축했습니다. “엔지니어링 부분에서는 게임에 필수적인 기능, 네트워킹, 퍼포먼스를 위해 구현한 비교적 적은 수의 블루프린트 노드만으로 새로운 게임 오브젝트를 만들 수 있는 디자이너용 툴킷을 구축하는 과정에서 많은 노력을 했습니다.” 이를 위해 시스템 에라 소프트웍스는 UE4의 노드 기반 그래프 에디터로 게임의 절차적 터레인 생성 툴을 구현했습니다. 울퍼트는 여기에 설명을 덧붙였습니다. “행성을 생성하는 데 사용된 오브젝트 배치와 노이즈 기능은 언리얼 엔진에서 제공하는 노드 에디터 인터페이스를 기반으로 만든 커스텀 노드로 제작한 겁니다. 정말 대성공이었죠!”
언리얼 엔진 4의 중요한 기능 중 시스템 에라 소프트웍스가 여러모로 다양한 도움을 받은 건 바로 소스 코드 액세스였습니다. 심지어 울퍼트는 “소스 코드 액세스가 없었더라면 아스트로니어 출시는 불가능했을 겁니다.”라고 단언할 정도입니다. 그는 “초창기 개발팀은 최초의 게임 프로토타입을 유니티로 제작했지만, 이후 개발 초기에 접어들자 언리얼 엔진으로 전환했습니다. 주된 이유 중 하나는 바로 소스 코드 액세스였죠. 터레인 생성 시스템에 상당한 퍼포먼스가 요구되는 탓에, 준수한 수준의 프레임율로 게임이 돌아가게끔 메커니즘을 올바르게 구현하기 위해서는 네이티브 엔진 코드 접근이 가능해야만 했습니다.”라고 설명했습니다. 울퍼트는 이어서 소스 코드 액세스의 중요성을 재차 강조했습니다. “터레인 문제 외에도, 아스트로니어의 오픈 월드 속성 때문에 게임 오브젝트와 시스템 제작 방식을 다시 생각해야만 했습니다. 소스 코드 액세스 덕분에 언리얼 엔진에 기본적으로 제공되는 기능과 시스템의 활용폭이 넓어졌는데, 그렇지 않았더라면 상당한 어려움을 겪었을 겁니다. 이 점은 디버깅, 네트워킹 구현, 퍼포먼스 프로파일링에 굉장히 유용했습니다. 아까도 말씀드렸지만, 소스 코드 액세스가 없었더라면 게임 출시는 불가능했을 겁니다.”
어스트로니어의 1.0 버전이 배포된 이후 여러 리뷰 매체에서 칭찬을 아끼지 않았습니다. 그중 비디오첨즈에서는 “아스트로니어를 한 단어로 표현하자면 ‘유쾌함’이다. 아스트로니어 세계의 포근한 미적 요소와 편안한 게임 플레이가 어우러져 놀라울 정도로 흡입력 있는 우주 서바이벌 게임을 빚어내며, 여러분은 자기도 모르는 사이에 온갖 기계장치를 만들며 보람찬 시간을 보낼 것이다.”라고 평했습니다. 이처럼 아스트로니어의 공식 출시는 성공적이었지만, 시스템 에라 소프트웍스는 여기에 안주하지 않고 앞으로도 지속적인 업데이트와 개선을 해나갈 계획이라고 밝혔습니다. 더욱 자세한 정보를 알아보고 싶으시다면, https://astroneer.space/를 방문해주세요.
나만의 게임을 만들어보고 싶다면, 지금 언리얼 엔진 4를 무료로 다운로드하여 사용해 보세요.