[NDC2015] 모바일을 위한 MMORPG의 액션 - '듀랑고' 전투 시스템 개발 일지

게임뉴스 | 이명규 기자 | 댓글: 4개 |



모바일 플랫폼 안에서 구현하는 MMORPG의 전투는 과연 어떻게 이루어질까?

20일, 넥슨 판교 사옥에서 열린 NDC2015 2일차의 첫 강연은 넥슨 왓 스튜디오의 이광영 개발자가 맡았습니다. 그는 '야생의 땅: 듀랑고' 에서 기획자로 참여하고 있는데요. 그는 오늘 '모바일 게임에 밀도높은 MMO 전투를 허하라 : '야생의 땅: 듀랑고' 전투 시스템 개발 일지'라는 범상치않은 제목의 강연을 준비했습니다.

세간의 기대작인 만큼, 호기심도 동합니다. 모바일 MMORPG의 전투? 언뜻 평범할 것 같기도 하고 매우 특이할 것 같기도 합니다. 화려한 액션일까요? 아니면 단순한 클리커? 재미있는 것은, '듀랑고'는 굉장히 다양한 방식을 시험하고, 여러 길을 거치며 그 전투시스템을 완성해왔다는 점입니다.

이광영 개발자가 들려주는 '듀랑고'의 전투 시스템 구현 이야기, 가감없이 풀어보았습니다.



이광영 개발자




초창기의 전투 시스템 설계와 실패

듀랑고는 '현대인이 야생의 문명으로 공룡과 싸우는' 게임입니다. 이는 그만큼 전투에 개연성이 중요하다는 말이죠. 현대인이니 마법을 쓸 수 없고, 야생의 문명이니 총도 없고, 공룡을 상대로 하는 만큼 적이 훨씬 강합니다. 또 오픈월드 MMORPG이므로 그에 걸맞는 다중 플레이어들이 동기적으로 전투를 펼칠 수 있어야 하죠.




또 공룡마다 다르고, 생태계 시뮬레이션을 표방하는 만큼 전체 상호작용이 맞아야 하며, 화면이 작고 터치스크린을 활용하기에 정확한 조작이 어렵고, 모바일에서의 네트워크 지연 등 다양한 어려움이 있었습니다.

이런 환경 하에서 듀랑고의 개발 동안 전투 시스템을 완성해 나가는 과정을 보여드리려고 합니다.

처음 2D 도트그래픽의 거시플레이 프로토타입을 제작했을 때, 그래픽을 배제하고 기본적인 게임 플레이를 검증했습니다. 그 당시에는 상당히 좋은 반응을 받았어요. 또 사냥의 현실성을 살리고 재미 요소를 위해 인터페이스를 통한 부위 공격을 넣었습니다.








그리고 플레이 테스트를 진행했습니다. 플레이 시나리오 대로라면 은신과 부위공격이 잘 맞아 떨어져 전체가 유기적인 전투가 되어야 했어요. 두 그룹으로 나누어서 튜토리얼, 그리고 UI 구두로 옆에서 퀘스트를 제공하면서 플레이 했습니다. 결과는 어땠을까요?











네, 결과는 그리 좋지 않았습니다. UI부터 전투 세부내용까지 다양한 피드백을 받았는데요. 신기한 것은 각각의 반응이 대립 구도를 이루었다는 점입니다. UI에 대한 부분이나, 전투의 손맛, 조작감에 대한 이야기들이 서로 대립을 이루었죠.

어찌되었건 수정이 필요한 것은 자명했고, 어떻게 각각을 수정해나갈지 방법을 결정해야 했습니다.








그냥 디렉터에게 달려가 어떻게 할지 물어보는 것으로는 해결이 안됐습니다. 때문에 수정하거나 아예 파기할, 혹은 우선 후순위로 미뤄둘 것들을 정리했죠. 그러다 자동전투의 도입을 테스트 해보기로 했습니다. 아예 배제할 수 없는 부분인 만큼 미리 플레이 테스트를 자동 전투 부분에 대해서 진행하고자 했죠.

