※ 이 글은 CodeIQ 매거진의 기사를 번역한 것입니다. 이 글의 저작권은 CodeIQ에 있으며, 사정에 따라 예고없이 삭제될 수 있습니다. (원문)

Cygames가 「그랑블루 판타지」를 네이티브가 아닌 브라우저 베이스로 개발한 이유

「그랑블루하고 있어?」라는 CM으로 친숙한 「그랑블루 판타지」는 Cygames가 개발하고 Mobage가 제공하는 스마트폰용 소셜 게임. 그 그랑블루 판타지의 무대 뒷편을 캰치와 마스이 유이치로 씨가 직격 인터뷰!
by 바바 미유키 (CodeIQ 안의 사람)

하나의 게임 타이틀에 관여하는 사람은 약 100명!

캰치:오늘은「그랑블루 판타지」를 개발한 Cygames에 마스이 씨와 함께 취재하러 왔습니다!

요즘 화제의 「그랑블루」가 어떻게 개발되고 있는지, 개발에 깊이 관여하고 있는 두분께 이야기를 들을 수 있게 되어 두근두근합니다.


▲캰 치아키 일명 캰치 씨, 주식회사 트레타 CTO 마스이 유이치로 씨

이번에 이야기를 들려주실 분은 CTO인 아시하라 에이토시 씨, 「그랑블루 판타지」 개발팀의 엔지니어 리더 타카하시 미츠루 씨입니다.

캰치:먼저 두분의 자기소개부터 부탁드릴 수 있을까요?

아시하라:이사 CTO 아시하라입니다. 개발부문, 연구부문이나 인프라 등의 기술분야 전반을 총괄하고 있습니다. 입사 전에는 대학 졸업 후 취업한 이후로 계속 컨슈머 게임 업계에서 엔지니어를 해왔고, 전 직장에서는 당사의 대표와 상무와 같은 팀에서 개발을 했습니다.


▲주식회사 Cygames의 이사 CTO, 아시하라 에이토시 씨

다른 회사에서도 엔지니어의 통괄역을 맡은 적이 있습니다만, Cygames만큼 조직의 규모가 급격하게 커진 적은 없습니다. 현재는 스탭 수가 1200명을 넘어, 엔지니어만 해도 300명 이상이 재적하고 있습니다.

타카하시:「그랑블루 판타지」의 엔지니어 팀 리더를 맡고 있는 타카하시 미츠루입니다. 그랑블루는 개발초기부터 관여했고, 당시에는 개발도 했습니다만 현재는 팀의 관리업무가 메인입니다.


▲주식회사 Cygames 게임 엔지니어/서버 사이드 타카하시 미츠루 씨

마스이:Cygames 사에서는 다수의 타이틀을 개발하고 있다고 들었는데요, 한 타이틀 당 개발 인원은 어느 정도인가요?

아시하라:한 타이틀 당 엔지니어의 수는 개발 초기에 아직 멤버가 적을 때에는 3~4명, 그 후로 릴리즈, 운용을 거치면서 사람 수가 늘어나서 많은 팀은 40명 정도가 되기도 합니다.

타카하시:엔지니어 이외의 기획자나 디자이너도 포함하면 한 타이틀 만으로 100명 정도의 스탭이 관여할 때도 있습니다.

캰치:한 타이틀에 100명! 엄청난 수의 스탭분들이 관여하시는 거군요.

마스이:그만큼 살림이 커지면 정보공유도 큰일이겠네요.

아시하라:그러게요. 기술이나 노하우의 공유를 위해 여러가지 궁리를 하고 있습니다. 예를 들자면, 매일 각 타이틀의 엔지니어 리더가 모여서 미팅을 실시하고, 거기서 일어난 문제나 그 해결책을 공유·상담하고 있습니다. 「그랑블루」는 독자적인 게임 엔진을 사용하기에 조금 경우가 다릅니다만, 우리 회사의 타이틀은 「신격의 바하무트」를 베이스로 하여 개발한 타이틀이 많기에, 하나의 타이틀에서 일어난 문제는 다른 타이틀에서도 일어날 가능성이 있습니다.

그렇기 때문에, 횡적인 연대를 강화하여 정보를 공유하는 것이 중요합니다. 그 외에도, 한달에 한번 엔지니어 직군의 멤버 전원이 모이는 「엔지니어 전체 미팅」을 실시하여 회사의 기술적인 방침이나 생각을 전달함과 동시에 친목을 다짐으로써, 타이틀의 벽을 넘어 엔지니어 사이의 유대를 강화하고 있습니다.

마스이:같은 시스템에서 유래했으니 팀 간의 정보공유가 중요하겠네요. 그리고 그런 장소가 준비되어 있다는 건 좋은 일이죠. 그런데, 왜 「그랑블루」만 독자적인 게임 엔진을 사용했나요?

타카하시:「그랑블루」도 「신격의 바하무트」와 마찬가지로 브라우저 베이스로 개발했습니다만, 여러가지 새로운 도전을 하고 있는 타이틀이므로, 엔진에 관해서는 「그랑블루」전용의 사양이 되었습니다.

