한국어
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2021.10.22 Technology: Push the Boundaries

    게임 리소스 스튜디오: 기획자를 위한 원스톱 프로세스

    게임 안에는 유저가 게임을 플레이할 수 있게 해주는 수많은 데이터가 있습니다. 알고 보면 게임을 만드는 일은 이러한 데이터, ‘수’와의 싸움과 같습니다. 따라서 기획자는 엑셀 작업도 필요합니다. 기획자의 기획안을 토대로 프로그래머가 데이터 모델링을 하면, 이를 기획자가 엑셀로 편집하는 과정을 거치기 때문입니다.

    이처럼 기획자와 프로그래머의 업무가 뚜렷이 구분되어 있기 때문에, 수정이 필요하면 서로가 커뮤니케이션을 반복해야 하므로 에너지가 소모되기도 합니다. 처음 게임을 기획한 기획자가 프로그래머 업무도 할 수 있다면 어떨까요? 기획자가 스스로 데이터 모델링을 할 수 있다면 좀 더 효율적으로 작업할 수 있지 않을까요?

    게임 개발 환경을 새롭게 만드는 업무를 맡은 리니지M Camp 인프라팀의 현기정, 조상우, 강윤석, 박정민 엔지니어는 위 물음에 대한 답으로 ‘게임 리소스 스튜디오’를 개발했습니다. 게임 리소스 스튜디오는 기획자도 게임 데이터 모델링을 할 수 있게 해주는 툴입니다. ‘Technology: Push the Boundaries’ 시리즈 그 두 번째는 ‘게임 리소스 스튜디오’ 개발 과정에 대한 이야기입니다.


    New Craving: 데이터 모델링을 기획자가 할 수 있을까?

    게임 데이터 모델링이란

    게임 데이터 모델링은 게임의 복잡한 세계를 일정한 표기법에 따라 표현하는 일이다. 즉, 게임의 구조를 설계하기 위해 관련 데이터들의 포인트를 연결하는 것이다.

    RPG의 가장 기본적 요소인 ‘사냥’을 예로 들자. 플레이어가 던전에서 몬스터를 죽이면 게임 안의 재화나 아이템을 보상으로 받는다. 이러한 ‘던전’, ‘몬스터’, ‘아이템’ 등의 데이터를 모델화하여 서로 간의 관계를 정의해 콘텐츠를 게임에 구현하는 방법이 바로 게임 데이터 모델링이다.

    기획자와 프로그래머의 업무 구별이 뚜렷하여 발생하는 비용

    데이터적 관점에서 게임을 개발할 때, 기획자는 먼저 콘텐츠를 기획한다. 이후 그 내용을 바탕으로 콘텐츠를 구현하는 데 필요한 모델들을 프로그래머와 함께 정의한다. 그리고 기획자가 정의한 모델들에 맞게 데이터를 입력하는 편집 과정을 거친다. 그 후에는 데이터가 제대로 입력되었는지를 QA 엔지니어가 확인하고, 실제로 구현된 게임 플레이가 원래 기획한 의도대로 작동하는지 검증한다. 이러한 검증을 거치고 이상이 없으면 플레이어가 경험할 수 있도록 배포한다.

    이렇게 고착화한 기존의 프로세스에서는 데이터 모델링과 편집 단계에서 기획자와 프로그래머가 유기적으로 일하기가 다소 힘들었다. 기획 내용 혹은 모델의 구조가 바뀌거나 데이터에 오류가 생기면 그때마다 관련 작업자에게 변경 내용을 다시 설명해야 하기 때문이다.

    담당자에 따라 업무 단계가 명확하게 구분되어 유기적으로 개발하기 어려운 기존의 데이터 모델링 프로세스

    데이터 편집 과정에서 발생하기 쉬운 오류

    기존의 프로세스에서는 오류가 발생하기 쉽다. 리니지M의 사냥 콘텐츠인 ‘오만의 탑’을 구현하는 과정을 들여다보자. 오만의 탑을 구현하려면 던전, 몬스터, 아이템 등의 여러 모델을 정의하고, 그 데이터를 입력하고, 모델 간의 관계를 정의해야 한다. 오만의 탑은 10층으로 구성되었기에 1층부터 10층까지의 총 10개 데이터, 그리고 각 층에 등장하는 제니스퀸, 시어, 뱀파이어 등의 보스 몬스터와 일반 몬스터들의 데이터, 몬스터를 처치한 후 플레이어가 얻게 되는 아이템 데이터까지 모두 정의한다. 이때 데이터를 각각 모두 입력하면 중복되는 데이터가 많아진다. 데이터가 중복되지 않게 하려면 제니스퀸이나 시어, 뱀파이어 등 여러 몬스터가 공통적으로 가진 아이템인 주문서, 비법서 등에 관한 데이터들의 관계를 정의해야 한다. 그리고 이후 하나하나 기입하지 않고 참조를 통해 데이터를 가져올 수 있게 해야 한다. 이때 데이터를 편집하는 과정에서 데이터 오류가 많이 발생할 수 있다. 단순히 잘못 기입할 수도 있고, 잘못된 참조가 연결될 수도 있으며, 중복된 값을 입력할 수도 있고, 범위를 벗어나는 값을 입력할 수도 있기 때문이다.

    데이터 모델링을 할 때는 데이터 모델 간의 관계를 정의하여 데이터가 중복되지 않도록 해야 한다.

    물론 기존의 프로세스로도 오류를 방지할 수 있다. 그러나 오류를 실시간으로 걸러내기는 힘들다. 기획자가 오류를 인지하여 직접 수정하거나, 편집 후 별도의 작업을 통해 다시 데이터를 확인해야 하기 때문이다.

    이 때문에 업무 담당자 간의 커뮤니케이션이 잦아진다. 또한 담당자나 협업 대상자가 바뀌면 소통하기 어려워질 수도 있다. 편집하는 기획자의 역량에 따라 서비스의 질이 좌우될 수도 있는 점도 문제이다. 이는 편집 작업의 러닝커브(Learning Curve)를 가파르게 만든다. 즉, 업무에 대한 학습 비용(시간)이 높아지고, 전체 개발 과정의 효율은 낮아진다.

    Never-ending Challenge: 효율적인 개발 프로세스를 위하여 만들어진 ‘게임 리소스 스튜디오’

    위에서 살펴본 커뮤니케이션 오류를 쉽게 정정하고 불필요한 커뮤니케이션을 줄이기 위해 리니지M은 기획자가 직접 데이터 모델링을 할 수 있는 프로그램 ‘게임 리소스 스튜디오’를 개발했다. 기존에는 프로그래머의 역할이었던 데이터 모델링을 기획자 스스로 할 수 있게 만든 것이다.

    기획자 혼자서 새로운 데이터 작업을 할 수 있도록 구현한 게임 리소스 스튜디오

    기존에는 기획자가 기획안을 만든 이후 프로그래머나 QA 엔지니어들의 데이터 모델링, 데이터 검증 작업을 거쳐야 했다. 그러나 게임 리소스 스튜디오를 활용하면 기획자 혼자서 기획부터 검증에 이르는 일을 효율적으로 할 수 있다.

    복잡한 여러 포맷 대신 하나의 ‘공통포맷’으로

    게임 리소스 스튜디오 사용자는 개발 과정에서 ‘공통포맷’이라는 디자인 언어를 이용하게 된다. 이 디자인 언어에 대응하는 다이어그램을 이용하면 게임 콘텐츠를 쉽게 모델링할 수 있다. 기획자는 출력 포맷 별 특징을 이해할 필요 없이 순수하게 콘텐츠 디자인에만 집중하면 된다. 복잡하고 어렵고 귀찮은 일들은 툴이 알아서 처리하기 때문이다. 보통 실무에는 엑셀, XML, MySQL, JSON 같은 다양한 포맷들이 쓰인다. 기획자가 이처럼 특성이 다양한 포맷들을 이해하고 게임 모델을 작성하는 일은 쉽지 않다. 공통포맷은 포맷 중립적인 디자인이므로 이를 이용해 모델링하면 한 번 작성한 게임 콘텐츠 모델을 다양한 포맷으로 변환하여 사용할 수 있다. 반대로, 이미 작성한 데이터를 공통포맷으로 가져오는 작업도 가능하다.

    게임 리소스 스튜디오의 장점은 기획자가 모델링한 내용을 엑셀이든 데이터베이스든 자유롭게 변환할 수 있다는 점이다. 이를 통해 기획하여 모델링한 내용을 실시간으로 라이브에 반영할 수 있고, 변경한 내용을 업데이트해서 툴에 표시할 수도 있다.

    리니지M Camp 인프라팀은 .net에 있는 공통언어와 공통언어 런타임에서 영감을 받아 공통포맷을 개발했다. 게임 콘텐츠 모델들을 다양한 언어로 작성해야 하더라도 공통언어로 변환할 수만 있으면 플랫폼에 독립적인 구조를 생성할 수 있으리라는 아이디어를 발전시킨 결과이다.

    게임 데이터 모델링과 편집을 한 번에. ‘도큐먼트’를 이용한 편리한 편집

    기존에는 기획자가 기획서를 작성한 후 프로그래머나 기타 유관부서에 데이터 모델 설계 업무를 요청해야 했다. 하지만 게임 리소스 스튜디오를 이용하면 기획자가 데이터 모델링과 편집도 할 수 있다.

    기획자는 ‘도큐먼트’라는 개념의 단위를 만들어 데이터의 열을 나타내는 컬럼들을 추가하고 데이터를 편집할 수 있다. 도큐먼트는 DB의 테이블이나 엑셀의 워크시트와 비슷한 개념이다. 또한 도큐먼트 컬럼에서는 컬럼명과 데이터 타입, 제약 조건 등의 속성과 도큐먼트 사이의 관계를 지정할 수 있다. 또한 도큐먼트의 고유한 컬럼이 다른 도큐먼트의 컬럼 중 일부가 되도록 설정할 수도 있다.

    예를 들어 던전의 고유한 아이디값이 있고 몬스터가 리스폰되는 던전을 지정한다고 가정해보자.몬스터의 컬럼 중 던전 아이디라는 컬럼을 추가하여 던전에 대한 아이디 연관관계를 설정하면 이 몬스터는 자동으로 특정 아이디의 던전에 리스폰된다, 라는 데이터를 설계할 수 있다. 이 설계는 추후 편집할 때 반영되므로 설계 사항 위반 여부 등의 검증을 한 번에 할 수 있다.

    UI 기반의 간편한 업무 수행

    게임 리소스 스튜디오는 Unreal의 블루프린트나 Unity처럼 드래그 앤 드롭 방식으로 각 문서의 성분들을 구성할 수 있다. 또한 UI 기반으로 만들어졌으므로, 코드에 익숙하지 않은 기획자도 쉽게 익힐 수 있다.

    에러를 차단하는 확실한 검증

    게임 리소스 스튜디오는 콘텐츠를 모델링한 이후 편집하는 기능까지 제공하기 위하여 외부 디자이너 데이터 편집기를 연동해준다. DB 에디터는 도큐먼트 에디터로, 엑셀은 도큐먼트 디자인 스튜디오로, Json과 XML, MySQL 등은 기타 포맷들에 대한 외부 편집기로 연동한다.

    이와 함께 각 출력 포맷의 데이터 에러를 검증하는 과정을 지원한다. 즉, 모델링한 게임 콘텐츠에 기획 의도를 벗어나는 값이 입력되는 것을 미연에 방지해준다. DB값을 입력할 때부터 에러가 표출되기 때문이다.

    콘텐츠 편집자, 배타적 사용권을 가지다

    게임 리소스 스튜디오는 편집을 진행하는 작업자가 콘텐츠에 대한 독점적 소유권, 즉 배타적 사용권을 갖는다. 동일한 데이터 모델을 동시에 편집하더라도 한 사람이 작업하는 내용을 다른 사람이 편집하거나 수정할 수 없는 것이다. 기존 작업자가 소유권을 반납하면, 변경된 내용이 다른 사람들에게 동기화된다.

    Next Change: 기획자를 위한 개발 환경 마련

    아트 디자인은 포토샵, 프로그래밍은 VS(Visual Studio)를 통해 게임코드를 개발하는 등 개발 환경이 잘 마련되어 있다. 그러나 기획자들의 주요 개발 환경은 예나 지금이나 엑셀이다. 이처럼 척박한 개발 환경을 개선해 게임 개발 오피스를 구현하기 위해 탄생한 것이 바로 게임 리소스 스튜디오이다.

    리니지M Camp 인프라팀에 따르면 기획자는 게임 리소스 스튜디오를 활용하여 내부적 리소스를 절약하고 업무 효율성을 극대화할 수 있다. 이에 따라 향후 더욱 긍정적으로 변화할 개발 환경을 기대할 수 있다. 게임 리소스 스튜디오의 끝은, 게임 기획 분야 데이터 디자인 업무의 혁신과 맞물려 있다. 이러한 혁신을 위한 노력은 앞으로도 계속될 것이다.