[기획] 디토랜드로 게임 만들기(1) 뼈대를 알아야 살을 붙인다

기획기사 | 윤서호 기자 | 댓글: 3개 |



최근 뜨거운 감자로 떠오르는 단어를 꼽으라면 '메타버스'일 겁니다. 초월을 뜻하는 접두사 '메타'와 우주를 의미하는 유니버스가 합쳐진 이 신조어는 게임업계에서도 관심을 가졌죠. 게임이야말로 어찌보면 메타버스에 맞춰 발전해온 엔터테인먼트니까요. 어떻게 해야 시공간의 제약 없이 다른 사람들과 동시에 같은 놀이를 즐기게 할지, 대규모 인원이 모여도 소통이 원활하게 진행될 수 있도록 할지 그간 숱하게 연구해온 것이 게임업계였고요.

흔히 말하는 메타버스 게임은 여기서 좀 더 나아갑니다. 자신이 직접 그 공간을 만들어서 남들과 소통하고, 혹은 남들과 같이 그 공간을 꾸며나가면서 더욱 확장해나갈 수 있는 것이죠. 대표적인 사례로 로블록스를 들 수 있을 겁니다. 단순히 정해진 게임을 플레이하는 것을 넘어서, 다른 사람들이 올린 것과 자신이 만든 것들을 뒤섞어서 새로운 게임을 창조하고 공유하게 만든 엔진이자 플랫폼으로 자리잡았으니까요.

그런 분야에 발을 디딘 또다른 도전자가 있습니다. 국내 벤처 기업인 유티플러스 인터랙티브가 개발, 지난 2일부터 OBT를 진행 중인 '디토랜드'죠. UCC 샌드박스를 표방하고 있는 디토랜드 역시도 자기가 여러 애셋을 구해서 게임을 만들고 남과 공유하면서 즐기거나, 남이 만든 게임에 들어가서 노는 등 여러 가지 활동이 가능합니다. 아직 OBT 단계이긴 하지만 과연 이걸로 어떻게 게임을 만들어서 공유하고 놀 수 있을지, 한 번 작업을 해봤습니다.



■ 첫 시작은 다운로드, 모르겠으면 일단 템플릿/가이드 영상부터



▲ 현재 제공되는 템플릿은 6종입니다

몇 년 동안 각종 자료나 정보가 축적된 로블록스와 달리, 디토랜드는 이제야 첫 발을 내딛은 단계입니다. OBT를 시작하고 일주일이 지났다고는 하지만, 그 내부 구조나 여러 가지 정보를 다 캐내기엔 턱없이 부족한 시간이죠. 사람마다 달라서 확신은 못하지만 좀 빠르다 싶으면 자기가 만들 게임의 애셋들을 몇 개 만들어서 이리저리 굴려보고, QA까지 마친 뒤에 하나둘씩 올려볼까말까한 그런 시기라고 봅니다.

남이 만든 애셋을 갖고와서 이리저리 배치하는 건 나중에라도 할 수 있으니, 그건 빼고 일단 디토랜드가 어떤 구조인지 알아볼 필요가 있었습니다. 다운로드를 받고 설치하면 지금은 아이콘이 바뀌었지만, 초창기에는 언리얼 아이콘이라서 "아 이거 언리얼 엔진 기반이구나"라는 걸 알 수 있었습니다. 언리얼 기반이라고 해도 언어는 LUA를 쓰는데다가, 언리얼 엔진의 애셋은 갖고 올 수 없으니 그냥 그렇다는 정도로 넘어가면 되겠습니다.



▲ 그냥 언리얼 엔진으로 만들었다, 정도지 언리얼 엔진에서 뭘 갖고오진 못합니다

시작하면 일단은 여느 스튜디오가 그렇듯 템플릿이 주어집니다. 현재 디토랜드에는 아무 것도 없는 블랭크부터 런&점프, 무한 런, 장애물 달리기, FPS, TPS 총 여섯 개의 템플릿을 지원하죠. 템플릿에 총 5가지 장르를 선보인 셈인데, 템플릿에 있는 것만 꼭 가능하다는 건 아니니 참고하는 정도로 보면 될 것 같습니다. 왜냐하면 디토랜드처럼 사전에 정보가 부족한 경우엔 템플릿을 이리저리 훑어보면서 대강 구조를 파악할 필요가 있기 때문입니다.

▲ 예제 템플릿 자체가 썩 괜찮게 만들어져있어서 참고할만 합니다

기본 구조 자체는 여타 메타버스와 크게 다를 바는 없습니다. 다만 인터페이스가 여타 메타버스와 달리 게임 안에 씬과 기능 인터페이스가 있는 구조라 좀 생소하긴 했죠. 원래 공부를 시작할 때 한 번씩 책상을 정리하곤 하잖아요? 그처럼 게임 개발할 땐 괜히 엔진 인터페이스를 이리저리 자기 편한 대로 구성하고는 하는데, 이게 씬과 인터페이스가 겹쳐지다보니 좀 낯설었습니다.

