[Unity] 게임 데이터는 어떻게 관리할 것인가.
게임의 데이터를 관리하는 방법은 유지 보수 및 기획서의 대응을 위한 필수 요소
: 코드에 데이터가 하드코딩되어 있다면, 앱 업데이트 외에는 패치가 불가능
: 밸런싱 조절 시 프로그래머에게 계속 요청한다면 쌍방간의 업무 과부하
프로젝트 진행 시에 데이터 관리는 여러가지 방향이 있다.
▶ XML
: 마크업 언어로 태그 등을 이용하여 데이터를 기술한 포맷
<?xml version="1.0"?>
<Tests xmlns="http://www.adatum.com">
<Test TestId="0001" TestType="CMD">
<Name>Convert number to string</Name>
<CommandLine>Examp1.EXE</CommandLine>
<Input>1</Input>
<Output>One</Output>
</Test>
<Test TestId="0002" TestType="CMD">
<Name>Find succeeding characters</Name>
<CommandLine>Examp2.EXE</CommandLine>
<Input>abc</Input>
<Output>def</Output>
</Test>
</Tests>
◈ 장점 : Json에 비해 데이터의 표현이 명확하고, 구조적임. 다른 시스템 간 데이터 교환이 용이
◈ 단점 : Json에 비해 데이터의 크기가 크고, 상대적으로 느림
▶ JSON
: 속성 - 값 쌍 또는 키 - 값으로 이루어진 데이터 포맷
wiki 예제
{
"이름": "홍길동",
"나이": 25,
"성별": "여",
"주소": "서울특별시 양천구 목동",
"특기": ["농구", "도술"],
"가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},
"회사": "경기 수원시 팔달구 우만동"
}
◈ 장점 : 사람과 기계 모두 읽고 쓰기 편하고, 다른 시스템 간 데이터 교환이 용이. xml보다 크기가 작고 속도가 빠름
◈ 단점 : 문법 오류에 민감하고 xml에 비해 데이터 타입을 명시적으로 나타내기 어려움
▶ CSV
: "," 로 데이터를 구분하는 방식
이름, 체력, 공격력
엘프, 100, 50
오크, 200, 30
◈ 장점 : 데이터의 크기가 작고, 소프트웨어적으로 처리하기 쉬움
◈ 단점 : 데이터의 ","가 들어가는 것은 사용할 수 없고, 데이터의 양이 많아지면 csv 파일만 읽었을 때 가독성이 떨어짐
▶ 자체 데이터 포맷
: 기획 파트와 개발 파트 사이에 특정한 룰을 가진 파일 포맷을 만들고 해당 포맷으로 기획 데이터를 작성하는 방법
▣ 데이터 포맷을 어떻게 할지에 대해서는 기획 파트와 개발 파트의 조율이 중요
▣ 기획에서는 주로 엑셀을 통해 기획 데이터를 작성하기 때문에, 엑셀에서 데이터 포맷으로 변환할 수 있는 툴이 필요
▣ 기획 데이터는 암호화를 통해 보안을 유지할 수 있어야 함. 앱을 디컴파일해서 나온다면 큰 문제가 됨
참고자료
https://ko.wikipedia.org/wiki/JSON