퀘스트 시스템 설계 (3)
지난 퀘스트 시스템 설계 (1)과 퀘스트 시스템 설계 (2)에서 디아블로 이모탈의 현상금 사냥 퀘스트 중 하나를 기준으로 MMO 게임의 퀘스트가 대략 어떻게 구성되는지 알아봤습니다. 사실 웬만큼 복잡한 퀘스트도 이 기반에 더 다양한 퀘스트 목표를 수행할 수 있도록 확장하고 퀘스트를 수행하는 장소 역시 퍼시스턴트 월드, 인스턴스 던전으로 확장하면 어지간한 게임에서 수행하는 퀘스트를 대부분 커버할 수 있습니다. 그래서 이번에는 주요 퀘스트 목표와 각 목표 별로 필요한 값들을 설명하겠습니다.
몬스터 처치1 ( 목표볼륨, 몬스터 종류 … , 총 수량 )
몬스터 처치2 ( 목표볼륨, (몬스터 종류, 수량), … )
몬스터를 처치하는 목표는 대략 두 가지 표현 방법이 있습니다. 위 ‘몬스터 처치1'은 한 스텝에서 여러 종류 몬스터를 처치할 수 있는데 여러 종류에 속한 아무 몬스터를 처치해도 처치 수량이 증가하는 타입입니다. 레벨디자인 상 한 장소에 몬스터 여러 종류가 있고 이들 중 아무 몬스터나 처치해도 되는 퀘스트라면 이렇게 표현합니다. ‘몬스터 처치2’는 몬스터 종류 별로 수량을 정확히 나열하는 형식입니다. 한 스텝에 목표가 여러 개인 퀘스트에 대한 의견에서 한 스텝에 여러 목표를 나열하는데 대해 부정적이었다고 실제로 해보고 나서 긍정적으로 의견을 바꿨다는 이야기를 한 적이 있는데 이렇게 표현하면 퀘스트가이드의 한 스텝에 몬스터 종류 별 수량을 여러 목표로 표시하게 됩니다. 구현에 따라 이들을 몬스터 순서에 따라 진행할 수도 있고 한 스텝에 처치해야 하는 몬스터 모두를 검색해 가까운 대상부터 목표 순서에 관계 없이 처치하도록 할 수도 있습니다.
이동 ( 레벨, 볼륨이름 )
존 방식 게임에서 캐릭터를 목표까지 이동시키는데는 두 가지 정보가 필요합니다. 실제로 캐릭터가 이동할 정확한 장소를 나타내는 볼륨과 이 볼륨이 위치한 레벨입니다. 만약 게임 전체에 모든 볼륨 이름이 중복되지 않는다면 레벨을 함께 넣을 필요가 없습니다. 실제로 볼륨 이름에 레벨을 언급해 알아보기 쉽게 만드는 규칙을 사용하기도 하고요. 하지만 게임 상에는 온갖 목적을 위한 볼륨이 엄청나게 많이 쳐져 있고 이들을 좀 더 빨리 찾기 위해 레벨을 언급하게 했습니다. 가령 자베인 산의 달혈족 야영지를 가리키려면 레벨에는 ‘자베인 산’, 볼륨이름에는 ‘달혈족 야영지’를 넣으면 됩니다. 캐릭터는 먼저 현재 위치가 ‘레벨’과 같은 곳인지 확인해 같은 곳이면 바로 ‘볼륨이름’을 향해 이동하고 다른 레벨이면 ‘레벨’을 향해 순간이동을 시도하게 됩니다.
단일 오브젝트 인터랙션 ( 레벨, 오브젝트 인스턴스 이름 )
여러 오브젝트 인터랙션 ( 레벨, 오브젝트 템플릿 이름 … , 횟수 )
오브젝트 인터랙션은 악마 투석기는 무슨 기능으로 만들어야 하나요?에서 이야기한 목표를 달성하는데 사용합니다. 이 목표도 몬스터 처치와 비슷하게 두 가지 타입으로 구분하는데 단일 오브젝트에 인터랙션 하는 경우와 여러 오브젝트에 인터랙션 하는 경우입니다. 단일 오브젝트는 월드에 배치된 인터랙션 오브젝트 중 정확한 대상과 인터랙션 해야 하는 경우에 사용합니다. 세계에 정확한 마법진 하나가 있고 이 마법진과 인터랙션 해야 하는 목표를 만들어야 한다면 월드에 배치된 마법진의 정확한 인스턴스 이름을 지정합니다. 만약 겉으로는 같아 보이는 마법진이 월드에 여러 개 있더라도 인스턴스 이름이 모두 다르므로 정확한 대상을 지정할 수 있습니다. 항상 대상은 하나 뿐이므로 횟수를 지정할 필요가 없습니다.
세계에 있는 여러 마법진에 인터랙션 하는 목표를 만들려면 ‘여러 오브젝트 인터랙션’을 사용합니다. 같은 마법진이라도 세계 곳곳에 배치되어 있을 겁니다. 이들 모두는 인스턴스 이름이 서로 다르지만 템플릿 이름은 모두 동일합니다. 그래서 템플릿 이름을 기준으로 목표를 만들면 세계에 있는 여러 마법진 중 하나 이상에 인터랙션 하는 목표를 만들 수 있습니다. 정확한 대상을 특정할 수 없으므로 둘 이상의 목표를 지정할 때 횟수를 함께 지정해야 합니다.
자. ‘몬스터 처치’, ‘이동’, ‘오브젝트 인터랙션’의 세 가지가 가장 기본적인 퀘스트 목표입니다. 어지간한 퀘스트 목표는 이 세 가지를 기반으로 파생된 것들입니다. 퀘스트 시스템 설계 (1)과 퀘스트 시스템 설계 (2), 그리고 이번까지 세 번에 걸쳐 퀘스트 시스템의 구성을 알아봤습니다.