이제는 설명이 필요 없을 정도로 뜨거운 단어인 '메타버스'. 그 기원이라던가 의미 그리고 실용성에 대해서는 여러 가지 의견이 있긴 합니다. 그래도 로블록스나 마인크래프트 등 기존 메타버스로 꼽힌 콘텐츠들이 호응을 얻고 있고, 이에 자극을 받아 공간의 제약 없이 다른 사랆들과 동시에 같은 놀이를 즐길 수 있고 그런 공간을 제약 없이 꾸며갈 수 있다는 개념을 도입한 여러 작품들이 최근 나오기 시작한 건 사실이죠.

넥슨도 그 메타버스에 도전장을 내밀었습니다. 여타 메타버스와 달리, 메이플스토리의 애셋을 활용해 2D 도트 그래픽 기반의 메타버스 '프로젝트 MOD'를 준비한 것이죠. 지난 8월 13일 넥슨 미디어 쇼케이스에서 처음 공개된 프로젝트 MOD는 총 상금 3억 원이 걸린 공모전 'CI 2021' 발표와 함께 본격적으로 모습을 드러냈습니다.

10년 이상 축적된 메이플스토리의 그래픽 애셋을 활용한 2D 메타버스 프로젝트 MOD, 지난 17일 공모전 OT 진행과 함께 참가자들에게 두 가지 버전이 제공되면서 유저 콘텐츠 제작의 막을 올렸습니다. 아직 일부에게만 공개된 상황에, 그간 메타버스와 달리 3D가 아닌 2D를 채택한 프로젝트 MOD로 어떤 콘텐츠를 만들 수 있을지 작업해봤습니다.



■ 제작은 우선 도구부터 확인하는 것으로 시작된다


몇 년이나 애셋뿐만 아니라 각종 리소스들이 풀린 로블록스나 기타 메타버스와 달리, 프로젝트 MOD는 이제야 처음으로 공모전으로 선보이는 단계죠. 주 언어가 LUA라던가 메이플스토리의 그래픽 애셋을 사용할 수 있다는 것까지는 알려졌지만, 그것만으로 뭘 할 수 있느냐 확인하기는 어렵습니다.

이미 게임 개발이나 메타버스를 훑어본 경험이 있다면 알겠지만, 이럴 때는 보통 기본 템플릿부터 훑어보게 됩니다. 개발자들이 처음 이걸 만들었을 때, 최소 이걸 기반으로 하면 남들과 놀 수 있는 기본은 갖출 수 있다고 본 틀 같은 것이니까요. 아예 처음 그 도구를 접한다고 하면, 구조를 알아보기 위해 참고하는 참고 서적 같은 느낌이기도 합니다.


▲ 현재 템플릿은 기본이 1개, 꾸미기 모드 3개 총 4개가 준비되어있습니다

일단 프로젝트 MOD는 공모전 참가자 등 일부에게만 제한적으로 공개됐고, 현재도 개발 중인 상황이긴 합니다. 현 단계에서는 그래서 기본 템플릿은 플랫포머, RPG, PVP 세 종류로 구성이 되어있습니다. 만들기 메뉴에서 '꾸미기'로 되어있는 칸에 템플릿이 따로 마련이 되어있죠. 그리고 가장 기본틀이 '기본'에 있고, 그 외에 자신이 직접 하나하나 만들 수 있는 새로 만들기 칸 이렇게 총 다섯 가지 선택지가 처음에 주어지게 됩니다.

만들기 외에는 메타버스와 게임 엔진의 가장 큰 차이 중 하나인 '아바타'에 대한 설정도 있습니다. 메이플스토리의 각종 장비들을 아바타 꾸미기로 구현해뒀으며, 이를 구매해서 자기 캐릭터를 꾸밀 수 있죠. 아바타의 BM이나 종류는 아직 다 갖춰진 게 아니기 때문에, 이런 기능을 구축해뒀으며 앞으로 확장해나갈 것이라고 보면 될 것 같습니다.

▲ 각종 장비로 아바타를 꾸밀 수도 있고

▲ 다른 유저들이 만든 게임을 즐겨볼 수 있는 메타버스의 기본을 갖췄습니다

우선 꾸미기 모드에 있는 템플릿을 살펴보면, 꾸미기 모드 템플릿은 아직은 그렇게까지 자유도가 높은 편은 아니었습니다. 정해진 기본틀에서 크게 벗어나지 않고, 애셋들을 배치한 뒤 일부 수치나 특성 정도만 편집할 수 있는 정도였죠. 그것도 스크립트로 되어있는 게 아니고, 전부 다 시각화해둔 상태입니다. 즉 스크립트를 일일이 찾아보지 않고 특성만 보고 바로 수치를 조정할 수 있다는 뜻이죠. 대신 스크립트에 접근할 수가 없어서 더 뜯어보기는 어려운 구성이었죠.

