오늘, NDC2015 현장에서 또다른 '야생의 땅: 듀랑고' 강연이 열렸습니다. 지난해 한차례 관련 강연을 펼친 바 있던 양승명 개발자의 강연인데요. 이번에는 모바일 MMORPG에 맞는 시뮬레이션 샌드박스의 설계에 대한 이야기를 준비했습니다. 언뜻보면 잘 어울리지 않는 것 같은데요. 그럼에도 왠지 솔깃한 부분이기도 합니다.

전직 '마비노기 영웅전'의 서버 프로그래머였으나 이제는 '야생의 땅: 듀랑고'의 크리에이티브 디렉터인 양승명 개발자. 과연 어떤 재미있는 이야기를 들려줄까요? 그 강연을 가감없이 모두 담아보았습니다.

넥슨코리아 왓 스튜디오 양승명 크리에이티브 디렉터



샌드박스, 시뮬레이션, MMORPG

작년에도 '듀랑고'를 가지고 강연을 한 적이 있습니다. 그때 게임을 이루는 요소를 데이터, 소셜 프로세스, 랜덤 프로세스로 나누었는데요. 각각 이를 중심으로 하는 게임들이 있습니다. 데이터 중심이라고 하면 압도적인 그래픽과 컷신이 가득한 '콜오브듀티' 같은 게임이 될테고, 소셜 프로세스 중심은 MMORPG라는 장르 자체가 대표적이죠. 랜덤 프로세스 중심 게임들은 최근 상승세인 '캔디크러시사가' 같은 퍼즐 게임들이죠.


듀랑고는 모바일 MMORPG입니다. MMORPG는 생각보다 범위가 다양합니다. '클래시오브클랜'이나 '부족전쟁' 같은 게임들도 MMORPG로 볼 수 있죠. 하지만 유저 입장에서는 '월드오브워크래프트'나 '마비노기' 같은 게임이 더 MMORPG로 쉽게 받아들여집니다. 왜 그런가 하면, 나의 아바타가 가상현실에서 나의 대리인으로서 실제 활동하는, 그런 직접 와닿는 느낌이 매우 중요하기 때문입니다.


MMO 샌드박스로 가장 유명한 게임은 바로 'EVE 온라인'일 것입니다. 이 게임은 온라인 샌드박스를 가장 잘 구현했다고 생각합니다. 이 외의 MMORPG 게임들은 퀘스트와 스토리로 이어지는 선형적 구조를 가지고 있기 마련이죠.


저희는 '듀랑고'에서 'EVE 온라인'보다 진보한 샌드박스 MMORPG를 만들고자 했습니다. 어제 강연 이후 여러 반응이 있었습니다. 그중에서 '왜이리 시뮬레이션의 비중이 큰가, 이거 시뮬레이션 게임인가' 하는 반응이 많았어요. 그래서 이번에는, 왜 MMORPG에서 시뮬레이션을 강화하는지 설명하려 합니다.

유명한 시뮬레이션 게임 중에 '심즈'가 있습니다. 심즈는 다양한 AI 에이전트가 등장하고, 이 에이전트끼리나 유저와 함께 인간관계를 형성해 유저의 창발적 플레이를 유도하는 게임이죠. 역시 유명한 게임으로 '대항해시대' 시리즈가 있습니다. 단순히 항해만 하는 것이 아닌, 각 세력이 있고, 세력의 함대와 우호도와 적대 정도를 조절하며 복합적인 플레이가 가능하죠.


'문명' 시리즈 역시 빼놓을 수 없습니다. 다양한 세력이 제 나름의 성장기를 가지고, 경쟁과 협동을 통한 플레이 스토리를 만들어나가죠. 개인적으로 인생에서 가장 많은 시간을 투자한 게임이 '풋볼매니저'인데, 이 게임은 선수, 감독, 관계자 등 수만명의 인물이 등장하고, 리그, 팀 등 많은 요소와 함께 현실로부터 시작하는 역사를 스스로 만들어나갈 수 있습니다.

여기서 알 수 있는 시뮬레이션 게임이 갖는 큰 차별점은, 나만의 스토리를 가지고 있다는 것입니다. 기존의 MMORPG들은 대부분 같은 스토리를 따르죠. 하지만 시뮬레이션은 모두 제각각의 과정과 스토리를 가집니다. 이런 특징은 반복 플레이(Replay Value)에서 찾을 수 있죠.


