SaveGame은 월드 상태를 데이터로 접었다가 다시 펼친다

저장은 객체 자체를 보관하는 일이 아니라 복원에 필요한 값만 추출해 슬롯과 월드 사이를 왕복시키는 흐름이다.

01

Collect

위치, HP, 인벤토리처럼 다시 만들 값만 고른다.

02

Serialize

SaveGame 객체의 원시 값과 작은 구조체로 복사한다.

03

Save Slot

Slot Name과 User Index를 키로 디스크에 기록한다.

04

Load Slot

슬롯을 읽고 저장 버전에 맞는 데이터인지 확인한다.

05

Apply

캐릭터와 월드 액터를 찾은 뒤 값을 다시 적용한다.

새 저장은 현재 월드에서 다시 Collect 단계로 시작

저장 범위

Actor 전체가 아니라 복원 가능한 데이터만 담는다.

버전 경계

구조 변경에 대비해 SaveVersion과 변환 규칙을 둔다.

실패 경계

슬롯 없음, 읽기 실패, 적용 실패를 서로 분리한다.