일부 메타버스에서는 템플릿하면 게임 엔진에서 키트를 깐 것과 비슷한 느낌이지만, 프로젝트 MOD는 그보다는 프로그래밍이나 게임 엔진 등에 대한 지식이 전무한 유저도 콘텐츠를 만들 수 있게끔 아주 기초적인 것만 제공하는 느낌이었습니다. 내부 구조는 드러나지 않고, 앞서 언급한 것처럼 일부 특성과 수치만 조율하는 정도만 가능했기 때문이죠.

▲ 꾸미기 모드에 있는 플랫포머 템플릿, 원래 내부 스크립트로 편집해야 할 부분도 다 외부로 나와있습니다

물론 좀 더 훑어보면 게임엔진에서 씬에 해당하는 '맵'도 일부 편집, 기본적으로 주어진 공간보다 더 다양한 공간을 활용할 수도 있습니다. 게임을 만들 때 초보들이 가장 애를 먹는 것 중 하나가 씬의 이동과 연결, 구조 관리인데, 이것도 메이플스토리의 애셋 '포탈'로 아주 간단하게 해결됩니다. 씬 관리하는 매니저 같은 걸 따로 안 붙여줘도 내부에서 로직이 이미 잡혀있기 때문이죠. 그래서 갑자기 이상한 곳으로 워프한다던가, 게임오버 장면으로 넘어가버리는 등 이상한 일이 벌어질 상황이 일어나질 않습니다.

뿐만 아니라 게임을 끝내는 골 같은 오브젝트나 트랩 등, 가장 기본적인 오브젝트도 잘 갖춰져있었습니다. 적에 대한 세팅을 할 때, 초보자들이 애먹을 수 있는 아이템 드랍 같은 것도 설정에 미리 다 있기 때문에 그것만 조절하는 것으로 별 이상 없이 그럴싸한 모양새를 낼 수 있었죠. 여타 메타버스와 달리 아직 개발 단계라 템플릿에서부터 다양한 애셋을 자기 마음대로 끌어오기는 좀 제한되긴 하고, 유저들이 만든 애셋보다는 개발진이 메이플스토리 라이브서비스를 하면서 쌓아둔 애셋을 푼 게 많은 상황이긴 합니다. 그래서 다소 경직될 순 있지만 안정성은 확실하고, 다루기는 훨씬 쉬웠습니다.


▲ 기본으로 제공된 꾸미기 템플릿 중 RPG 템플릿, 좀 넣어야 할 게 많지만

▲ 기본 틀은 확실히 잘 잡혀있습니다

템플릿 말고도 만들기창을 좀 더 훑어보다보면 내부 라이브러리가 상당히 복잡한 편이고, 기존에 세팅된 것들이 상당히 많은 편입니다. 물론 게임 개발 그 자체에 목적을 둔 게임 엔진과 달리, 메타버스는 다른 사람들과 놀 공간을 만들고 공유하는 것에 주력하기 때문에 더 쉽고 간편하게 무언가를 만들 수 있게끔 사전에 여러 준비를 해두긴 하죠.

그런 점을 감안해서 봐도 현 단계의 프로젝트 MOD는 꽤나 사전 세팅이 촘촘히 되어있는 편입니다. 메이플스토리를 해본 유저라면 꽤나 익숙한 애셋들이 애니메이션 및 여러 가지 세팅이 된 상태로 받아볼 수 있거든요. 물론 이 세팅을 다 뜯어봐서 자기만의 심도 있는 무언가를 만들겠다, 하기엔 아직은 개발 단계라서 어렵긴 합니다. 특히나 꾸미기 템플릿 단계는 아예 워크스페이스나 하이어라키창, 컴포넌트 같은 것도 안 보이니까요. 그 정도까지 할 의향이 있다고 한다면, 사전에 세팅된 꾸미기 템플릿이 아니라 기본 혹은 새로 만들기로 들어가서 본격적인 작업을 시작해야 할 것 같습니다.

현 단계에서는 공모전이다보니 제로베이스에서 여러 가지를 구축한 참가자도 있지만, 일단 캐릭터들이 어떻게 세팅해야 어느 정도로 움직일지 또 대략적인 구조가 어떤지 훑어보기 위해 꾸미기 템플릿을 변형해서 이리저리 시도한 참가자도 있는 상황입니다. 그것들을 훑어보면서 자기만의 무언가를 궁리하고, 때로는 좋은 것들을 참고하는 메타버스 특유의 패턴은 개발 중인 현 단계에서도 느껴볼 수 있었습니다.

▲ 스크립트를 아예 못 보는 건 아니지만

▲ 보통 오류가 떴을 때 어느 부분이 문제인지 보여주는 정도라 어지간하면 손대기가...