인터페이스를 훑어보면 크게 홈 메뉴와 툴박스, 월드트리, 속성 네 가지로 나뉩니다. 물론 홈 메뉴에 가서 레이아웃을 좀 더 확장해볼 수 있죠. 툴박스는 로블록스의 도구상자나 게임 엔진의 애셋스토어나 마켓플레이스와 비슷하게 남이 만들어둔 애셋을 다운받을 수 있는 메뉴죠. 월드트리는 엔진의 하이어라키창이라 보면 되겠고, 속성창에서 월드에 있는 각종 오브젝트나 여러 스크립트의 정보를 볼 수 있습니다.



▲ 템플릿을 고르고 들어가면 바로 제작에 들어갈 수 있습니다

여타 메타버스가 다 그렇듯 뷰 이동은 WASD를 기반으로 하고, 오브젝트(여기서는 토이)를 움직일 때는 홈 메뉴에 있는 설정들을 활용해야 합니다. 좀 더 편한 게 있다고 하면 마치 게임 엔진처럼 월드트리창에서 오브젝트를 더블클릭하면, 그 오브젝트의 피벗으로 바로 뷰가 이동한다는 점이죠.

이런 기본적인 사항은 개발사에서 자체적으로 가이드 영상을 올렸으니 한 번은 훑어보면 될 듯합니다. 카메라 이동부터 기초적인 구조까지 설명이 되어있으니까요. 그러니 게임 개발을 위해서 템플릿에서 뭘 봐야 할지 살펴봐야겠죠.

디토랜드 내에서 게임 개발을 위해 템플릿에서 훑어봐야 할 것은 1) 월드트리 구조 2) 속성창 3) 스크립트 이 세 가지입니다. 일단 뼈대가 어떻게 되어있는지 알고 그걸 제대로 베껴서 참고해야 그럴싸한 게임을 만들 수 있으니까요. 월드트리에서 개발을 할 때 주로 보게될 부분은 '워크스페이스'에 있고, 거기서 캐릭터 및 스폰 포인트, 그외 각종 토이들을 클릭해보면서 대체 어떻게 생겨먹었나 파악해나갈 수 있습니다.



▲ 더 자세한 내용은 디토랜드 유튜브에서 확인할 수 있습니다



■ 사용하는 언어는 LUA, 스크립트 구조를 모르겠으면 도움말을 누르자



▲ 게임 개발의 난관, 스크립트는 여기에도 존재합니다

겉모습은 이제 대략 알았으니, 이리저리 무언가를 배치하면서 내실을 채워가는 과정이 남았습니다. 거기에 어떤 기능까지 추가해보려면, 당연한 말이지만 스크립트를 넣어야 하죠. 요즘엔 비주얼 스크립팅이다 해서 코딩 없이 개발하는 그런 게 유행이라지만, 효율 문제 때문에 메타버스에선 아직 도입이 안 됐죠.

일단 디토랜드에서는 로블록스와 동일하게 LUA 언어를 사용합니다. 그러니 로블록스를 써봤던 사람이면 딱히 어렵지 않게 스크립트를 훑어볼 수 있죠. 로블록스를 안 써봤거나 LUA 언어를 잘 모르는 사람들을 위해서 '도움말'이 따로 마련되어있습니다. 유니티나 언리얼 엔진을 쓰던 사람이면 종종 살펴보곤 하는 스크립트 레퍼런스 같은 코너죠.

보통 스크립트 레퍼런스하면 최근엔 한국어 번역이 활발해졌다고 해도 아직 영어가 많이 남아있다는 인식이 있습니다. 아무래도 프로그래밍에는 번역하기 좀 어려워서 그냥 원어를 쓰는 개념들이 원체 많으니까요 그래서 자연히 멀리하거나 영어까지 꾸역꾸역 익히면서 보곤 했죠. 디토랜드의 도움말, 스크립트 레퍼런스는 그 부분도 최대한 한국어로 번역을 해둬서 막히지 않고 볼 수 있습니다. 물론 그걸 이해하느냐 마느냐는 별개의 문제지만요.

스크립트 레퍼런스를 그냥 훑어보면 하얀 건 배경이고 검은 건 글씨 이런 느낌일 겁니다. 아무래도 배경 지식이 필요하니까요. 보통 그런 경우엔 다른 스크립트를 베껴와서 적용하는 일이 많은데, 그럴 때 스크립트 레퍼런스를 보면 왜 그런 구조로 스크립트를 짰나 조금은 알 수 있습니다. 게임 엔진과 달리 이 뼈대가 자신이 처음부터 설계한 것들이 아니다보니 오인할 여지는 있지만, 그래도 어느 정도 가이드라인이 되어주긴 하죠.



▲ 모를 땐 우선 파일-도움말로 들어가서



▲ 레퍼런스를 살펴봅시다.



■ 파라미터는 밖에서 작성하고, 안 되는 건 후순위로 두자