이러한 특징을 바로 MMORPG에 대입하면 언뜻 쉽게 예상이 됩니다.
하지만 조금 달라요. MMORPG는 그 자체로 반복성이 좋지 않나 하고 생각하곤 하지만, 제가 '마비노기 영웅전'을 만들어본 경험으로는 콘텐츠가 부족하다면 그런 반복성은 금방 사라집니다.

그래서 결론은 이겁니다. 시뮬레이션 MMORPG라는 것을 만들 수 있을까요?



MMORPG에서의 사실적 시뮬레이션

시뮬레이션을 1대1로 대입하면, 가장 먼저 플레이어로 게임 내 존재하는 AI 에이전트를 대체하는 방법을 생각하게 됩니다. 이런 사례는 꽤 많이 있습니다. 그동안 온라인화 된 기존의 시뮬레이션 게임들이 대체로 그렇습니다. '심즈 온라인' 이나 '대항해시대 온라인'이 그 예죠. 하지만 이런 게임들에게서는 기존의 시뮬레이션 게임 같은 느낌이 잘 나지 않습니다. 왜일까요?


AI 에이전트는 궁극적으로 플레이어를 즐겁게 해주는데에 존재 목적이 있습니다. 그만큼 다른 플레이어는 그 위치를 완벽히 대체할 수가 없죠. 대체적으로 플레이어들이 AI 에이전트에 비해 훨씬 민감합니다.

그렇다면 그 이후의 방법은, AI 에이전트로 가득 찬 세계에 플레이어를 다시 가득 넣는 겁니다. 여기서 이러한 시뮬레이션 게임들의 AI를 살펴봅시다. 심시티의 경우 운전을 하고, 출퇴근하고, 일상 생활을 하는 기본적인 에이전트를 가지고 있죠. 심즈는 인간관계와 감정, 호불호 등 보다 세밀한 부분에 촛점을 맞추었습니다. GTA5 에 등장하는 AI 에이전트는 개별성은 없으나 플레이어의 여러 행동에 진짜 사람처럼 반응을 보여주죠.


그렇게 해서 이러한 각각의 AI 에이전트의 특징을 모두 합친다면, 최종적으로 요구되는 사항이 정말 어마어마할 겁니다. 우선 프로그래머부터 안된다고 할 것이고, 연산력과 서버 문제 등 현실적인 문제에 수도없이 부딫히게 되죠.

그리고 이때 생각했습니다. 이런 한계를 기술적인 방법으로 해결할 수 있지 않을까? 하는 겁니다. 그래서 나온 것이 이번 강연입니다.






소셜 샌드박스에 걸맞는 생태계 시뮬레이션의 예시



듀랑고는 기본적으로 소셜 샌드박스를 취하고 있습니다. 서로가 영토를 가지고 자신의 영향력을 행사하고, 각각의 맵은 절차생성을 통해 다양한 형태와 기능을 가집니다. 맵에 존재하는 동식물 등이 시뮬레이션을 거쳐 생태계를 구성하고, 제각각의 욕구에 따라 행동합니다. 산불이 나면 불이 퍼져나가 일대를 초토화 시키고, 이에 따라 동물의 서식 분포도 변화하는 등 실시간으로 시뮬레이션 됩니다.



개발 하면서 나오는 요구사항이 엄청 납니다. 8km x 8km의 필드에 식물이 수십만개, 동물이 수만마리, 동접자 수백명 등, 이런 요구사항을 현실화하기 위해서 먼저 동물 AI를 손보았습니다.

동물의 AI를 개체, 무리, 거시 3가지 단위로 세분화 했습니다. 레벨별 시뮬레이션은 각각의 레벨마다 다른 실행 규칙을 가집니다. 각각의 개체는 직접적인 전투나 이동, 행동을 관장합니다. 이 개체 레벨의 AI는 유저들이 직접 동물과 접촉하면 작동합니다. 이 AI는 플레이어가 보지 않을 때는 필요 없죠.


플레이어가 직접 관찰하지 않을 때는 개체 AI는 쉬고, 무리 단위의 AI가 작동합니다. 플레이어가 보지 않은 대신 물을 어떻게 마시는지, 밥을 먹었는지, 잠을 자는지, 무리가 어디로 이동했는지 등을 결정합니다. AI 연산량이 보다 간략화되는 것이죠.



