시스템 기획과 콘텐츠 기획
회사 업무 프로세스에 따라 다르지만 시스템과 콘텐츠는 형제자매처럼 같으면서도 서로 다른 부분을 가지고 있다. 이렇듯 시스템과 콘텐츠는 상호 연관성이 매우 깊은 기획 업무이기도 하다. 그렇다면 시스템과 콘텐츠 기획의 차이는 무엇일까?
예를 들어 게임에 다양한 스킬이 있다고 가정했을 때 이 스킬이 동작하는 룰과 데이터 설계는 시스템 기획이며, 데이터를 이용하여 다양한 스킬을 만들어 내는 것을 콘텐츠 기획이라 할 수 있다. 즉 콘텐츠(또는 게임)에서 사용되어야 하는 다양한 요소를 정의하고 이를 데이터화하는 것이 시스템 기획이라면 시스템을 기반으로 실제 게임에서 이용 가능한 것을 기획하는 업무가 콘텐츠 기획이라 할 수 있다.
-. 일반 화살과 불 화살은 시스템상 거의 차이가 없는 투사체로 구성되어 있다. 하지만 콘텐츠 입장에서는 일반 화살과 불 화살로 구분되어 제작되어야 한다.
<좌측과 우측 서로 다른 스킬이지만 시스템 관점에서 봤을 때는 큰 차이가 없는 투사체 스킬이다.>
콘텐츠 기획은 유저가 게임 내 체험하고 즐기는 요소를 기획한다. 이를 위한 다양한 설정, 콘셉트, 외형외형 등 많은 정보를 기획하지만 시스템 기획은 콘텐츠가 동작할 수 있는 기초 구조나 동작 원리를 정의하고 데이터화한다. 이처럼 콘텐츠는 재미와 흥미를 중요시한다면 시스템은 구조화 및 무결함의 가치를 더 중요하게 생각한다.
※. 시스템 기획 또한 중요도에 따라 다양한 부분으로 나누어진다. 건축의 기본 공사와 같은 뼈대로 생각하면 쉬운데 RPG를 기준으로 뼈대가 되는 기본(코어) 시스템을 예를 들면 “캐릭터, 퀘스트, 스킬, 아이템, Ai, 월드”로 구성된 6개를 주요 코어 시스템으로 분류하고 이를 제외하면 대부분의 시스템 기획은 콘텐츠 기획과 함께 진행된다. 이는 콘텐츠의 재미만큼 데이터 확장을 이용한 PLC확보 또한 중요하기 때문이다.
콘텐츠 기획과 시스템 기획의 차이
시스템의 규칙과 동작 방법을 정의하는 것이 시스템 기획이며 이를 활용하여 콘텐츠를 확장하는 것이 콘텐츠 기획이다. 보다 구체적인 상호 차이를 구분할 수 있다면 향후 시스템 기획과 콘텐츠 기획의 차이를 보다 명확하게 이해할 수 있다. 예를 들어 축구 게임에서의 선수를 생각해 보자. 선수를 구성하는 요소(Factor)는 요소는 대략적으로 아래와 같다.
▶. 축구 선수 시스템
이름, 나이, 소속팀, 포지션, 기술 능력, 기동력, 정신력, 수비능력, 특성, 몸값의 데이터를 가진다.
<축구 선수를 구성하는 요소를 데이터화하고 이를 시스템 규칙에 따라 동작할 수 있도록 구성>
이러한 데이터를 기반으로 수만 명의 축구 선수를 만들어 낼 수 있다. 물론 모두 다른 선수를 만들 수 있지만 동일 선수라도 시즌에 따른 성적으로 기량(스탯)을 다양하게 설정하여 만들어 축구 선수라는 콘텐츠를 확장할 수 있다.
▶. 콘텐츠 확장
축구 선수 시스템의 데이터 추가로 다양한 선수를 만들어 낼 수 있다. 이를 통해 축구 선수 자체 콘텐츠의 확장이 가능하다.
<축구 선수 시스템을 기반으로 다양한 선수를 추가하고 콘텐츠를 확장할 수 있다.>
이렇듯 시스템 기획은 콘텐츠를 구성하고 이를 관리 확장할 수 있는 기반을 기획하며, 콘텐츠 기획은 시스템을 기반으로 유저가 이용할 수 있는 콘텐츠를 추가 또는 생산할 수 있는 기획 업무로 구분할 수 있다. 시스템 기획이 잘 되어있자면 콘텐츠는 자유롭게 확장 가능하며, 콘텐츠 기획의 요구 사항에 따라 기존 시스템에 추가 기능 또는 변경 사항이 발생할 수 있다.
※. 시스템이 구성된 이후에도 유저의 욕구(Needs)는 계속 변화한다. 이러한 변화에 맞춰 콘텐츠가 생산되거나 추가되어야 하기 때문에 이미 완성된 시스템이라 하더라도 변화를 수용하고 유연하게 대처하는 자세가 필요하다.
시스템 기획은 왜 필요한가?
데이터 적인 관점의 내용을 다시 한번 생각해 보자 프로그램은 인간과 다르며 기능을 동작시키기 위해서는 감각 기관을 대체할 수 있는 여러 데이터가 필요하다. 시스템의 데이터가 동작하기 위해서는 규칙이 필요하며 게임이 동작하는 동안 다양한 상황이 발생하고 그에 따른 세부 규칙들이 설정되어있어야 한다. 그리고 이러한 규칙을 정의하고 체계화하여 시스템을 구성하고 데이터 테이블을 이용한 콘텐츠 관리 및 확장을 위해서는 시스템 기획과 데이터 설계가 필요하다.
▶. 기능의 체계화
기획자의 생각을 체계화된 룰에 따라 정리하고 필요한 데이터를 제공함으로써 프로그래머가 기능을 구현할 수 있도록 설계도를 제공한다.
-. “나는 이런 것을 만들고 싶습니다.” 아무리 말로 설명해도 프로그래머는 필요한 데이터 구성과 다양한 상황에 어떻게 표현해야 할지에 대한 고민을 하게 된다. 시스템 동작에 필요한 기능과 규칙을 체계적으로 정리하면 프로그래머의 코드 알고리즘(Algorithm) 작업에 많은 도움을 줄 수 있다.
<원하는 것을 말하는 습관보다는 무엇을 어떻게 만들어야 하는지에 대하여 설명하는 습관이 필요하다.>
▶. 외부에서의 데이터 제어
프로그래머를 통하지 않고 외부(Data Table)에서 수치를 조정할 수 있기 때문에 콘텐츠 관리 비용이 감소한다. 또한 기획자 대부분이 병렬 작업을 진행할 수 있기 때문에 효율적인 업무가능
-. 전투 밸런스의 경우 테스트 단계에서부터 수많은 데이터 조정 작업이 발생한다. 이러한 작업을 매번 프로그래머를 통해 수정해야 한다면 담당자를 비롯한 프로젝트 참여 인원이 매우 비 효율적인 업무 프로세스에 노출되어 관리 비용이 증가할 수밖에 없다.
<코드를 이용한 수정보다는 외부 데이터 수정이 프로젝트 운영에 많은 이점을 제공한다.>
▶. 데이터 확장
이미 만들어진 시스템과 콘텐츠의 경우 프로젝트 스펙의 변화(기능 추가, 변경)가 없을 경우 데이터 추가만으로 콘텐츠 확장이 가능하다. 데이터 확장 기능은 적은 비용으로 PLC 확보에 매우 유리하다.
-. RPG게임에 등장하는 무한의 탑과 같은 콘텐츠는 데이터 추가만으로 새로운 난이도를 확장할 수 있다.
<단순하게 예를 들었지만 데이터 확장만으로 콘텐츠가 확장될 수 있다는 것은 프로젝트 입장에서 큰 장점이다.>
▶. 데이터 참조 활용
다른 시스템과 연계하여 기능을 참조받아 사용(빌려 쓰는 것이라 생각하면 된다.)하게 되면 중복 기능 개발 비용이 감소하고 데이터를 보다 쉽게 관리할 수 있다. 데이터 참조 기능을 잘 활용하면 추가 개발 없이 콘텐츠를 확장할 수 있다.
-. 체력 회복 포션의 경우 아이템 정보는 Item Data Table을 이용해 생성하고 효과는 Skill Data Table을 참조하면 아이템을 통한 체력 회복 기능을 추가로 개발하지 않고 동일 효과를 게임에 표현할 수 있다.
<독립된 기능을 참조하며 사용면 개발 비용 감소 및 창의적인 시스템 활용을 통해 새로운 콘텐츠 확장 가능>
시스템 기획 구성
시스템 기획을 위해서는 크게 인지 요소(Factor)와 규칙(Rule) 그리고 결과(Result) 3가지 조건이 필요하다. 인지 요소는 규칙을 제외한 시스템 기능 동작에 필요한 모든 것이며, 규칙은 인지요소가 동작하는 원리 및 법칙이다. 그리고 결과는 시스템이 인지요소와 규칙을 이용하여 동작하였을 때 게임 내 어떠한 피드백을 제공하는지에 대한 정보이다.
■. 시스템 기획 구성 요소
No | 항목 | 설명 |
1 | 인지 요소(Factor) | 시스템을 구성하는 각종 요소 |
2 | 규칙(Rule) | 인지요소를 이용하여 시스템이 동작하는 규칙 |
3 | 결과(Result) | 시스템이 동작했을 때 어떠한 피드백을 제공하는지에 대한 설명 |
용어들이 다소 생소하고 어렵게 느껴질 수 있지만 자동차 엔진을 예를 들어보자 엔진 내부에는 실린더(Factor)가 들어있다. 차량이 운행을 시작하면 가속기 페달을 밟으면 실린더가 움직이며 동력을 생산한다. (Rule) 이 동력을 이용하여 자동차는 앞으로 이동(Result)하게 된다. 이렇듯 시스템 기획은 동작에 필요한 요소와 룰 그리고 결과에 대한 정보를 포함하고 구체적인 내용을 정리할 수 있어야 한다.
※. 대부분의 개발은 프로그래머를 통해 진행되기 때문에 인지요소와 규칙 그리고 결과에 대한 정보를 개발자가 충분히 이해할 수 있도록 정리할 수 있다면 이미 훌륭한 시스템 기획자라 할 수 있다. 하지만 전문 프로그래머가 아니기 때문에 코드 작성의 범위가 아닌 규칙과 결과에 대한 설명에 집중하도록 하자.
데이터 관리
시스템 기획이 완료되었다면 이를 제어할 수 있는 별도의 수단이 필요하다. 이것을 데이터 테이블이라 한다. 기획 업무는 주로 데이터 테이블을 이용하여 각 시스템 요소를 제어하고 콘텐츠를 사용하기 위한 밸런스 조정을 할 수 있다. 앞서 자동차 엔진을 예를 들자면 가속기 페달을 밟았을 때 자동차를 이동하게 하려면 어느 정도 힘을 가해졌는가(A)에 대한 정보와 자동차가 이동하는 속도(B)는 어느 정도 값을 가져야 하는지 정보가 필요하다. A는 유저 입력을 통해 발생한다고 가정하면 B는 A의 입력 수치에 반응하여 결과를 제공하는 값(속도)으로 사용된다.
-. 데이터 테이블의 간단한 예시를 확인해 보자 클라이언트는 사용자 조작에 따라 입력을 제공받을 수 있으며, 이때 받을 수 있는 데이터는 1 ~ 5라고 가정한다.
-. 유저를 통해 받은 데이터를 Car Data Table의 CarExcel컬럼에 있는 값에 대입하여 일치하는 값을 찾는다.
-. CarExcel과 일치하는 값을 가진 행의 CarSpeed컬럼의 값을 자동차 이동 속도로 사용
-. In Game에서는 CarSpeed의 속도만큼 자동차가 이동하게 된다.
※. 이번에는 데이터 테이블에 대한 간단한 개념만을 이해하도록 하자 시스템 기획과 테이블 설계는 따로 설명하기 어렵지만 각자 많은 내용을 포함하고 있어 모든 내용을 동시에 설명하면 오히려 더 이해하기 어렵다. 그래서 다음에 데이터 테이블에 대한 자세한 내용을 다룰 예정이다.
<유저 입력 정보와 일치하는 결과를 게임에 출력하여 시스템이 동작하도록 할 수 있다.>
시스템 기획의 장점과 단점
시스템 기획을 통해 만들어진 데이터 테이블은 확장성과 유연성을 보장받으며, 프로젝트 관리 및 콘텐츠 확장에 매우 효율적이지만 모든 시스템이 이러한 형태를 가질 필요는 없다. 시스템 기획을 통해 개발되는 프로젝트의 경우 기획과 개발에 많은 시간과 비용이 발생하게 된다. 때문에 간단한 기능일 경우 시스템 기획을 통해 개발하기보다는 프로그래머 단독으로 개발하는 형태를 고려할 수 있으며, 이것을 하드 코딩(데이터를 코드 내부에서 직접 처리하는 것) 형태라고 한다. 정규 시스템과 같은 장점을 가질 수 없으나 개발 속도가 매우 빠르고 불필요한 데이터 테이블의 파편화 현상을 억제할 수 있는 장점이 있다.
-. 코드 내부에 직접 값을 설정하는 형태도 있지만 데이터 실행 바이너리에 직접 값을 등록하여 사용하기도 한다.
-. 일부 시스템의 경우 규모가 작지만 외부에서 값을 제어해야 하는 경우가 있으며, 이때는 공용 데이터 테이블(Config Table)을 이용하여 조정이 필요한 값을 외부에서 제어할 수 있도록 한다.
-. 데이터 테이블은 불특정 다수의 사람들이 작업하기 때문에 의도하지 않은 데이터 입력 실수가 발생할 수 있다.
※. Config Table은 공용으로 사용 가능한 데이터를 모아 놓은 잡동사니 같은 테이블이다. 시스템 기획을 하다 보면 별도 테이블로 구성하기에는 규모가 작은 데이터가 발생하는데(ex : 스테이지 제한 시간) 외부에서 조정이 필요한 데이터일 경우 Config Table을 통해 조정 가능하도록 처리한다.
<항상 시스템 기획을 통한 개발 과정이 좋은 것만은 아니다. 사용되는 기능별로 합리적인 선택이 필요하다.>
여러분들의 구독과 공감(♥)은 저에게 큰 힘이 됩니다.
질문이 있으시면 방명록에 글을 남겨주세요.
'게임 기획 > 시스템 기획 이론' 카테고리의 다른 글
7. 게임 시스템 기획 컨셉의 구체화와 기능 분리 (3) | 2024.01.05 |
---|---|
6. 게임 시스템 기획 개념잡기 (4) | 2024.01.05 |
4. 게임 시스템 기획의 데이터적 관점 (2) | 2024.01.03 |
3. 게임 개발 실무에서 알면 도움이 되는 것들 (2) | 2023.12.31 |
2. 실무 게임의 개발 과정 흐름 (0) | 2023.12.31 |