■ LUA 스크립트를 활용하는 본격적인 '프로 모드', 모르겠으면 일단 가이드부터

▲ 기본 템플릿부터는 이제 스스로 애셋을 구해서 채워넣어야 합니다

프로젝트 MOD에서는 템플릿을 기반으로 단순히 꾸며나갈 수 있는 모드뿐만 아니라, 여타 메타버스처럼 처음부터 이것저것 봐야 하는 프로 모드도 있습니다. 그냥 새로 만들기할 때 템플릿을 안 고르고 기본, 혹은 새로 만들기로 설정하면 바로 적용이 되죠.

이 단계부터는 아까처럼 맵 위에서 이리저리 훑어보거나 맵 에디터, 레이어 에디터만 끄적거리는 단계가 아닙니다. 여타 메타버스처럼 스크립트를 넣어보고 컴포넌트까지 구축해나가는 단계죠. 로블록스와 동일하게 LUA 언어를 사용하니, 로블록스를 사용했던 사람이라면 스크립트를 보는 것 자체는 어렵지 않을 겁니다.

▲ 간단한 거라면 아까 그 템플릿만으로도 충분하겠지만, 개발에 스크립트가 빠지면 섭하죠

이를 모르고 있다고 해도 프로젝트 MOD에서는 개발자들을 위한 가이드를 준비하고 있습니다. 기본 스크립트부터 데이터셋, UI, 엔티티 제어에 API 레퍼런스까지 내부에 있는 다양한 기능의 사용법과 용례를 정리해두었죠. 몇몇 핵심적인 파트는 영상으로도 제공, 보고 따라할 수 있게끔 했습니다. 단 아직은 공모전 위주로 진행되고 있기 때문에 공모전에 참가해서 프로젝트 MOD 접근 권한이 있는 유저에게만 개방된 상황입니다. 또 프로젝트 MOD가 아직 개발 중이기 때문에, 일부 기능은 정상적으로 작동하지 않아 내부에서 계속 체크하고 있는 중이기도 하죠.


▲ 개발자 포럼에는 다양한 가이드가 준비되어있지만, 아직 공모전 참가자만 접속 가능합니다

프로젝트 MOD 외부뿐만 아니라 내부에서도 이런저런 보조 기능들이 들어있습니다. 대표적인 것이 스크립트 컴포넌트를 추가할 수 있는 기능이죠. 메소드 같은 것을 일일이 다 타입핑하지 않고, 프로젝트 MOD에서 주로 사용되는 것들을 리스트로 보고 확인해서 넣을 수 있죠. 뿐만 아니라 그 메소드가 서버에서만 적용되는지, 클라이언트에서만 적용되는지 아니면 둘 다 적용되는지 등등 구분하는 것도 따로 스크립트를 짜지 않고 함수 부분에서 체크할 수 있죠.

물론 이런 보조기능 때문에 처음에는 다소 헷갈리긴 하지만, 익숙해지면 일일이 타이핑하지 않아도 되고 또 오타나 자잘한 실수가 적어져서 Null Reference 같은 초보 개발자의 친구(?) 같은 오류들을 접할 일도 적어져서 마음 편하긴 합니다.

▲ 일단 메소드 추가할 때 샘플부터 보고 가죠

▲ 서버에서만 처리될지, 아니면 클라이언트에서 처리될지 혹은 둘 다일지도 설정 가능합니다



■ 95만 개가 넘는 리소스, 먼저 조립하고 시각화하면서 구상하기

▲ 공모전용 테스트 빌드인 지금도 95만 개 이상의 애셋들이 준비되어있습니다

발표 단계부터 메이플스토리의 방대한 애셋을 활용했다는 것을 내세운 만큼, 프로젝트 MOD를 훑어보면 메이플스토리의 온갖 애셋을 볼 수 있습니다. 몬스터나 배경맵, NPC 등은 물론이고 효과음이나 애니메이션 같은 것도 들어가있죠. 배경맵도 메이플스토리에 나오는 각 지역의 애셋들을 배포하는 것을 목표로 준비 중에 있고요. 당초 목표가 메이플스토리를 10년 넘게 라이브 서비스하면서 축적한 수백만 개 이상의 애셋을 프로젝트 MOD에도 구축하는 것이라고 했으니, 정식 출시 때는 훨씬 더 많아질 것으로 보입니다.

앞서 언급한 것처럼 자유도가 엄청 높다고 하긴 어렵지만, 개발사가 직접 게임에 사용했던 애셋을 쓴 만큼 그 기능이나 안정성은 상당히 높은 편입니다. 웬만한 건 바로 갖다가 써도 어느 정도는 의도대로 기능할 정도죠. 보통 메타버스에서는 잘 작동되지 않는 애셋도 많기 때문에 그걸 가려내는 작업부터 해야 하지만, 프로젝트 MOD는 아직 유저들이 올린 애셋보단 개발사가 직접 올린 게 많다보니 그런 염려는 없었다고 하겠습니다.