여기서 더 오래 유저와의 접촉이 없어 휴식모드가 되면 거시 단위의 AI만 작동합니다. 거시 AI는 하루에 한두 번 정도만 연산을 하고, 무리가 물을 마시러 어디로 가는지, 어디에 사는지, 무리의 행동 반경이 어떻게 되는지 등 큰 범위의 결정을 내립니다. 유저가 접촉해 활성화시키기 전에는 이 상황에서 변화가 없지요.



이렇게 서버의 한정된 연산 자원을 플레이어가 더 많은 곳에 투자하는 것이죠. 맵에 존재하는 각각의 AI 에이전트들은 이렇게 미리 정해진 AI 패턴이 있습니다.

그렇다면 시뮬레이션을 이렇게까지 해서 어떤 이득이 있을까요?


'듀랑고' 에서는, 육식 동물이라도 이유가 없다면 플레이어를 공격하지 않습니다. 위협이 없거나, 배가 고프지 않거나 말이죠. 랩터도 그냥 지나갑니다. 이런 사실적인 인과, 리얼함이 있는 것이죠.

모바일 플랫폼에서도 몰입감이 있는 월드를 만들고 싶었습니다. 모바일 기기는 기기의 한계상 다른 기기에 비해 게임의 실재감에서 불리한 편이죠. 화면도 작고, 조작계도 제한됩니다. 하지만 월드가 플레이어의 행동에 리얼한 반응을 함으로서 부족한 부분을 채울 수 있는 겁니다.


인간과 인간 사이의 갈등에 자연이 끼어드는 것, 이것도 다이나믹한 변수를 줄 수 있습니다. 여기서 반복플레이성이 높아질 것이라고 봅니다.



소셜 샌드박스의 난제, 부동산을 해결하라

이렇게 되다보니 '듀랑고'는 좀 어려운 편입니다. 모바일로서는 더욱 어렵죠. 때문에 쉽게 만들고자 열심히 노력중입니다.


게임이 어려운 이유는 네가지로 정리가 됩니다. 먼저 플레이어 간의 상호작용이기 때문에, 뭔가 잘못되어도 누가 그랬는지, 왜 그렇게 되었는지 원인 파악이 어렵습니다. 그러니까 눈감으면 코베이는 느낌이죠. 또 지역이 중요한 게임이다보니 모바일 게임에서 지역 이동의 문제도 있습니다. 요즘 게임은 인스턴스 이동이 많지만, 그런 시스템을 초기부터 넣기는 어렵습니다.



다음으로는 지리적 경직성이 문제가 됩니다. 게임을 시작해 어딘가에 정착했지만, 이웃이 이상하다던지, 세력간의 분쟁지역이라던지 여러 불리한 요건이 많아진다면 게임이 너무나 급격하게 어려워지죠. 하지만 이미 유저가 큰 투자를 한 것이기 때문에 되돌리기가 어려워집니다.마지막으로는 월드의 노후화 문제입니다. 이런 갈등이 계속해서 적층되다보면 결국 강자들이 나오고, 이러한 올드비들이 지형적으로 유리한 고지를 미리 선점해서 격차를 더더욱 키워나가는 거죠.


결국 '문제는 부동산'이라는 결론이 나옵니다. 이 부분은 몇가지 해결책들이 이미 다른 게임들에 의해 제시된 적이 있는데요. 가장 쉬운 것은 집을 인스턴스화 하는 것입니다. 양적인 문제나 개인 범위의 침범 등 문제가 쉽게 해결되지요. 하지만 그만큼 샌드박스 스럽지 않게 됩니다.

그 다음은 지속적으로 새 서버를 오픈하는 것인데, 이는 효과적일 수도 있으나 유저가 점점 분산되고, 유저를 격리하는 것이기 때문에 유저간 커뮤니티를 단절시킬 수도 있습니다. 비슷하게 세션제를 통해 주기적으로 리셋을 할 수도 있는데, 이 방법은 유저들의 소유욕과 의욕을 반감시키는 문제가 있지 않을까 걱정했습니다.


그래서, 부동산에 유동성을 부여해야 하는데 기존의 방법이 마음에 들지 않았어요. 그래서 답을 '듀랑고'의 특징에서 찾아내기로 했습니다. 바로 '듀랑고' 필드 특유의 섬 구조 말이죠. 절차생성을 통해 섬 필드는 여러가지 크기와 특성으로 만들어질 수 있습니다. 여기서 몇가지 종류의 섬이 만들어집니다.


