데이터 테이블 만들기
변수의 개념과 데이터 타입(자료형)에 대한 내용을 이해했다면 시스템 인지요소(Factor)를 이용하여 데이터 테이블을 설계할 수 있다. 작성 방식은 테이블 생성 양식(데이터 테이블 형태 항목 참조)에 따라 필요한 시스템 인지 요소를 추가하면 된다.
기능 구체화 과정을 통해 정리된 Factor과 규칙이 설정되었다면 이를 프로젝트에서 요구하는 양식에 맞춰 엑셀로 옮겨 적으면 데이터 테이블이 완성된다.
물론 실제 스킬 데이터는 더 많은 정보를 테이블에서 제어할 수 있어야 한다. 시스템 테이블의 경우 초기 구상(설계) 단계에서 완성되는 것이 아니라 실제 데이터를 채워 넣으면서 논리적으로 문제가 있거나 시스템 제어에 필요한 추가 요소들을 추가하고 불필요한 테이블을 제거하면서 최종 데이터 테이블을 완성할 수 있어야 한다.
또한 하나의 테이블에서 모든 기능을 제어하기보다는 독립적으로 기능이 분리된 다른 테이블 정보를 참조하여 사용함으로 써 시스템이 유연하게 동작할 수 있도록 설계하는 것을 권장한다.
데이터 참조 기능
데이터 테이블은 시스템의 규모에 따라 단일 테이블(테이블 1개)로 구성되거나 다른 테이블의 정보를 참조(기능 또는 정보를 빌려 쓰는 개념)하는 형태로 구성될 수 있다. 보다 쉽게 이해를 돕기 위해 여기서 데이터를 빌리는 대상을 참조 대상이라 하고 빌려주는 대상을 원본 대상이라 정의하자. 참조 기능은 테이블 컬럼 수량을 줄이거나 이미 개발된 시스템의 기능을 호출할 수 있기 때문에 개발 비용 감소 및 데이터 관리에 유리하다.
-. 참조 기능은 쉽게 이야기해서 이미 만들어진 또는 등록된 데이터를 빌려 쓰는 개념에 가깝다.
-. 참조의 형태는 정 참조와 역 참조 2가지 형태가 대표적이며, 각 참조 형태에 따라 장점과 단점이 있다.
-. 참조 기능을 사용하기 위해서는 원본 대상에서 원하는 정보를 찾을 수 있는 고유한 조건이 필요하다.
- 정 참조
원본 대상의 Unique ID 또는 기준이 될 수 있는 조건 값을 기준으로 참조하는 형태
-. Unique ID 또는 검색 기준 조건을 참조를 제공하기 때문에 다수의 참조 기능을 제공할 수 있다.
-. 1개의 원본 대상이 다수의 참조 대상을 참조할 수 있기 때문에 원본 데이터가 증가하지 않는다.
-. 원본 대상의 데이터가 수정되었을 경우 원하지 않는 다른 참조 대상의 데이터가 함께 수정될 수 있다.
- 역 참조
참조 대상과 원본 대상의 데이터가 1:1 형태로 증가하는 참조 형태
-. 테이블은 구조적으로 컬럼이 횡(열)으로 증가하는 형태로 컬럼을 추가해야 한다. 테이블의 데이터 구조에서 종(행) 형태로 데이터의 확장이 필요할 경우 사용할 수 있다.
-. 불필요한 횡(열)으로 증가하는 컬럼의 수량을 줄일 수 있으며, 구조를 보다 간결하게 만들 수 있다.
-. 참조 대상에게 원본 대상의 데이터가 귀속되기 때문에 다른 대상에게 참조될 수 없다.
-. 참조 대상자의 데이터와 원본 데이터가 함께 증가해야 하기 때문에 작업량이 늘어난다.
정 참조와 역 참조에 대해서 알아봤는데 역 참조의 경우 정 참조 형태에 비하여 특별한 장점이 없어 보일 수 있다. 하지만 데이터 컬럼은 종(열) 형태로 증가하기 어려운 구조를 태생적으로 가질 수밖에 없기 때문에 종(열) 형태로 데이터의 확장이 필요할 경우 데이터를 분리하여 역 참조 형태로 구성하는 것이 데이터 구조를 보다 이해하기 쉽게 만들 수 있다.
※. 데이터 테이블의 횡(열) 형태는 프로그래밍에서 데이터를 검색하는 방식과도 연관이 있다.
예를 들어 “캐릭터는 스탯을 가지고 있다. 1개의 캐릭터는 5개의 랭크 정보를 가지고 있으며, 랭크별 보유 스탯이 다르다. 단 랭크에 따른 캐릭터 외형이 변화는 없다.”를 가정했을 때 횡(행) 형태로 하나의 테이블로 구성한다면 아래와 같은 형태로 테이블이 구성될 수 있다.
이런 식으로 데이터 컬럼을 설정하면 (스탯 종류 x 랭크 수량) 만큼 컬럼이 증가해야 한다. 결과적으로 스탯이 증가하거나 랭크가 증가하면 그만큼 컬럼이 늘어나게 되고 데이터 가독성이 좋지 않으며, 컬럼이 추가될 경우 코드 수정이 불가피하다. 반대로 역참조를 이용하면 테이블은 2개로 증가하지만 구조는 보다 간단해진다.
Actor ID를 기준으로 Group ID로 그룹화하여 각 데이터 라인별 랭크 정보를 등록하고 스탯을 구성하면 향후 6 랭크가 추가되더라도 데이터를 컬럼이 증가하지 않고 데이터의 확장이 가능하다. (콘텐츠가 확장될 경우 스탯이 추가되는 확률보다 랭크가 추가되는 확률이 더 높다.) 그리고 캐릭터를 구성하는 데이터와 스탯 데이터를 분리하여 관리할 수 있는 이점이 있다.
물론 정 참조 기능을 이용하여 유사하게 데이터를 구상할 수 있지만 캐릭터별 밸런스에 따라 스탯이 자주 변화할 수 있는 상황에서 의도하지 않은 동일 참조 대상의 스탯이 변경될 수 있다는 위험성을 가질 수 있기 때문에 굳이 정 참조를 활용하지 않는 형태로 구성된 것이다.
이렇듯 데이터 참조 기능을 활용할 때는 데이터의 구조가 어떻게 구성되어야 하는지에 따라 관리의 용이성과 확장성이 다르기 때문에 테이블 설계 단계에서 고민이 필요하다.
독립적 데이터 테이블 설계
데이터의 유연성을 위해서는 각 데이터 테이블의 독립성이 보장되어야 한다. 데이터 테이블의 독립성이란 말 그대로 시스템이 다른 시스템에 영향을 받지 않고 독립적으로 자신의 영역 내 시스템을 처리할 수 있어야 한다.
-. 독립성을 위해서는 각 시스템의 영역 내 다른 외부 시스템의 영향력 없이 스스로 동작할 수 있어야 한다.
-. 대부분의 독립성을 필요로 하는 시스템은 게임 내 상당한 코어 시스템인 경우가 많다. 코어 시스템의 설계 단단계에부터 각 시스템의 역할과 기능 구성을 어떻게 처리할지에 대한 고민이 필요하다.
시스템을 제어하기 위한 데이터 테이블에 필요한 인지요소를 제외하고 테이블 설계 단계에서 데이터의 독립성과 유연성을 고려한다면 향후 개발 비용이 크게 감소하고 시스템의 확장과 응용에 매우 유용하다.
물약 아이템이 스킬 데이터를 참조하여 물약 사용자를 회복시킨다고 했을 때를 가정하면 아래와 같은 데이터 참조 형태를 가질 수 있다.
-. 참조 형태를 가질 때 시스템은 독립적으로 구성되어 있기 때문에 각 시스템 스스로 제어해야 하는 기능의 범위가 어디까지 인지 잘 알고 있어야 한다.
-. 데이터 설계 단계에서 독립성을 고려한다면 구성해야 하는 인지요소를 담당해야 하는 시스템의 주체가 누구인지 명확하게 정의할 수 있어야 한다.
-. 시스템 주체는 해당 기능이 동작하기 위한 인지 요소를 어디서 제어할 수 있는지를 말한다.
■. 물약 아이템의 스킬 효과 참조 데이터 트리 예시
이렇게 데이터를 참조받아 시스템이 구성되었을 때 게임 내 아이템을 사용하게 되면 아래와 같은 형태로 시스템이 동작하여 결과적으로 유저의 체력을 회복시킬 수 있다.
-. 유저가 아이템을 사용하면 먼저 아이템을 사용할 수 있는 상태인지에 대한 조건 체크가 완료되어야 한다.
-. 사용에 문제가 없다면 아이템 시스템의 User Action 조건이 True로 시스템에 값이 전달된다. 이때 유저가 사용한 아이템의 ID를 기반으로 Item Data Table에서 필요한 정보를 추적한다.
-. Item Data Table의 Skill Operation ID의 추적에 성공하면 Skill ID를 기준으로 Skill Data Table에 등록된 스킬 효과를 추적한다.
-. 스킬 효과의 추적이 완료되면 스킬 효과 적용 대상자의 타깃 조건에 따라 스킬 효과를 제공한다.
■. 아이템 사용 시 게임 내 시스템 동작 예시
자 여기서 앞서 말한 독립성에 대한 내용을 알 수 있다. 아이템이 발동하는 조건 및 외형 등 아이템에 필요한 정보는 아이템이 주체이기 때문에 Item Data Table에서 관리된다. 이후 발동된 스킬의 경우 스킬 효과 및 적용 대상자를 선정하는 기능은 스킬이 주체이기 때문에 Skill Data Table에서 관리된다. 이렇듯 각 시스템이 동작하기 위한 대상의 주체가 누구인지를 알 수 있다면 데이터의 독립성과 유연성을 고려한 설계에 많은 도움이 된다.
테이블 주석
프로그래밍 코드처럼 데이터 테이블에도 주석 기능을 사용할 수 있도록 하는 것이 좋다. 데이터 설계와는 상관없지만 주석 기능만으로 데이터 관리에 많은 편의성을 보장받을 수 있다.
-. 주석 기능은 필수 사항이 아니기 때문에 기능을 제공하지 않는 다해서 나쁜 시스템은 아니다.
-. 주석을 이용한 데이터의 가독성을 확보하고 테스트, 업데이트 데이터를 미리 등록하는 등 장점을 가진다.
-. 라인 주석(열)이 있으며, 컬럼 주석(행) 주석 2개의 형태를 사용하는 것이 좋다.
-. 주석의 사용 방식은 프로젝트 개발 상황과 규칙에 따라 달라질 수 있다.
데이터 테이블의 단점
데이터 테이블은 매우 다양한 장점을 가지고 있으나 그만큼 단점 또한 가지고 있다. 이미 만들어진 형식에 따라 데이터를 구성하기 때문에 참조 기능을 활용한다고 해도 다소 경직되어 있는 시스템이라는 부분은 어찌 보면 데이터 테이블 형태의 한계라고 할 수 있다.
동일한 기능이라 하더라도 어떻게 시스템을 구성하고 운영할지에 대한 고민이 필요하다. 무엇이 시스템을 내가 사용하고 더 좋은 콘텐츠로 확장할 수 있는지에 대한 고민의 결과로 나타날 수 있기 때문에 항상 데이터 테이블은 엑셀로 만들어야 한다는 고정관점을 버리고 유연한 생각하는 방식을 가질 수 있도록 하자.
여러분들의 구독과 공감(♥)은 저에게 큰 힘이 됩니다.
질문이 있으시면 방명록에 글을 남겨주세요.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다
'게임 기획 > 시스템 기획 이론' 카테고리의 다른 글
9. 게임 시스템 기획 데이터 테이블 이론 (1) | 2024.01.23 |
---|---|
8. 게임 시스템 기획의 인지 요소 (0) | 2024.01.19 |
7. 게임 시스템 기획 컨셉의 구체화와 기능 분리 (3) | 2024.01.05 |
6. 게임 시스템 기획 개념잡기 (4) | 2024.01.05 |
5. 게임 시스템 기획 이론 (2) | 2024.01.03 |