문제는 이제 그 방대한 애셋으로 무엇을 만들까 하는 고민입니다. 앞서 언급했듯 자유도는 높은 편이 아니고, 내부가 다소 복잡하기 때문에 이를 어떻게 개조해야 원하는 걸 만들 수 있을지 알아갈 필요가 있거든요. 그렇기 때문에 API 레퍼런스나 가이드뿐만 아니라, 스크립트 내에 편의 기능 같은 것도 들어간 듯합니다.

▲ 툴박스나 토이박스 이런 곳에서 가져오는 건 물론이고, 맵 스프라이트에서 바로 적용도 가능합니다

어쨌거나 이처럼 도구들이 확인되면, 그 다음부터는 각자의 방식대로 게임 개발에 돌입하게 될 겁니다. 보통은 게임 내 오브젝트를 배치하거나 지형을 만들면서 이리저리 플랜을 짜거나, 아니면 별도 문서에 기획을 작성하고 나서 그에 맞춰 하나하나 구축해나가는 방식도 있겠죠. 그간 주로 전자의 방식을 채택했던 만큼, 이번에도 오브젝트들과 지형을 배치하면서 시행착오를 겪고 수정해나가는 방법으로 제작 중입니다.

지형은 2D 기반인 만큼 크게 맵 이미지와 타일맵 두 가지로 제작 가능합니다. 여기에 여러 오브젝트를 덧붙이면서 골자를 만들게 되는데, 앞서 언급했던 애셋들이 있기 때문에 그걸 하나하나 배치해두면 됩니다. 그 외에도 몬스터들이나 NPC, UI 관련 메뉴도 배치해두면서 정상 작동하나 확인하면 되죠. 다만 몬스터 같은 경우에는 유저가 때리면 대미지도 들어가고 피격 애니메이션이 들어가긴 하는데, 유저를 먼저 공격하거나 혹은 유저에게 피해를 주는 등 세부 사항은 스크립트를 보면서 조건을 확인해야 합니다.

몬스터들의 외형이나 특성까지 아예 색다르게 편집하는 것까지는 어려워도, 내부를 훑어보면 충돌 무시나 맵 레이어 무시 그리고 콜라이더 설정 등 기본적인 편집은 가능했습니다. 혹은 콤포넌트를 아예 새로 넣어서, 전혀 다른 몬스터의 스킬을 따온다던가 하는 구성도 이론상은 가능해보입니다. 그 스크립트를 어떻게 짜느냐, 그런 것이 문제겠지만요.

▲ 프로퍼티 부분은 컴포넌트를 넣어 편집하는 등, 유니티 같은 상용 엔진과 상당히 비슷한 느낌입니다.

보통은 메타버스에 기본 지원하는 템플릿을 보고 그 구조를 토대로 하나하나 개조하면서 배워나가는 게 메타버스 개발의 일반적인 학습법 중 하나인데, 현재 프로젝트 MOD는 그 템플릿과 프로 모드가 분리된 터라 이 방법은 좀 어려울 듯합니다. 가이드도 아직은 100% 다 갖춰진 건 아니라, 직접 보면서 시행착오를 겪고 타 메타버스에 있던 LUA 스크립트를 긁어와서 응용하는 등 방법을 찾아가야 하겠죠.

아직은 이걸로 어떤 걸 만들어야 할지 궁리 중인 단계입니다. 하필 프로젝트 MOD의 OT와 지스타 기간이 겹치는 터라 관련 자료를 뒤늦게 접한 상황이기 때문이죠. 일단은 프로젝트 MOD의 공모전이 발표됐을 시점이 마침 오징어 게임이 유행하던 때라, 이를 따라한 메타버스가 유행한 것에 착안해서 오징어 게임에 나오는 놀이를 프로젝트 MOD식으로 바꿔볼까 하는 생각이 있긴 합니다. 룰이 쉽다보니 개발을 어느 정도 해봤다면 메타버스에서 구현하는 게 그리 어렵진 않을 거라 판단했거든요.

프로젝트 MOD가 그간 없던 2D 중심에, 아예 무에서부터 사람들의 놀이터로 새로 만든 개요가 아닌 기존에 서비스하는 게임들의 애셋을 모아다 메타버스로 연성한 것인 만큼 그 뼈대를 훑어볼 시간도 필요했습니다. 아마 이 뼈대를 어느 정도 훑어본 뒤에, 그럴싸한 무언가를 만들어가는 과정을 연구하고 말씀드릴 수 있지 않을까 싶습니다.

▲ 점프력과 이동속도는 어느 정도여야 적당하고 왜 적은 공격 안 하는 건지 등등, 기본부터 연구 중입니다