브라우저의 한계에 도전해보면 재미있지 않을까

마스이:스마트폰 게임의 네이티브화라는 흐름 속에서, 「그랑블루」를 브라우저 베이스로 개발한 것은 어째서인가요?

아시하라:처음에는 단순히 「"브라우저의 한계"에 도전해보면 재미있지 않을까」하는 생각에서 시작했습니다. 네이티브에 존재하는 제한을 받지 않고, 브라우저만의 강점을 살려, 보다 여러 방향에 도전해보고 싶다는 의도도 있었습니다. 실제로 개발해본 결과, 브라우저만의 메리트를 살린 게임이 되었다고 생각하고 있습니다.

캰치:브라우저만의 메리트라면 어떤 점인가요?

타카하시:우선, 브라우저 베이스의 게임은 「어디서나 누구나 즐길 수 있다」는 점에서, 유저의 폭을 넓힐 수 있다는 메리트가 있습니다. 네이티브에서는 앱을 인스톨해야만 플레이할 수 있습니다만, 브라우저 베이스라면 그럴 필요없이 누구나 즐길 수 있습니다.

처음에는 스마트폰의 브라우저에만 대응했습니다만, 지금은 PC에도 대응하고 있어 더욱 폭이 넓어졌습니다.

아시하라:그 외에도 네이티브에서는 데이터 용량을 신경써야만 합니다만, 브라우저는 서버만 있으면 돌아가므로 그런 걱정을 할 필요가 없습니다.

갱신할 때에도 서버의 데이터만 바꾸면 되고, 수정할 때마다 스토어에 신청하지 않아도 된다는 것도 이점이죠.

타카하시:극단적인 예를 들자면, 브라우저 게임이라면 릴리즈 10분 전까지 개발할 수도 있고, 개발시간을 오래 확보할 수 있는 만큼 퀄리티를 추구하는 것으로도 이어집니다.

「그랑블루 판타지」를 지탱하는 기술이란?

마스이:「그랑블루」는 어떤 언어와 툴을 사용해서 만들어졌나요?

타카하시:메인은 PHP와 Backbone.js이고, 배틀 부분은 Node.js를 사용했습니다. 스토리지 쪽은 memcached와 MySQL, 흔히 말하는 LAMP 환경이죠.

의외라고 생각하실지도 모릅니다만, 조금씩 튜닝했을 뿐 그렇게까지 특별한 일을 하지는 않았습니다.

다만, 역시 이 타이틀은 많은 유저 수로 인해 막대한 부하가 걸리는 서비스이므로, 그 규모가 바로 특수한 부분이라 말할 수 있을지도 모르겠습니다.

아시하라:Node.js는 채팅 등 서버에서 보내는 통지기능에 사용하고 있습니다. Web만이 아니라 Node.js도 동시에 사용하여, 하이브리드가 되어있다는 점이 하나의 특징이죠.

Node.js로 채팅 기능을 만들 때에는 Redis의 Pub/Sub를 사용하는 케이스가 일반적이라고 생각하는데요, 「그랑블루」에서는 그것만으로 다 감당하지 못해 Pub/Sub가 엄청나게 무거워졌습니다.

그래서 앞단에 Nginx를 넣어서 분담시키고, 뒷쪽의 Pub/Sub를 없앰으로써 서버 대수를 줄일 수 있었습니다. Pub/Sub로는 쫓아가지 못할 정도로 규모가 커진거지요.

그만큼 대규모의 시스템을 수습한 경험과, 그 경험을 통해 노하우 및 능력을 익힐 수 있는 환경이라는 건 꽤나 자극적이라고 생각합니다.

마스이:그정도로 큰 게임이 일반적인 Web 시스템으로 구성되어 있었군요. 모바일용 게임이라면 막대한 수의 단말에서 동작을 체크할 필요도 있지 않나요?

타카하시:그러게요. 테스트에서는 HTML5의 Canvas를 사용했습니다만, 단말에 의존하는지라 조금 쓰기가 힘들었죠.

참고로, 테스트 환경은 자동화하고 싶었습니다만, 개발환경을 따라가지 못해서 지금도 인력으로 하고 있습니다.

처음에는 Android 2.3 이상, iOS 4.1 이상으로 상당히 넓게 잡았습니다만, 모든 단말에서 움직이게 만드는데는 굉장히 고생을 많이 했습니다.

계속해서 인기 게임이 만들어지는 개발현장에는 무엇이 있나?

캰치:Cygames 사의 오피스 내에는 사운드 수록용의 스튜디오가 있어, 성우 분의 목소리 수록이나 이벤트 생중계 등을 한다고 합니다. 오늘은 특별히 스튜디오를 견학을 허가받았습니다.


▲사운드 수록 스튜디오를 견학했습니다.


▲게임의 목소리 수록도 완벽!

캰치:게임의 개발현장에서 중요하게 생각하는 것은 무엇인가요?

아시하라:Cygames의 비전이 「최고의 컨텐츠를 만드는 회사」이므로, 게임개발할 때 「보다 재미있게」하는 것을 무엇보다 중요하게 생각하고, 시행착오를 반복하는 것이죠.

