인프런 커뮤니티 질문&답변

LEETO님의 프로필 이미지
LEETO

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Data Manager #1

아이템 데이터베이스

작성

·

883

3

인벤토리에 있는 아이템과 아이템의 능력치 같은 경우에도 json으로 많이 저장을 하나요??

답변 2

4

Rookiss님의 프로필 이미지
Rookiss
지식공유자

[변하지 않는 고정 데이터]는 데이터시트 (json/xml)로 관리하고
[유저마다 다른 데이터]는 데이터베이스(MySQL, MSSQL 등)에 저장합니다.

변하지 않는 데이터 함은 예를 들어 아이템의 고정 능력치를 예로 들 수 있겠네요.
롤에서 [무한의 대검]이라는 아이템의 옵션이
가격 3800, 공격력80, 치명타 25% 이라고 가정하면,
모든 [무한의 대검]은 다 동일한 옵션을 가질테니,
이를 일일히 따로 저장하기 보단 [무한의 대검]이라는 무기의 정보를 json으로 관리하게 됩니다.

예)
{
 "itemTemplateId": "1",
 "name": "무한의대검",
 "attack": "80"
}

그러나 MMO에서 모든 유저가 다 동일한 아이템을 들고 있는건 아니겠죠.
그래서 유저마다 인벤토리에 어떤 아이템을 소지하고 있는지를
DB의 Item 테이블에서 따로 관리를 하게 됩니다.
ex) userDbId / itemDbId / itemTemplateId

물론 그렇다고 세부적인 공격력 등의 수치까지 저장할 필요는 없고,
DB에 있는 정보에 데이터시트 번호도 같이 기입해
세부 정보는 데이터시트를 참조하게끔 만들면 됩니다.

0

LEETO님의 프로필 이미지
LEETO
질문자

답변 감사합니다!!

LEETO님의 프로필 이미지
LEETO

작성한 질문수

질문하기