퀘스트 시스템 설계 (1)
자동 기능을 제공하는 현대 모바일 MMO 게임에서 퀘스트는 게임 플레이에 많은 부분을 지배합니다. 일상적인 전투는 자동전투를 돌려 놓고 조금 더 신경 써야 하는 전투는 스캔을 통해 타겟팅에 관여합니다. 여기에 퀘스트가이드 인터페이스를 터치해 조작하는 자동퀘스트를 포함하면 게임의 절반 정도를 차지한다고 생각합니다. 앞으로 몇 번에 걸쳐 자동 기능을 제공하는 퀘스트 시스템이 대략 어떻게 구성되는지 살펴보려고 합니다. 지난번 인터랙션 오브젝트나 보상 시스템처럼 모바일 게임에서 대략적인 동작은 합의한 상태라고 가정하고 바로 플레이 시나리오를 검토하고 요구사항을 정의하는 단계부터 시작하겠습니다. 가상의 게임을 가정하는 것도 좋지만 플레이 시나리오를 좀 더 편하게 검토하기 위해 디아블로 이모탈의 현상금 사냥 퀘스트 중 하나를 메인퀘스트로 진행한다고 가정하겠습니다.
현상금 사냥 퀘스트는 퀘스트 하나에 세부 목표가 하나에서 네 개 정도로 구성된 단순한 퀘스트입니다. 현상금 사냥 인터페이스를 살펴보면 퀘스트를 구성하는 정보는 크게 퀘스트 이름, 퀘스트를 수행할 장소, 첫 번째 목표, 그리고 보상으로 구성되어 있습니다. 현상금 사냥 게시판 기능으로 다른 퀘스트로 바꾸는 버튼과 현상금 사냥 퀘스트를 네 개 완료할 때마다 추가 보상을 얻게 되는데 여기서는 신경 쓰지 않겠습니다.
퀘스트를 시작하려면 먼저 ‘퀘스트를 수행할 장소’로 이동해야 합니다. 퀘스트를 시작한 다음이라도 어느 지역으로든 자유롭게 이동할 수 있으므로 퀘스트 목적지까지 이동하는 행동은 퀘스트 목표에 직접 포함하면 안될 것 같습니다. 가령 퀘스트의 첫 번째 목표를 ‘자베인 산 이동’으로 만들면 자베인 산에 이동해 다음 목표로 넘어간 상태에서 다른 지역으로 이동하면 캐릭터가 위치한 지역에서는 수행할 수 없는 목표를 가리키게 될 수 있기 때문입니다.
자베인 산 레벨로 이동하면 퀘스트의 첫번째 목표가 나타납니다. 지금부터는 이 목표를 스텝이라고 부르겠습니다. 이 퀘스트는 스텝 한 개로 구성된 단순한 퀘스트입니다. 이 스텝의 목표는 ‘달혈족 야영지의 카즈라 처치’이고 카즈라 50마리를 처치해야 합니다. 이 목표로 미루어 한 스텝의 목표는 목표와 이 목표를 수행할 횟수로 구분되는 것 같습니다. 분명 횟수가 구분되는 목표와 횟수를 구분할 필요가 없는 목표로 나뉠 겁니다. 이제 퀘스트가이드를 터치해 자동이동을 시작해 봅시다.
퀘스트를 수행할 장소는 지점과 반경으로 이루어져 있습니다. 달혈족 야영지는 넓은 지역에 걸쳐 있으므로 이 지역 전체를 포함하는 범위 안에서 전투를 해야 합니다. 그래서 스텝을 수행할 목적지는 한 지점과 반지름으로 구성되어 있습니다. 그런데 미니맵에 지역이 원형으로 나타난다고 해서 스텝 목표를 이렇게 표현할 필요는 없습니다. 개발 환경에서는 한 지점과 반지름 형태로 목적지를 배치한다 하더라도 퀘스트 데이터에서는 이 원형 볼륨의 이름을 가리키면 됩니다. 또 목적지의 특정 지점 (원의 중점) 까지 이동할 필요도 없습니다. 자동이동을 하다가 볼륨 안에 진입하면 그때부터는 목적지를 향한 자동이동을 중단하고 처치할 몬스터를 검색한 다음 이를 향해 이동하면 됩니다.
자. 이제 동작을 살펴봤으니 요구사항을 정의해 보겠습니다.
- 퀘스트는 퀘스트 이름, 수행장소, 첫 번째 목표, 보상으로 구성된다.
- 수행장소로 이동하는 스텝 목표는 스텝에 포함되지 않는다.
- 수행장소와 다른 레벨에 있을 대 퀘스트가이드를 터치하면 수행장소 레벨로 이동한다.
- 긱 스텝에는 목적지를 설정할 수 있는데 목적지는 지점과 반경 형태이다.
- 목적지에 진입하면 정확한 위치로 이동을 중단하고 주변에서 실제 대상을 찾아 이동한다.
- 목표 몬스터를 처치할 때마다 카운트를 올리고 모든 몬스터를 처치하면 퀘스트를 완료시킨다.
- 보상은 현상금 게시판에 돌아와 받는다.
스크롤이 좀 길어진 것 같으니 이번에는 여기까지만 알아보고 다음에는 이 요구사항을 포함하는 퀘스트와 스텝 구조를 만들어 보겠습니다.