본문 바로가기

DB

게임 DB 제작 [1]

나는 기획을 하며 창작 기획서든 역기획서든 무조건 DB는 제작한다.

그 이유는 그냥 재밌기 때문이다.

개발자들이 스탯을 설정한 것들이 궁금하기도 하며, 아이템을 어떻게 분류했는지, 나였으면 어떻게 분류할것인지 등을 자유롭게 정할 수 있기 때문이다.

 

물론 사람들마다 DB를 작성하는 방법은 천차만별이며, 나는 아직 배우는 입장이기에 이 글을 쓰는 것도 어찌보다 웃길수도 있다. 하지만 이런 글이라도 누군가에게 도움이 된다면 그걸로 행복할 것 같다.

 

이번 글은 '게임 DB 작성법' 첫번째 글이다.

첫번째 글인 이유는 게임의 장르에 따라 DB 구성이 천차만별이기에 최대한 유동성있게 내용을 적고자 나누었다.

 

필자는 DB를 작성하려면 최소한 데이터 자료형과 관련된 지식이 있어야 한다고 생각한다.


바로 본론으로 넘어가겠다.

 

1. 컬럼 구성

나는 보통 컬럼을 짤 때 기본적으로 아래와 같은 구성으로 제작한다.

1번째 행

한글로, 2번째 행은 1행을 영어로 치환한것이다.

필자가 본 DB에 따르면 그저 영어로 데이터 이름을 적고 2번째 행부터 바로 DB를 작성하는 경우도 보긴 했지만, 개인적인 생각으로는 작성자는 알아보겠지만 다른 파트가 보기엔 매우 불편할 것 같아 필자는 이 형식을 고수하고 있다.

(언젠간 또 형식을 바꿀지도 모르긴 하겠지만..)

 

3번째 행

1,2 행에 대한 데이터 타입을 정의한다.

이는 프로그래머를 위한 것이기도 하다.

필자가 DB를 정리하며 사용하는 데이터 타입은 크게 4가지이다.

1. int

2. float

3. string(char)

4. enum

 

4번의 경우 int형으로 그냥 쓰는 경우도 보긴 하였지만 필자의 생각으로는 int와 enum은 구분하여 사용하는 것이 좋다고 생각하여 enum으로 사용중이다.

 

4번째 행

경우에 따라 컬럼에 부가 설명이 필요할 경우 사용하는 행이다.

대표적인 예시로는 다음과 같다.

1. 단위가 필요할 때

2. enum형을 보조하기 위해

 

1번의 경우는 예를 들어 공격 범위에 대한 데이터라고 가정했을 때 단위가 cm인지, m인지, km인지 알 수 없다. 때문에 4번째 행에 "단위: m" 라고 정의하는 편이다.

 

2번의 경우는 밑에서 추가 설명하도록 하겠다.

 


그러면 간단하게 주제를 잡아서 데이터를 작성해보겠다.

주제는 게임의 가장 대표적인 '아이템 DB'이다.

물론 아이템의 종류에 따라 DB의 구성은 다르지만 이번에는 간단하게 하기 위해 '포션'을 정리해 보겠다.

 


결론은 게임을 많이 해보며 각 아이템들이 어떤 스탯을 가지고 있는지 기억하고 응용하는 센스가 중요하다.

 

League of Legends 게임을 예시로 들어서 '흡혈의 낫'은

-이름

-공격력

-생명력 흡수

-구매 가격

 

이렇게 네가지의 옵션을 플레이어가 볼 수 있다.

하지만 게임의 내부적인 부분에서는 어떤 아이템을 사용해서 만들 수 있는지, 판매 금액은 얼마인지, 공격범위에 어떤 영향을 끼치는지, 무기의 등급은 어떤지, 여러개를 한번에 장착할 수 있는지 등, 굉장히 많은 숨겨진 요소들이 있다.

 

따라서 이런 부분들을 항상 생각해보며 고민해봐야 DB를 더 잘 짤 수 있다고 필자는 생각한다.

'DB' 카테고리의 다른 글

CSV 파일 구조  (0) 2024.01.20
JSON 파일 구조  (0) 2024.01.20