게임은 한번 돌려보지 않으면 재미있는지 아닌지 알 수 없으므로, 우선 돌아갈 때까지 만들고, 「보다 재미있게 만들 수 있다」고 생각하면 다시 만드는 것을 반복하고 있습니다. 그렇게 해서 완성할 때까지 몇번이나 다시 만드는 것 자체가 "게임제작"이라고 생각합니다.

마스이:몇번이나 다시 만들면 현장의 의욕이 떨어지거나 하지 않나요?

타카하시:의욕이 내려가지는 않습니다. 돌려보고 나서야 그 게임의 재미를 처음 알 수 있고, 새로운 과제와 개선점을 찾을 수 있으므로, 어떤 의미에서는 다시 만드는 것이 당연하다고 생각합니다.

또, 「재미있게 만들자, 최고의 물건으로 만들자」는 명확한 비전을 팀 내에서 공유하고 있어, 설령 수고가 들거나 고생을 하게 되더라도 같은 방향을 향해 움직일 수 있습니다.

우리 팀도 전원이 「그랑블루를 더 좋게 만들자」는 강한 마음을 품고 전력으로 퀄리티를 추구하고 있죠.

아시하라:이 「계속해서 게임을 재미있게 만든다」는 것과 「수많은 유저 환경에서 안정화시킨다」는 것을 양립시키는 것은 힘든 일입니다만, 보다 많은 유저 분들께 즐겨주시기 위해서는 필요한 일이기도 합니다.

거대한 규모로 쌓아올린 치밀한 노력을 끊이지 않고 계속하는 것이 Cygames의 강점 중 하나라고 생각합니다.

밴드맨에 바 경영!? 여러 경력을 가진 엔지니어가 활약중

캰치:그렇게까지 정열을 가진 개발팀이라면, 역시 처음부터 게임을 좋아해서 업계에 들어온 분이 많겠네요?

타카하시:그러게요. 제 경우에는 물론 게임을 좋아하기도 했습니다만, 이전에는 Web 시스템 회사에서 아르바이트를 하면서 밴드에서 음악활동을 했습니다.

결국 음악의 길은 버리고 게임업계에 들어왔습니다. 실은 바를 경영한 적도 있습니다(웃음).

아시하라:우리 회사는 여러 배경을 가진 사람들이 있거든요. 타카하시 씨를 면접할 때 바 점장이라고 들었을 때는 확실히 놀랐지만요(웃음).

그 외에도 전 복서나, 휴일에는 반드시 캠핑하러 가는 사람이라던가…. 개성이 풍부한 사람이 많아서 같이 일하는 몸으로서 즐겁습니다.

타카하시:지금 말 나온 사람은 전부 우리 팀 멤버예요(웃음).

마스이:재미있는 사람이 많아보이네요(웃음).


▲기술서가 진열되어있는 책장. 오라일리 저팬 발행서적은 전권 구비되어 있다고!

월간 300억 PV의 「그랑블루」 개발팀이 원하는 인재란?

캰치:「그랑블루」의 개발현장에서는 어떤 분이 활약하고 있나요?

타카하시:브라우저 베이스의 소셜 게임은 Web앱이므로, 당연히 Web을 잘 아는가가 중요하죠. 또, 트래픽이 막대해지고 있으니 서버를 어떻게 처리하는가하는 노하우도 강하게 요구됩니다.

마스이:CM도 잔뜩 내보내고 있으니 상당히 거대한 트래픽이 몰리겠는데요?

아시하라:말씀하신 대로입니다. 매달 PV 수가 약 300억에 이르렀습니다. 예를 들자면, 국내에서 80%의 점유율을 갖고 있는 거대 포털 사이트의 스마트폰 버전이 약 200억PV/월이므로, 그것을 넘는 막대한 트래픽이 발생하고 있다는 것을 이해하실 수 있을 겁니다.

캰치:엄청난 숫자네요…! 그런 서비스를 운영하는 Cygames에서는 어떤 엔지니어를 필요로 하시나요?

아시하라:「커다란 시스템을 다루고 싶다」고 하시는 분은 꼭 Cygames에 흥미를 가져주시기 바랍니다. 이정도 규모의 게임개발은 다른 곳에서는 경험할 수 없을 거라 생각합니다.

또, Cygames는 「최고의 컨텐츠를 만드는 회사」를 비전으로 하여 내세우고 있으므로, 기술면에서만이 아닌 「보다 좋은 게임을 만들고 싶다」「모든 유저분들이 진심으로 즐겨주길 바란다」는 생각을 가진 분들과 꼭 함께 일하고 싶습니다.

타카하시:기술면에서는 서버의 부하에 관해서도 생각할 수 있는 사람이 활약하고 있습니다. 대규모 시스템의 부하대책과 관련되어 있던 분은 노하우를 살릴 수 있을 것이라 생각합니다.

마스이:대규모 서버나 데이터 등, Cygames에서밖에 도전할 수 없는 게임개발이 여러가지 있을 것 같군요.

캰치:오늘은 귀중한 이야기를 들을 수 있어서 즐거웠습니다. 감사합니다.

+ Recent posts