포스트모템: 어플라이 엔터테인먼트의 <애니멀 레전드>
작성자: 로리 맥과이어(Rory McGuire) 작성일: 2013년 5월 6일
<애니멀 레전드(Animal Legends)> 1 는 캘리포니아 칼즈배드의 독립 개발회사 어플라이 엔터테인먼트(Appy Entertainment)의 신작 게임이다. 우리는 <트럭스 앤 스컬스 NITRO(Trucks & Skulls NITRO)>, <페이스파이터 얼티미트(FaceFighter Ultimate)>, <스펠크래프트: 스쿨 오브 매직(SpellCraft: School of Magic)>들을 개발한 회사다. 우리의 모토는 "멍청한 재미를 완전 진지하게"이다.
어플라이의 게임들은 2,200만 건 이상 다운로드되었고 모든 게임이 애플의 추천리스트에 올라갔다. <애니멀 레전드>에서 우리는 2011년작 <스펠크래프트>2를 발판으로 삼아 플레이어들이 모범적인 판타지의 영웅을 조종해 전리품과 영광을 얻으러 위험한 퀘스트를 수행하는 게임을 만들고자 했다. 이는 많은 사람들에게 어필하는 플레이의 전개가 빠르고 유머 있는 게임을 만든다는 어플라이의 유명한 목표에도 부합하는 것이었다.
우리는 <스펠크래프트>에서 비대칭 멀티플레이 모드를 추가했는데, 이 때 iOS용 멀티플레이 게임을 개발하는 것에 대해 많은 교훈을 얻었다. <애니멀 레전드>의 비대칭적 "영웅 빌려오기"는 자연스럽게 다음 단계가 되었다.
<애니멀 레전드>의 개발은 약 7개월이 걸렸다. 7명의 내부 개발자들과 원 걸, 원 랩탑 프로덕션(One Girl, One Laptop Production) 3 의 퀸 덩키(Quinn Dunki) 같은 몇몇 외부 개발자들이 개발에 참여했다. 우리는 2012년 11월 게임을 전세계에 출시했다. <애니멀 레전드>는 우리가 개발한 두 번째 무료 게임이다.
잘된 점
1. 프로토타입 단계에서의 폭넓은 구현
앱스토어에는 게임과 앱들이 믿을 수 없을 정도로 많은데, 그 소프트웨어 속에는 더 많은 앱을 만드는 데 도움이 될 있는 앱들이 숨어있다.
앱쿠커(AppCooker)4는 <애니멀 레전드>의 초기 실험에서 광범위하게 사용한 우리의 비밀무기이다. 앱쿠커는 아이패드 앱 중에서 비싼 편에 속하지만, 그럴만한 가치가 있는 아주 강력한 툴이다. 앱쿠커는 개발자들이 UI 스크린들 사이에 흐름을 만들 수 있는 아이패드 특유의 프로토타입 제작 플랫폼이다.
개발자는 아이패드나 드롭박스(Dropbox)에서 이미지들을 가져와 스크린에 추가하고, 변형하고 버튼으로 만든 다음, 다른 스크린들과 연결하기 시작한다. 다음 단계는 프로토타입을 “실행”해서 풀스크린 앱으로 목업(mock up) 해보는 것이다. 개발자가 자신이 만든 프로토타입에 만족하면, 앱쿠커는 이 스크린들을 다양한 포맷으로 옮길 수 있게 해준다. 여기서 가장 유용한 것은 앱테이스터(AppTaster) 5 라는 무료 앱인데, 이를 이용하면 앱쿠커에서 만든 버전들을 개발자가 원하는 누구에게든 보낼 수 있다.
우리는 약 이틀 만에 게임에 들어갈 모든 UI 스크린의 전체 프로토타입을 완성했고, 이것을 누군가에게 넘겨 그들이 막히거나 헤매게 되는지를 지켜보았다. 이건 다시 말해 프로그래머의 시간을 조금도 쓰지 않고 UI를 포커스 테스트할 수 있었다는 의미다. 앱을 웹페이지로 테스트하는 것과 목표 디바이스에서 적절한 해상도로 실행되는 프로토타입을 만드는 건 완전히 다른 게임이다.
<애니멀 레전드> 최종 버전은 초기 프로토타입과 아주 비슷하고, UI를 구현하는 데 필요한 시간을 많이 절약해 주었다. 누군가에게 UI 흐름을 보여주는 것과 설명해 주는 것 사이의 큰 차이는 설명하기 힘들다.
앞으로 우리는 iOS용 앱을 디자인할 때 항상 앱쿠커를 사용할 것이다.
왼쪽: 프로토타입, 오른쪽: 최종 버전
2. 온라인 요소들
지난 몇 달 동안 우리는 치솟는 서버 비용 때문에 앱의 판매를 포기해야 했던 소규모 스튜디오들이 있다는 이야기를 들었다. 이것은 우리에게도 조금 걱정이 되었는데, 왜냐하면 <애니멀 레전드>의 핵심 요소, 즉 친구들에게 주인공을 빌려오고 빌려줄 수 있다는 것은 소셜 네트워크와 깊이 상호작용해야하고, 설정에 항상 접속되어 있어야 한다는 의미였기 때문이다. 어떤 비용이 들어갈 것인지 대략적으로 산정해보기란 쉬운 일이었다. 우리의 주된 걱정거리는 서버에서의 병목 현상과, 전례 없는 접속 횟수로 경우의 수가 극적으로 증가할 때였다.
<애니멀 레전드>에서 플레이어들은 퀘스트를 수행하기 위해 다른 플레이어의 영웅들을 자유롭게 빌려올 수 있다. 빌려온 영웅이 퀘스트에 이용되면 그 영웅은 보상을 가지고 돌아온다. 이것은 플레이어들이 자신의 소셜 네트워크 계정을 등록해 페이스북이나 게임 센터 계정에 접속중인 다른 플레이어들을 찾아보고, 다른 플레이어와 그 플레이어의 영웅에 대한 데이터를 살펴본 다음, 그 영웅을 사용하고 그 플레이어에게 보상을 돌려주는 다양한 상호작용을 하게 된다는 것을 의미했다. 이것은 모바일 앱으로서는 많은 양의 데이터가 오고 가는 것이었다. 게다가 게임의 주요 회로에서 핵심적인 요소는 전투였는데, 전투는 3분에서 5분 사이에 결판이 나야 했다. 따라서 많은 양의 데이터를 미리 저장해야 했다.
개발할 때 깜짝 놀라기 가장 쉬운 방법은 수십만 명의 사람들에게 시스템을 넘겨서 1년치 작업량을 하루만에 해내게 해보는 것이다. 그 시스템이 상당한 비용을 요구하게 되면 놀라움은 치명적인 것이 될 수도 있다.
서버 유지에 비용이 얼마나 들어가게 될 것인지를 알아보기 위해 스페이스(Rackspace)를 사용해 시간당 약 10만 명의 플레이어가 동시 접속하는 시뮬레이션을 수행했다. 우리는 모바일 측정기준을 사용해 하루당 10만 명에서 약 100만 명의 동시 접속 플레이어를 안전하게 추정할 수 있었다. 여기에는 랙스페이스 사례가 약 12개 필요했고, 데이터 스토어와 대역폭 사용을 지원하기 위해 약 50개 건을 증가시켰다. 우리는 플레이어가 게임을 처음 시작할 때 데이터스토어의 접속 횟수가 가장 높기 때문에 신규 플레이어가 10만 명 늘어나는 것이 최악의 시나리오가 될 것이라는 것을 알게 되었다.
이 시뮬레이션을 수행하고 난 후 우리는 결과에 아주 만족했다. 우리의 서버가 발목을 잡을 수도 있었지만, 우리가 처리할 수 있는 수준이었다.
우리를 더 보호하기 위해 우리는 우리 서버의 최대 접속 횟수 중 하나인 플레이어들의 소셜 네트워크 데이터의 캐싱 주기를 원격으로 변경할 수 있게 했다. 플레이어들은 자신이 어떻게 활동하고 어떤 영웅들을 사용하는지를 약 한 시간마다 친구들에게 업데이트해 주었다. 이 변수를 원격으로 변경할 수 있게 한 것은 우리가 이것을 6시간 또는 심지어 24시간까지 바꿀 수 있다는 것을 의미했다. 이렇게 되면 소셜 네트워크의 업데이트는 느려지지만, 업데이트가 서버에 큰 부담이 될 때 게임을 멈추는 일 없이 변경할 수 있었다.
마침내 우리는 모든 온라인 서비스를 중단하는 커다란 빨간 버튼(Big Red Button)을 만들어 넣었고 온라인 서비스가 중단해도 게임의 핵심 회로들이 여전히 작동하는지를 확인했다. 영웅을 빌려주는 것이 서버에 큰 부담이 된다면, 우리는 스위치를 켜고 모든 것을 앱 수준에서 차분하게 멈출 수 있었다. 작업은 늘어났지만, 서버를 철수하고 많은 에러 메시지를 만드는 것보다, 또는 앱을 완전히 철수하고 수백만 건의 잠재적인 다운로드를 잃는다는 것보다 훨씬 나았다.
※ 자세한 내용은 첨부(PDF)화일을 참고하시기 바랍니다.
|