2013-03-25 1 views
0

어제 제가 비디오 게임을 할 때 갑자기 저에게 질문이 생겼습니다. 게임 저장 메커니즘이 어떻게 구현 되었습니까?개발자가 신 클래스/객체를 만들지 않도록 게임 저장을 어떻게 구현합니까?

대부분 저장하려면 게임의 모든 데이터가 필요합니다. 이 경우 프로그래머가 모든 단일 게임 데이터를 참조하는 신 오브젝트를 만들어야합니까?

게임 개발 자체보다는 소프트웨어 디자인에 기반한 대답을 원하기 때문에 게임 개발보다는 여기에 질문을 게시합니다.

+1

당신이 바라고 무엇을 내 대답 커버 알고 않습니다 :-) 걱정 가능성이 바로 부품 - 기본적으로

, 당신은 실제로 세계 국가의 모든 비트를 저장할 필요가 없습니다? –

답변

1

중요한 것은 중요한 데이터 만 저장하면된다는 것입니다. 예를 들어, 여기에는 인벤토리 내용 (아마도 ID와 수량의 목록), 플레이어 위치 및 주요 퀘스트 비트가 포함될 수 있습니다 (금지 된 냉장고에서 매혹적인 셀러리를 이미 가져 왔습니까?). 이것은 Memento 패턴과 같이 구현 될 수 있지만, 실제로는 일반적으로 디스크에 직렬화되는 구조체 (또는 동등한 것) 일뿐입니다.

레벨 로더는 일반적으로 전 세계에서 항목/엔티티 배치를 처리하므로 전 세계 상태를 저장할 필요가 없습니다. 주의 깊게 살펴보면 저장을 복원하면 세상의 모든 것의 정확한 상태를 복원 할 필요는 없다는 사실을 알게 될 것입니다. 이것은 게임에서 종종 사용하는 일종의 심리학 해킹입니다.

세이브 파일에 대한 다른 고려 사항에는 세이브 파일 조작을 감지하는 해시 또는 체크섬이 포함되어 있거나 게임로드 후 동일한 일련의 이벤트/엔티티를 만드는 데 런타임이 사용하는 시드 값을 저장할 수 있습니다. 플레이어가

관련 문제