jsg0912 / beat_warrior

0 stars 0 forks source link

Game Save Strategy 방식 #14

Open Nights-SDH opened 1 month ago

Nights-SDH commented 1 month ago

[기본 틀]

"Class 통째"로 직렬화(Seriallization)(게임 세이브파일 저장할 수 있는 형태) 직렬화 값을 세이브 파일(Ver1.10)로 사용하는 방식 => 문제점: Class 구조가 Ver1.11에서 바뀌었다. 지난법 세이브 파일에 있는 CLass 구조는 복원을 했을 때 Ver1.11에 안맞아서 세이브 파일 깨짐

저장방식: 레고블럭들로 쪼개서 (ex.요소들을 JSON 형식으로) 저장을 해야함 로드방식: 블럭들을 조합해서 완성품을 만드는식

나중에 뭐가 새로 추가되거나 삭제가되도, JSON 정보들 중에서 필요없는건 갖다 버리면되고 새로 추가된거는 과거 JSON 정보에 마찬가지로 당연히 없겠지만 Default 대응전략을 짜서 값을 있다 치고 Class하고 Save 파일은 Update한다.

Nights-SDH commented 1 month ago

간단 예시가 궁굼하면 MonsterList.cs의 GetMonsterFromJSON() 함수와 MonsterJson.cs 파일을 보면 된다.

jsg0912 commented 1 month ago

Game Save 내용 세이브 하는 시점 별 저장 내용 :

게임 오버 시, 스테이지 클리어: 현재 챕터/스테이지 영혼 수 소지한 특성/장착한 특성 현제 체력 {영혼 수, 소지한 특성을 제외한 나머지는 저장 전 초기화}

셋팅 창을 킬 때: 그래픽, 오디오, 키설정

Class 분류 : PlayData : 영혼 수 소지한 특성

InGameData : 현재 챕터/스테이지 장착한 특성 현제 체력

SettingData : 그래픽 오디오 키설정

GameData : PlayData InGameData SettingData

Nights-SDH commented 1 month ago

@Nights-SDH @dlwjdeo @mingku87 다같이 보면서 더 추가할 내용 있을지 고민해 보기

Nights-SDH commented 1 month ago

그래픽 친구들도 전체회의에서 의견내주기로 함

Nights-SDH commented 1 month ago

저장하는 전략? Idea) 저장파일 네임: [게임이름+시간].save 최근 10개까지 남는 식으로 하면 좋을 것 같음

Nights-SDH commented 1 month ago

Tip: Save 파일 저장 위치 찾기 C:\Users\sdwqa\AppData\LocalLow\???\???