문제는 이런 부분을 수정하기 위해서 다른 개발팀원들에게 어떻게 고쳐나갈 것인지, 무엇을 추가할 것인지 이해시켜야 하는데, 쉽지 않았습니다. 그래서 직접 영상 제안서 만들었습니다. 기존의 플레이 영상에 후처리를 통해 제안 내용을 입혔죠. 이는 상당히 효과적이어서 금새 프로토타입이 완성되고 테스트를 진행했습니다.







사실 현상 유지 정도의 반응을 기대하긴 했지만, 역시 좋지 않았습니다. 자동전투가 들어간 전투는 너무 밋밋했어요. 그런데 초창기 거시플레이 프로토타입 때의 게이지 바가 그저 모션으로 바뀌었을 뿐인데, 왜 지루함을 유발하는지 궁금했습니다.

저는 이유를 비주얼라이즈의 차이라고 보았어요. 비주얼이 향상되면서 상상력이 개입할 여지가 줄고, 그 부분 만큼을 향상된 게임 플레이와 연출로 채웠어야 하는 겁니다. 결국 문제는 원점으로 돌아갔습니다. 다른 문제가 아니라 전투 시스템 그 자체의 재미를 만들어야 했죠.













액티브 액션과 지연시간의 벽을 돌파하는 법

여기서 나아간 것이 바로 스킬 추상화의 개념입니다. 쉽게 말하면, 플레이어의 숙련, 컨트롤 여부가 게임 플레이에 영향을 미치는 정도를 체크하는 것이죠. 스킬 추상화 정도가 높을 수록 작동이 단순해지고, 설명상으론 매우 복잡한 액션을 하나의 버튼만으로 간략하게 실행합니다.

반면 FPS 같은 게임은 직접 모든 조작을 통해 상대의 특정 부위를 공격해야 하죠. 이것은 그만큼 스킬 추상화 정도가 낮은 직관적인 부분이라고 할 수 있습니다. 결국 필요한 것은 액션이었습니다. 유저가 직접 개입하는 전투 말이죠.










하지만 여기서 또다른 문제가 있었습니다. '듀랑고'는 모바일 플랫폼의 게임이고, 평균적으로 네트워크 환경이 불안정하다는 점이죠. 프로그래머 분이 그러시더라구요. 평균 500ms 수준의 지연을 예상하라고.




결국 이런 조건에서도 유저가 스트레스 받지 않고 직접 조작한다고 느낄만한 액션 전투 시스템이 필요했습니다. 때문에 즉발성이 아닌 예약 시스템으로 선회했습니다. 보통의 게임들도 대부분 예약 시스템을 채용하고 있어요. 어느정도 생길 수 있는 지연시간을 커버하고 유저 플레이의 계획성을 부여하기 위해서죠.







그렇다면 '듀랑고'에서는 모바일에 맞추어 이 지연시간 예약을 크게 당기고, 훨씬더 많은 지연시간에 대처할 수 있게 하면 되는겁니다. 약간의 반응속도 차이는 있어도, 유저가 자신이 원치않는대로 움직이는 캐릭터를 보는 일은 줄어듭니다.







이를 응용해서 조건부 회피기 등도 생각할 수 있었습니다. 즉시 회피가 불가능하니, 미리 예측해서 회피를 켜두고, 그 지속시간 내에 공격이 들어오면 바로 피하는 방식입니다. 기존의 MMORPG에서도 많이 볼 수 있죠.

이쯤되니 어느정도 괜찮다는 생각이 듭니다. 이런 액션을 도입하면 게임에도 어울릴 것 같구요. 하지만 이런 액션은 대체로 모션 비용이 많이 듭니다. 또 제작 난이도도 있고, 때문에 개발팀에 이 필요성을 어필하는 것이 어려워집니다.










그래서 또 영상을 만들었습니다. 실제 전투플레이를 녹화한 뒤에, 거기에 후처리로 가상의 UI를 입혀서 이렇게 액션이 들어간 전투가 어떻게 이루어질지 직접 보여주는 것이죠. 그만큼 전달력이 좋았고, 효과적이었습니다.










그런데 또다른 문제가 생깁니다. 역시 지연시간 때문에 각각의 플레이어 간의 동기화가 문제였어요. 액티브 액션이 이루어지고 있지만, 다른 유저에게는 가만히 있는데 맞거나, 저 멀리 있는데 타격이 되는 동기화 문제가 발생했습니다. 때문에 유저가 직접 실시간으로 조정하기 보다는, 캐릭터의 행동을 미리 예약하고 명령을 내려 그에 맞춰 행동하도록 하는 방식으로 변경했습니다.

