편집자 알림: 2017년 앱스토어(App Store) 최고의 게임 중 하나, 어라이브드(ARrived)의 개발 비화에 대해 말씀해주신 루덴.io(Luden.io) 제작팀께 감사의 말씀 드립니다. AR 경험 제작에 대해 더 알아보려면, 여기로 가 보세요.
9월의 어느 날, 오전 6시, 샌프란시스코에서의 일입니다. 때는 iOS 11 런칭 마감에 맞출 수 있는 마지막 기회였습니다. 우리는 이 마감 시간을 반드시 지켜야 했고, 팀원들 전부는 지구 반대편에서 잠을 자고 있었으며, 제 컴퓨터 화면에는 "빌드 실패"라는 메시지가 떠 있었죠. 제가 이 상황을 어떻게 극복했냐고요? 지금부터 말씀드리죠.
계획대로 하자
우리는 AI와 그림 인식에 대해 실험하다가 VR로 신이 되어보는 게임을 만들어 보자고 결심하게 되었습니다. 루덴.io의 팀원들 모두가 블랙 앤 화이트(Black & White)를 정말 좋아하고 VR 내에서 손으로 직접 뭔가를 그리는 것도 좋아하며, 지구상에 있는 작은 인간들을 조종하는 것은 누구나 멋지다고 생각할만한 아이디어였으니까요. 하늘에 물방울을 그리면 실제로 비가 오기 시작한다니, 너무 멋지지 않나요?
설명할 시간 없어!
우리가 VR 분야에서 꽤 오랫동안 작업해 왔지만, 사실 AR에 더 흥미를 느끼고 있었습니다. 그리고 6월에 진행된 WWDC에서 애플(Apple)은 AR킷(ARKit)이 2017년 가을에 공개된다는 발표를 했고, 우리는 그 AR킷을 사용하기로 결정했죠. 단 5분 만에. 우리가 그 중요한 5분의 의사 결정 시간동안 뭐하고 있었냐고요? 언리얼 엔진이 AR킷을 지원하는지 알아봤죠.
한계에 부딪히다
VR에서 AR로 전환하는 과정에서 이미 상당한 시간을 소모했고 런칭까지 개발 기간이 딱 2개월 남은 상황이었기에, 우리는 게임의 장르를 바꾸지 않기로 했습니다. VR 작업 당시 개발한 신경망 등의 결과물 일부는 활용할 수 있었습니다(나중에서야 더욱 유용하게 활용할 수 있었지만요). 우리는 남은 기간과 역량을 고려하여 업데이트된 시퀀서를 사용하기로 결정하였으며, 플레이어의 방에서 살아가는 부족민들이 매주 다른 상호작용의 이야기를 보여주도록 만들어 내기로 목표했습니다. 우리는 부족민이 플레이어를 쳐다보고 카메라에 반응하기를 원했습니다.
물론 어려움도 많았습니다. 당시에는 AR에 어떤 게임 규칙이 잘 어울리는지 몰랐으며, AR 게임 세션이 5~10분을 넘어갈 경우 핸드폰 배터리가 이를 감당하기 힘들 것이라는 사실은 명확했습니다. 처음에 우리는 넓은 현실의 지형을 보여주는 것이 좋은 아이디어일 것이라고 생각했지만, 곧이어 AR 화면에서 보여지는 현실 세계는 적으면 적을수록 좋다는 사실을 깨달았습니다. 그래서 우리는 가장 좋아하는 비법을 사용했습니다. 바로 미리 제작된 언리얼 엔진 마켓플레이스 애셋으로 전체 씬을 만든 것이죠. 큰 그림을 보고 세부 작업을 할 수 있는 이런 접근법을 우리는 강력하게 추천합니다.
우리는 프로그래머 외에 블루프린트로 작업을 하는 2명의 3D 아티스트와 1명의 게임 디자이너가 있었습니다. 따라서 우리는 각 팀원 간 트랜지션 로직 및 시나리오 취합을 위한 시스템을 만들어서, 세 명의 팀원들이 공통의 시스템에서 최대한 간단하게 병렬 작업을 하고 씬을 삽입할 수 있도록 하였습니다. 3주간의 작업 후, 기본 스크립트가 구현되었으며 우리는 이런 아이디어와 마법과도 같은 신기술에 대한 찬사도 들어보고 전반적인 피드백을 모으기 위해 플레이 테스트를 해 보기로 결정했습니다.
게임 vs 현실
하지만 세번째 플레이어가 게임을 마치고 떠나자, 우리는 문제가 생겼다는 것을 깨달았습니다. 플레이어들은 다들 게임 속 불쌍한 소인들을 초당 5번씩 찔러대고 있었습니다. 플레이어들은 이 소인들이 플레이어에 반응하고, 일반적인 모바일 조작법으로 확대도 해보고 싶었던 것입니다. 우리의 멋진 스크립트와 스토리 트랜지션은 딱히 누구에게도 재미를 주지 못했습니다. 그때는 마감까지 딱 1개월 남은 시점이라 마치 벼락에 맞은 듯한 기분이었습니다.
촉박한 시간 속에서 우리가 할 수 있는 일은 없었으므로, 우리는 그 당시 인기 게임이었던 포켓 갓(Pocket God)을 기반으로, 우리의 게임을 상호작용형 샌드박스 게임으로 다시 제작했습니다. 좋은 소식은, 이제 기기의 라이트 감지 기능을 이용해 게임 속에서 일어나는 사건에 영향을 줄 수 있게 되었다는 것입니다. 방이 어두워지면 게임 속 부족민들도 자러 가고 씬에 반딧불이들을 풀어놓을 수 있었습니다. 이 소식을 트위터(Twitter)에 올리자, 다들 이같은 AR과 현실의 결합을 굉장히 좋아하면서 엄청난 반응을 보여주었습니다.
이렇게 게임 제작 과정에서 뒤늦게서야 그 시스템을 재고하면서 새로운 디자인 난관에 꽤 봉착하게 되었습니다. 우리는 애니메이션, 씬, 트랜지션 등 그 동안 제작했던 요소들을 최대한 보존하려고 노력했습니다. 이런 요소들이 유지되는 혼합형 게임을 만들어내기 위해, 우리는 게임의 중요한 순간들에 선택 버튼을 추가했습니다. 플레이어가 그 외의 관리를 위해서는 그저 소인들을 눌러주면 되는 것이었습니다.
더 많은 기술
이 게임에는 아직 매력적인 요소가 부족했습니다. 우리는 이 문제를 어떻게 해결해야 할 지는 알고 있었지만, 마감 시한이 촉박했기 때문에 실제로 실행하기가 다소 염려스러웠습니다. 하지만 우리는 용기를 내서, 어려움이 있더라도 현실 세계의 물체를 인식할 수 있는 능력을 게임 속에 추가하기로 결정했습니다. 가상 속의 부족민이 현실 세계의 강아지에게 반응한다면 얼마나 멋질지 한번 상상해 보세요. 혹은 부족민들이 뭔가를 먹고 싶을 때, 이들에게 바나나를 보여주면 게임 속에서 가상의 바나나를 받아먹는 것은 또 얼마나 멋질까요. 그래서 우리는 언리얼 엔진으로 자체 제작한 플러그인을 사용하여 애플 코어ML(Apple CoreML) 시스템을 게임 속에 구현했습니다.
Gamescom
이후 게임스컴(Gamescom) 2017로 가는 비행기를 타기 전에 최대한 빠르게 플레이 테스트를 진행했습니다. 그 결과 상호작용은 잘 작동했으며, 게임의 폴리싱 작업도 시작할 수 있었습니다. 오브젝트 인식의 놀라운 효과도 아주 부드럽게 작동했습니다. 이것은 플레이어에게 정말 새로운 경험이었습니다. 이제는 기자들에게 게임을 보여줘야만 했죠. 크래시가 나지 않기만을 기도하며. 다행스럽게도 모든 것이 부드럽게 진행되었으며, 심지어 VR포커스(VRFocus)의 친구들은 우리의 게임이 이미 안정화되었다고 믿기까지 했지만, 우리만은 전혀 그렇지 않음을 알고 있었죠.
그리고 게임스컴에서는 기자들과의 미팅 외에도, 처리해야 할 중요한 일이 한 가지 더 있었습니다. 바로 언리얼 엔진 팀과 이야기를 나누는 것이었죠. 애플은 iOS 11 릴리즈 직전에 그 포맷을 살짝 바꿨습니다. 이로 인해 기기 상에서는 게임을 테스트해 볼 수 있었지만 테스트플라이트(TestFlight)로는 로드할 수 없어서, 애플의 리뷰 프로세스를 거쳐야만 했습니다. 하지만 언리얼 엔진 팀과 이에 대해 이야기를 나누고 후속 작업을 마친 이후에 이 문제도 해결되었습니다.
PAX
게임이 나날이 개선되면서, PAX에서 시연을 할 때는 크게 긴장되지 않았습니다. 심지어 아이폰(iPhone)에서 사진을 확대하는 방식과 똑같은 방법으로 게임 오브젝트의 크기를 키우는 기능을 넣을 시간도 있었습니다. 사람들이 이런 기능을 찾아내서 게임 속 소인들을 PAX 시애틀 2017(PAX Seattle 2017)이 개최된 워싱턴 스테이트 컨벤선 센터(Washington State Convention Center)만큼이나 크게 키우는 것을 지켜보니 정말 재미있었습니다.
PAX가 끝나고 1주일 후, iOS 11의 런칭 날짜가 발표되었습니다. 즉 9월 15일까지 게임을 반드시 제출해야 한다는 뜻이었죠. 우리는 제 시간에 맞춰서 게임을 만들 수 있을 것 같다는 사실에 굉장히 초조해 있었으며, 심지어 인터페이스도 검토하면서 게임에서 플레이어가 취할 수 있는 행동들을 퀘스트의 형태로 화면 우상단에 넣어, 힌트를 제공하는 기능을 만들 시간도 있었습니다. 그러면 플레이어는 자신이 하고 싶은 대로 온갖 기묘한 행동들을 취하거나, “나무에 번개를 내리치세요”같은 재미있는 퀘스트를 수행할 수 있겠죠.
게다가 우리는 각 방의 조명이 매우 다양할 수 있다는 점을 깨달아서, 플레이어를 위한 퀄리티 트래킹 인디케이터를 추가하고 트래킹을 향상시킬 수 있는 방법을 추천하는 것 역시 중요해졌습니다. 이런 기능이 없다면 플레이어는 게임에 버그가 있다고 생각하게 될 것이며, 전체 3D 씬이 움직이지 말아야 할 곳으로 움직이는 이유가 될 것입니다.
출시
출시 당일, 우리는 모든 것이 완벽한 줄 알았습니다. 저는 샌프란시스코에 있었고, 모스크바와 키프로스에 있던 멤버들이 빌드를 제작했습니다. 이들은 지난 3달간의 격무로 인해 굉장히 지쳐있었기 때문에, 파이널 빌드를 제작한 다음 잠을 자러 갔습니다. 저는 해가 뜨는 것을 보고, 빌드를 아이튠즈(iTunes)로 로드하자마자 곧바로 거부를 당했습니다.
그 왜, 있잖아요? 러시아어 단어 중에는 문제를 해결할 수 있는 방법이 명확하지 않을 때, 그런 복잡한 문제를 해결하겠다는 의지를 표명하는 데 도움이 되는 아주 특별한 단어요. 저는 그런 단어들을 쓰면서 3시간 내로 필요한 빌드를 제작할 수 있도록 캐시를 깨끗이 비우고, 에디터를 리빌드했습니다. 그제서야 아이튠즈 커넥트(iTunes Connect)에서 승인이 나더군요. 아마 저희는 단 몇 시간 만을 남겨놓고 마감을 맞출 수 있었을 겁니다.
iOS 11 런치 후, 우리의 게임은 애플 앱 스토어의 메인 페이지에 떡하니 올라와 있더군요. 정말 엄청나게 기쁘고 황홀했죠! 2017년 말에는 애플즈 어워드 시상같은 깜짝 소식도 들려왔습니다. 물론 한참 후의 이야기지만요.
결론
그럼 앞서 보신 이야기를 통해 어떤 결론들을 도출해볼 수 있을까요?
- 플레이어가 더 편하게 플레이를 할 수 있도록 AR 트래킹의 퀄리티를 보여주고 AR 내에서의 트래킹 개선 방법을 설명해주는 것은 매우 중요합니다.
- 대부분의 플레이어는 AR 오브젝트가 상호작용이 가능할 것이라고 기대합니다.
- AR 내에서의 게임 세션은 대략 5~10분 정도로 짧아야 합니다. 기기를 오랫동안 들고 있는 것은 불편하며, 세션이 더 길어지면 배터리 용량도 버티기 힘들기 때문입니다.
- 거대한 씬을 만들기보다는, 가상이나 실제 오브젝트와의 상호작용을 기반으로 한 게임을 제작하는 편이 낫습니다.
- 오브젝트 인식이나 라이트 평가 같은 신기술은 플레이어를 끌어당기는 요소가 될 수 있습니다. 플레이어들은 재미와 새로운 기술이라면 무엇이든 좋아하니까요.
- 새로운 기술을 가지고 실험할 때에는 주의해야 합니다. 우리의 커스텀 인식 시스템이 기자의 고양이를 개로 인식하는 바람에, 중간 점수를 받은 적도 있었습니다.
- 마켓플레이스를 이용하면 프로젝트의 프로토타입을 굉장히 빠르게 제작할 수 있습니다. 이용해보세요.
- 플레이테스트를 해보세요. 빠르면 빠를수록 좋습니다. 플레이어들은 게임을 우리 개발자와는 다른 시각으로 인식하니까요.
- 엔진 팀과 소통을 하세요. 불가능한 일이 아니라면 그들은 도와주고 싶어 합니다.
- 여러분이 좋아하는 게임을 만드세요. 그렇지 않으면 출시 과정에서 부딪히는 장애물마다 그만둘 핑계가 될테니까요.
