시스템 기획
게임은 다양한 시스템의 집합체이며, 시스템 기획은 테이블 설계, 시스템 정책(룰)을 수립하는 가장 하위 업무이다. 과거 독자적인 시스템 많았으나 이제는 대부분 장르별 비슷한 형태로 고착화되어 있기 때문에 자신이 개발하는 게임만이 아닌 경쟁사를 고려하여 보다 높은 경쟁력 있는 시스템 설계가 필요하다.
-. 정확하게 이야기하면 시스템 기획만으로는 다른 게임과의 차별성을 주기 어렵다. 또한 시스템은 게임 내부적으로 동작하기 때문에 개발 및 유지 관리 비용에 영향을 줄 수 있지만 게임 자체 경쟁력을 가지게 하기는 어렵다. 여기서 언급된 시스템 기획 = 콘텐츠 기획이라는 개념에 더 가깝다고 생각하면 된다.
-. 시스템 기획과 콘텐츠 기획은 동일 업무라는 선상에서 바라볼 수 있어야 한다. 시스템 기획은 규칙만을 정립을 정립하는 업무가 아닌 콘텐츠 확장을 고려한 시스템 기획이어야 한다.
<비슷한 장르 사이에는 이제 시스템=콘텐츠의 차이를 찾기 매우 어렵다. 리니지2M(좌)와 오딘(우)>
정리하면 시스템의 동작에 필요한 룰과 필요한 관련 데이터를 정리하고 이를 관리할 수 있는 데이터 테이블을 설계하는 기획 업무이다. 게임을 동작시키고 이를 표현하고 대상은 사람이 아닌 프로그램이라는 점을 우리는 꼭 잊지 말아야 한다. 그래서 시스템 기획을 진행하기 앞서 인간을 위한 생각하는 방식을 시스템을 위한 생각 방식으로 바꾸는 것부터 시작해야 한다. 그리고 나는 이것을 데이터적 관점이라 부른다.
※. 게임은 콘텐츠 싸움이다. 그리고 콘텐츠 기획은 시스템 기획이 항상 함께한다. 과거 단발적인 게임의 경우 데이터와 콘텐츠 확장성을 고려할 필요가 없었다. 게임이 온라인 시대를 맞이하며 장기적인 콘텐츠 볼륨의 확장이 필요했기 때문에 이를 고려한 시스템 기획이 동반되어야 한다.
데이터적 관점이란?
사람이 무언가를 인지하는 과정 그리고 그것을 표현했을 때 상대가 이해하는 과정과 프로그램에서 동일한 정보를 인지하는 과정에 필요한 사항이 모두 다르다. 여기 한 마리 고양이를 사람이 본다고 가정했을 때 아래와 같은 과정을 통해 고양이를 인지하고 결론을 내릴 수 있다.
<인간이 상대를 인지하고 결론을 도출하는 과정>
인간이 대상을 인지하는 과정
인간은 감각 기관을 통해 제공된 정보를 자신의 지식 기반에 따라 결론을 도출하는 능력이 매우 탁월하다 하지만 안타깝게도 우리는 감각 기관과 지식의 정보 교환 단계를 인지하지 못하고 매우 빠르고 직관적으로 결론을 내린다. 이는 비록 정확성은 떨어질지 몰라도 인간 생존에 있어 매우 유리하고 합리적인 진화의 산물이다.
1. 감각 기환을 통해 정보를 획득
-. 인간은 기본적으로 오감(시각, 청각, 후각, 미각, 촉각)을 이용하여 주변 정보를 습득할 수 있다.
2. 보유 지식 내 정보 분석
-. 감각 기관을 통해 획득한 정보를 기반으로 자신이 보유한 지식(일종의 DB)에서 가장 유사한 또는 일치하는 정보를 검색
3. 결론 도출(인지)
-. 하나 이상의 정보를 조합하여 최종 결론을 내리며, 이를 통해 정보를 인식할 수 있다.
<감각 기관을 통해 받아들인 정보를 보유 지식을 기반으로 결론을 도출할 수 있다.>
CPU가 대상을 인지하는 과정
프로그램은 별도의 감각기관을 가지고 있지 않으며, 이를 대체할 수 있는 수단으로 다양한 데이터를 활용할 수 있다. 요구된 정보의 호출은 데이터를 기준으로 판단하여 결론을 도출하여 유저에게 정보를 제공한다. 그림과 같이 고양이를 출력해야 할 필요가 있다면 지정된 규칙(시스템 기획)에 따라 Actor Data를 이용하여 고양이로 정의된(고양이가 아닌 고양이로 정의된 이란 부분은 매우 중요한 개념이다. 차이점을 이해할 수 있도록 하자.) 정보를 출력하여 유저에게 알린다. 그리고 유저는 앞서 설명한 인간이 대상을 인지하는 과정에 따라 받아들인 정보를 통해 이를 고양이로 인식할 수 있다.
-. 쉽게 이야기하면 CPU는 고양이가 무엇인지에 대한 생각을 하지 않는다. 누군가 고양이를 부르면 고양이로 정의된 정보를 찾아서 출력해 주는 역할을 수행한다. 그리고 그것이 고양이인지 아닌지는 사람이 판단할 뿐이다.
※. 이미지에 사용된 CPU는 프로그램의 시각적 표현을 위해 사용되었다. 컴퓨터의 데이터 처리 방식은 매우 전문적인 영역이기 때문에 개념 전달을 위한 편의 사항으로 표현하였기 때문에 오해 없기를 바란다.
<정의된 Actor Data를 기준으로 프로그램은 이를 처리하여 유저에게 정보를 제공한다.>
대상 인지 관점의 차이
인간은 데이터로 구성된 고양이를 인지할 수 없다. 반대로 프로그램은 감각 기관을 통해 고양이를 인지할 수 없다.(물론 시대가 변하고 있기는 하지만 게임에서는 예외로 하자.) 게임은 시스템의 집합체이기 때문에 유저에게 이를 보여주기 위해서는 체계적으로 정리된 시스템 기획과 데이터 테이블이 필요하다.
※. 이해를 돕기 위한 예시로 실제 내부 구성은 이보다 더 복잡하고 전문적인 기술이 필요하다. 전문 프로그래머가 아니기 때문에 개념에 대하여 이해할 수 있도록 하자.
<프로그램을 위해 인간의 감각 기관을 대체한 것이 Game Data Table(System Table)이라 생각하면 쉽다.>
데이터 적인 관점
데이터적 관점이라는 것은 특정 대상(프로젝트 목표)을 기획할 때 이를 표현하기 위한 데이터를 분류하고 정보를 프로그램이 인식할 수 있도록 체계적으로 분류하는 일련의 과정이며, 이를 위해서는 생각하는 방식을 바꿔야 할 필요가 있다. 예를 들어 당신은 어느 날 아래와 같은 경고 문구를 보게 되었다고 가정하자.
충분한 지적 능력을 가진 사람이라면 위와 같은 경고 문구가 뜻하는 것이 무엇인지 알 수 있다.(물론 우리는 대부분의 위반 행위를 몰라서 하지 않는 것은 아니다.) 하지만 데이터 적인 관점으로 해석하게 된다면 생각보다 많은 정보가 필요하다는 것을 알 수 있다. 그리고 데이터적 관점에 따라 질문을 하고 이를 정의하기 위해서 아래와 같은 항목을 고려해야 한다.
1. 뛰지 마세요.
Q : Actor는 뛰는 행위를 가지고 있는가? 뛰는 행위를 하지 못했을 때 어떻게 행동해야 하는가?
A : Actor의 Move상태를 이용하여 이동할 수 있다. 이동은 Run과 Walk로 구분되며, Move상태로 전환되면 기본적으로 Run 상태로 이동 Run 상태일 때는 Animation_Run Aim을 호출하며 이동 속도는 1.0 sce당 ActorDataTable.RunSpeed 컬럼 수치만큼 이동할 수 있다. Actor이 Move상태일 때 Run을 호출할 수 없을 경우 자동으로 Walk 상태로 전환되어야 한다. 이때 Animation_Walk Aim을 호출하며 이동 속도는 1.0 sce당 ActorDataTable.WalkSpeed 컬럼 수치만큼 이동할 수 있다. 만약 Actor의 Move 상태를 호출할 수 없는 상태일 경우 현 좌표에서 정지한다.
2. 뛰지 못하는 공간
Q : World를 기준으로 전체 공간을 뛰지 못하는가? 아니면 특정 영역을 기준으로 뛰지 못하게 하는가?
A : World에 DonNotRunTrigger Box를 설치할 수 있는 시스템을 추가한다. Actor Collision이 진입하게 되면 Actor Move 상태를 즉시 Walk 상태로 전환시킨다. Actor Collision이 DonNotRunTrigger Box영역을 벗어나면 Move 상태를 즉시 Run 상태로 전환시킨다.
이렇듯 단순하게 뛰지 마세요에 대한 기능을 게임에 적용하기 위해서는 다양한 기능이 필요하며, 이를 데이터화하여 시스템이 활용할 수 있도록 해야 한다. 이러한 과정을 위해 일반적인 생각의 방식에서 데이터적 관점으로의 전환이 필요하다.
※. 개발 과정에서 뛰지 못하게 해 주세요. 와 같은 요청은 프로그래머 입장에서 매우 난감한 요청 사항이다. 시스템 기획 챕터에서 더 자세하게 다루겠지만 상대가 필요한 정보가 무엇인지 미리 생각하고 기획서와 개발 리뷰를 통해 이를 전달하는 습관을 가져야 한다.
데이터적 관점을 가지려면?
데이터적 관점은 다소 생소하고 어렵게 느껴질 수 있지만 몇 가지 방법만으로 이를 해결할 수 있다. 아래 3가지 조건을 만족했을 때 시스템에 대한 정량화가 가능하며 이를 문서로 정리한 것이 시스템 기획서이다.
▶. Factor(인자) 항목 분류
-. 시스템에서 사용되는 각 인자를 구분하고 요소를 분류한다.
▶. Factor Value
-. 분류된 인자를 표현할 수 있는 숫자 또는 문자로 치환(置換)
▶. Factor의 치환(置換)된 정보를 저장할 수 있는 수단을 만든다.
-. 치환된 정보는 Data Table의 각 Column에 저장할 수 있는 수단을 만든다.(Data Table 설계)
여러분들의 구독과 공감(♥)은 저에게 큰 힘이 됩니다.
질문이 있으시면 방명록에 글을 남겨주세요.
'게임 기획 > 시스템 기획 이론' 카테고리의 다른 글
6. 게임 시스템 기획 개념잡기 (4) | 2024.01.05 |
---|---|
5. 게임 시스템 기획 이론 (2) | 2024.01.03 |
3. 게임 개발 실무에서 알면 도움이 되는 것들 (2) | 2023.12.31 |
2. 실무 게임의 개발 과정 흐름 (0) | 2023.12.31 |
1. 게임 기획과 업무 영역 (0) | 2023.12.31 |