스크립트를 뜯으면서 일단 원하는 정보를 얻은 뒤엔, 그에 맞춰서 게임 내 오브젝트 배치나 기믹을 만들어나가게 되죠. 디토랜드는 아직 지형편집기 같은 기능은 없어서 다양한 지형을 만드는 건 아직 불가능합니다. 이외에도 아직 지원하지 않는 것들이나, 제 실력이 딸려서 바로 구현하기 어려운 것도 있죠. 그러니 그런 것들은 배제하고 어떻게 원하는 걸 만들지 따져봐야 합니다.

디토랜드에서는 다양한 지형은 아직 못 만들지만, 물은 따로 만들 수 있습니다. 런&점프 템플릿에서 베낀 건데, 기본 오브젝트를 만든 뒤 머터리얼을 물로 바꿔주고, 속성에 들어가서 콜리전 설정을 다 꺼주면 마치 물에 들어간 것 같은 그런 느낌을 줄 수 있습니다.



▲ 머터리얼 설정과 콜리전 설정만 변경해줘도



▲ 물에 들어가는 느낌은 구현할 수 있습니다. 애니메이션은 따로 작업해야 하지만요

디토랜드에서는 초기 캐릭터가 취할 수 있는 동작이 아주 많지는 않습니다. 그렇지만 스크립트를 뜯어보면 캐릭터의 조작키 설정이나 애니메이션 관련 스크립트도 노출이 되어있죠. 애니메이션을 따로 속성창에서 예제를 넣을 수도 있고요. 다만 그걸 어떻게 서로 연결해야 할지는 아직 난제입니다. 예를 들어서 FPS에서 흔히 하는 쪼그려앉기는 집어넣을 수 있는데, 그걸 게임플레이할 때 특정 키를 눌러서 적용하게끔 하는 게 제 실력으론 무리라는 거죠. 수영하는 동작도 그 조건을 어떻게 짜야 할지 좀 봐야 할 것 같아서 현 단계에서는 지켜봐야 할 것 같고요. 그래서 캐릭터 스크립트의 파라미터만 가서 이동속도나 점프 같은 설정만 조정하는 정도로 끝냈습니다.

물론 그걸로 난관이 끝나는 건 아닙니다. 퀘이크3 아레나의 우주공간 맵을 디토랜드 버전으로 만들고 싶었는데 그 가운데에 있는 점프발판 중 대각선 방향을 구현하질 못하겠더라고요. 툴박스에서 점프패드를 다운받았는데, 그 스크립트가 살펴보니까 플레이어가 점프를 하게 만든다는 로직이지 외부에 힘을 가하는 로직이 아니라서 대각선 방향에서는 적용이 안 됐습니다. 슈팅 게임의 기본인 무기 교체도 일단 예제가 없다보니, 어떻게 만들어가야 할지 좀 애매합니다. UI 메뉴가 닫혀있다보니, 스크립트를 좀 뜯어봐야 하나 싶고요.



▲ 수그리거나 그런 동작이 없는 건 아닌데, 넣어주려면 따로 스크립트 작업도 거쳐야 합니다



▲ 캐릭터 세팅 스크립트의 파라미터만 약간 손봐도

▲ 캐릭터 움직임에 상당히 차이가 납니다

그 안에서도 이리저리 툴박스에 있는 것들과 기본 오브젝트를 더하면 그럴싸한 맵은 만들어갈 수 있었습니다. 작업하면서 어째 퀘이크3보다는 오버워치 일리오스의 등대맵 같은 그런 구조가 되어버리긴 했습니다만, 일단 그 틀을 만들어두고 플레이어 캐릭터에 FPS캐릭터 스크립트와 FPS 애니메이션을 덧씌우고 총을 배치하는 것만 해도 그럴싸한 느낌은 납니다. 더 완벽한 게임이 되기 위해서는 플러스 알파가 필요하겠지만요.

아, 그리고 작업이 일단 끝났으면 저장은 잊지 마세요. 디토랜드 역시도 로컬 저장뿐만 아니라 디토랜드 내에 클라우드 세이브가 가능합니다. 파일-디토랜드에 퍼블리시를 하면 바로 적용이 되죠. 퍼블리시라고 해서 미완성된 게임도 그냥 노출되는 거 아냐 하실 겁니다. 그렇지만 기본적으로 비공개로 세이브가 되고 나중에 디토랜드 홈페이지에 가서 자기가 직접 공개로 바꿔야만 외부에 노출되니 안심하고 작업하면 되겠습니다. 아마 다음에 또 뵐지 모르겠습니다만, 그때는 좀 더 그럴싸한 게임을 만드는 과정에 대해서 연구하고 말씀드리고자 합니다.



▲ 이것저것 넣으면서 게임을 만들다가



▲ 퍼블리시 후 내 게임 관리에서 공개로 설정하면 검색도 가능해집니다. 작업이 남아서 아직 비공개 중

댓글

새로고침
새로고침

기사 목록

1 2 3 4 5