첫번째로 1명당 1개의 섬을 제공하는 모델이 있습니다. '클래시오브클랜'이나 '붐비치' 등에서 취하는 방식이라고 볼 수 있는데요. 플레이어도, 개발자도 마음이 편합니다. 변수가 적기 때문이죠. 하지만 굉장히 많이 쓰인바 있는 레드오션 방식입니다. 또, 이렇게 섬이 분산되면 시뮬레이션의 부하가 많아지죠.

그리고 '마인크래프트'나 '돈스타브'에서 볼 수 있는 협동 중심의 섬이 있습니다. 코옵 샌드박스라고 이름 붙여볼까요. 협동 중심의, 우호적인 플레이어끼리 모여서 마을을 만들고 협력하며 필드를 개척해나가는 방식이지요.


마지막으로 서바이벌 샌드박스가 있습니다. '러스트'나 '데이즈' 같은 게임에서 볼 수 있는 형태죠. 모르는 사람들과 함께 정해진 하나의 지역 내에서 같이 플레이 하는 겁니다. 익명성이 보장되기 때문에 PVP가 만연하고, 만인의 만인에 의한 투쟁이 일어납니다. 힘의 균형으로 일들이 이루어지죠. 지켜보고 있으면 재미있습니다.


그럼 여기서 생각해봅시다. 섬마다 다른 정책을 적용하면 어떨까요? 코옵 섬, 서바이벌 섬, 시간 제한이 있는 섬, 종류는 다양합니다. 이러한 섬들을 제각각 역할에 맞게 배치하는 겁니다. 일종의 세이프존, 마을의 역할을 하는 코옵 섬을 두고, 여기에서 다양한 섬으로 연결되는 것이죠.


섬에는 항구가 있고, 항로를 설정해 항해를 나서면 사실상 섬과 섬 사이를 순간이동 합니다. 이것이 섬들이 서로 연결되는 근간입니다. 항로를 발견하기 위해선 탐험을 해야하고, 새로운 섬을 탐험할 때마다 그만큼 연결되는 섬, 이동할 수 있는 지역이 늘어납니다.

이런 다양한 종류의 섬이 연결되는 만큼, 탐험가와 사냥꾼의 공존이 이루어집니다. 탐험가는 새로운 지역을 찾아내고, 사냥꾼은 그 지역에서 이득을 취하기 위해 노력하죠. 항구가 일종의 이동 허브이자, 각각의 인스턴스 던전으로 이어지는 입구의 역할을 하여 자연스럽게 로비와 던전의 구조를 취하게 됩니다.


물리적인 위치로 제약되어 각각의 지역의 가치가 천차만별인 다른 게임과 달리, 이 지역들은 논리적으로 대등하게 이어져있기 때문에 위치에 따른 문제는 없습니다. 섬 자체의 가치가 자신에게 마음에 드는가가 중요하죠. 조용히 혼자 지내고 싶다면 적은 항로만 유지하면 되고, 고정된 지리 위치 때문에 받는 스트레스가 크게 줄어듭니다.


그럼에도 같은 마을 섬에 사는 이와 마찰이 일어난다하는 경우에, 이사를 하고 싶겠지요. 이사는 적절한 제약과, 또 필요에 따른 유연성의 균형을 잘 잡아야 합니다. 유저가 많은 투자를 한 만큼 전체를 옮겨야 하는데, 너무나 쉽게 이동이 된다면 그건 더이상 부동산이 아니라 그냥 동산일 뿐이니까요.

물론 여기에 더해 대륙도 존재합니다. 훨씬 더 거대하고 제약이 없는, 하드코어한 게임 자원 전쟁이 가능한 곳이죠. 때문에 다양한 유저의 욕구를 포용할 수 있을 것이라 생각합니다.







이러한 결과를 도출할 수 있었던 조직의 힘

결과적으로 '듀랑고'의 시뮬레이션 MMORPG, 샌드박스는 부동산에 다양한 층위를 부여함으로서, 하드코어성을 완화하고 초반 진입장벽을 낮추는데 목적이 있습니다. 또 소셜 샌드박스의 특징을 계승하면서 MMORPG의 정체성을 유지하고, 거기에 시뮬레이션을 대폭 강화해 보다 완성된 형태의 '세계'로서 만드는 것이죠.

다소 무리해보이는 목표를, 기술적으로 기획과 탄력적인 연결을 통해 이루어내었다고 볼 수 있습니다. 게임 기획과 기술 구현을 밀착해서, 높은 수준의 결과물을 뽑아냅니다. 그것이 저희 왓 스튜디오 같은 단일 조직 개발의 장점이라고 생각합니다.