500ms 대의 반응속도에 맞는 액션을 위해 선택할 수 있는 방법은 두가지 였습니다. 하나는 클라이언트 예측이고, 하나는 서버사이드 전투였어요. 클라이언트의 움직임을 예측하는 것은 플레이어 당사자에게는 괜찮은 해결책이었지만, 여전히 다른 이들에게는 동기화가 안되어 이상하게 보이는게 문제였습니다.

그래서 서버사이드 전투로 가닥을 잡았습니다. 일단 플레이어와 몬스터가 서로 다른 노드에 있기 때문에 둘 사이에 콜로세움 서버를 두고, 모든 전투는 이 안에서 이루어지는 구조를 만들었습니다.







그렇게 되니 과거의 전투시스템 기획들이 무용지물이 되는 사태가 발생합니다. 유저가 직접 컨트롤 하기보다는 예약과 명령에 가깝게 되니, 특히 이동측면에서 자연스런 곡면 이동 등이 불가능해졌죠.







그래도 테스트 결과는 좋았습니다. 하지만 고질적인 문제가 발목을 잡았습니다. 직선 이동 등이 액션의 질을 떨어지게 하는거죠. 그래서 이쯤에서 딜교환을 새로이 시도합니다. 어쩔 수 없이 떨어지는 부분을 만회하기 위해 새로운 피처를 추가하는거죠. 단점을 장점으로 극복하는, 자동이기에 할 수 있는 부분을 넣는겁니다.







그렇게 '방침'이라는 요소가 만들어졌습니다. 유저가 캐릭터에게 명령을 내리는 일종의 기준이 되는거죠. 몇가지 조건을 설정하고, 그 조건에 따라 이렇게 이렇게 행동하도록 미리 정도를 정해놓는 겁니다.하지만 이 게이지가 직관적이지 못한 문제도 발생했어요. 때문에 이것을 프리셋의 형태로, 미리 정해진 몇가지 형태로 방침을 제공하는 것으로 가닥을 잡습니다.



기획을 효과적으로 전달하는 방법

이제 이것을 실제로 구현할 차례. 하지만 이것이 굉장히 오랫동안 이야기 되어온 부분이다보니, 개발팀 제각각이 가지고 있는 비전이 달랐어요. 때문에 이것을 통일하고 기획의도를 명확히 전달해야 했습니다. 그래서 몇가지 방법을 찾았는데, 이것이 알고보니 헐리우드 등에서 사용하는 하이콘셉트 기법과 유사하더군요.




이번에도 영상을 만들었습니다. 제가 그때 '쿠키런'을 하고 있었는데, 쿠키런의 플레이 영상을 찍고, 이것을 접목해서 '쿠키런이 자동 러닝점프 게임이 되었다. 정해진 인공지능대로 달려가며 점프를 하는 캐릭터에게, 몇가지 방침을 변경하면서 유동적으로 이 게임을 플레이 하는 모습을 보여준다'는 컨셉으로 영상을 만들었습니다.







반응은 굉장히 좋았습니다. 필요성과 방향성을 명확히 전달할 수 있었죠. 덕분에 프로토타이핑이 매우 빠르게 이루어졌습니다. 애니메이터님은 이걸 보고 바로 '주전자사우르스'와 싸우는 애니메틱을 제작해, 어떻게 이 시스템이 구현될지 모두에게 시각화를 통해 효과적으로 전달되었죠.










그렇게 해서 빠른 속도로 프로토타입이 만들어졌고, 테스트와 피드백이 진행되었습니다. 이것이 현재 듀랑고의 전투시스템을 만들게 된 과정이고, 또 왓 스튜디오의, 모두가 디자인에 참여하는 게임 개발 방식이기도 합니다. 때문에 공통의 비전을 만들어놓으면, 매우 빠르게 개발이 진행되었어요.

이런 개발 환경이 있었기에 가능했던 전투 시스템 제작이었던 것 같습니다. 강연에 참석해주셔서 감사합니다.













댓글

새로고침
새로고침

기사 목록

6 7 8