R&D

[Unity] 게임 데이터는 어떻게 관리할 것인가.

EveryDay.DevUp 2020. 5. 6. 23:28

 

 

게임의 데이터를 관리하는 방법은 유지 보수 및 기획서의 대응을 위한 필수 요소

: 코드에 데이터가 하드코딩되어 있다면, 앱 업데이트 외에는 패치가 불가능

: 밸런싱 조절 시 프로그래머에게 계속 요청한다면 쌍방간의 업무 과부하 

프로젝트 진행 시에 데이터 관리는 여러가지 방향이 있다.

▶ 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

 

JSON - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. JSON(제이슨[1], JavaScript Object Notation)은 속성-값 쌍( attribute–value pairs and array data types (or any other serializable value)) 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJA

ko.wikipedia.org

https://namu.wiki/w/CSV

 

CSV - 나무위키

컴퓨터 용어로, 표 형태의 데이터를 저장하는 파일 형식이다. 주로 쓰이는 확장자는 .csv이며 MIME 형식은 text/csv이다. 한글로 '씨에스브이'라고 읽는다. 한 줄이 한 개의 행에 해당하며, 열 사이에는 쉼표(,)를 넣어 구분한다. 예를 들어 학생기록부에 아래와 같은 데이터가 있다고 하자. 이름생년월일국어 점수영어 점수수학 점수홍길동1992년7월17일100점90점70점희동이1992년4월3일90점100점100점 위의 데이터를 CSV 형식으로 저장하

namu.wiki