게임을 만들기 위해서는 수많은 방법이 존재하는데, 그 중 데이터를 어떻게 효율적으로 관리할지에 대한 고민은 항상 존재한다고 생각한다.
회사를 많은 회사를 경험해보진 못했지만, 이번에 적는 내용은 도입하는 회사도 있었고, 도입하지 않는 회사도 있었다.
개인적으로는 도입한 회사를 다닌쪽이 조금더 편했기도 하고, 생각하는 방향이랑 맞았었다.
초기 구상했던 툴 기획은 아래와 같다.
제작 : C# Winform
사용 라이브러리
OfficeOpenXml
System.IO
외에는 System.Text 나 이런 주로 사용되는 namespace다.
ClassTypeExporter
1. 제작 의도
기획자에게 Enum Type에 대한 추가 권한을 주기 위해 제작 필요
2. 제작으로 인해 얻는 이득
타입에 대한 추가 사양이 있을 시, 기획자가 추가하여, 개발자와의 불필요한 커뮤니케이션 비용을 줄일수 있다.
3. 툴의 한계점
추가는 할 수 있으나, 이후 기능적인 부분이 적용되는 것은 개발자에게 알려줘야한다.
있던 타입을 제거하기 위해서는, 게임 프로젝트 내 컴파일 에러가 출력되기 때문에, 개발자에게 알려줘야한다.
세부 규칙은 이렇다.
ClassTypeExporter Tips
파일의 세부 규칙을 기술한다.
파일
엑셀 파일 접두어로 “Field” 을 붙인다.
시트
(Field +시트 파일명)은 Enum 의 타입명 이 된다.
Sheet : GamaData ⇒ FieldGameData
컬럼
컬럼 (0,0) 내용에 “Link” 가 없을 시 변환하지 않는다.
컬럼 변환 시작은 (0,2) 컬럼부터 시작한다.
변환은 Y 방향으로 아래로 증가하며, 빈 공간이 발견될때까지 변환한다
뭔가 내용은 어려워 보이는데, 특별한 내용은 없다.
첫 컬럼에 변환 작업을 할 것인지 아닌지 판단하는 것이 끝이다.
여기 보이는 0,0 에 있는 Link를 달면 변환 작업을 하는 것이다.
이렇게 준비된 Excel을 아래 툴을 이용해서 추가한다.
이번엔 엑셀데이터를 타입으로 변환하는 기능이기 때문에 Field가 엑셀 파일의 접두어로 들어가 있어야 올바른 변환을 한다.
이 상태에서 데이터 추출 버튼을 클릭하게 되면, 내가 지정한 경로로 파일이 생성된다.
시트명이 LoadData 였기 때문에, FieldLoadData.cs 로 파일이 만들어지게 된다.
결과는 생각한대로 자동으로 만들어지는 EnumType 추출기가 만들어졌다.