나는 유니 친구들과 2D 플랫 포머를 개발 중입니다. 타일 맵을 저장하기 위해 .txt 파일을 사용하는 XNA Platformer 스타터 키트를 기반으로했습니다. 이것은 간단하지만 레벨 디자인으로 충분한 제어와 유연성을 제공하지는 않습니다. 몇 가지 예 : 여러 계층의 콘텐츠에 대해 여러 파일이 필요하고 각 개체는 그리드에 고정되어 있으며 개체 회전, 제한된 수의 문자 등을 허용하지 않습니다. 따라서 레벨 데이터를 저장하는 방법에 대한 연구를하고 있습니다 그리고지도 파일.
이것은 타일 맵의 파일 시스템 스토리지에만 해당되며 게임이 실행되는 동안 게임에서 사용되는 데이터 구조는 아닙니다. 타일 맵은 2D 배열에로드되므로이 질문은 배열을 채울 소스에 관한 것입니다.
DB에 대한 추론 : 필자의 관점에서 데이터베이스를 사용하여 타일 데이터를 저장하는 데이터의 중복성이 줄어 듭니다. 동일한 특성을 가진 동일한 x, y 위치의 타일을 레벨에서 레벨로 재사용 할 수 있습니다. 데이터베이스에서 특정 수준으로 사용되는 모든 타일을 검색하는 방법을 작성하는 것만 큼 간단합니다.
JSON / XML에 대한 추론 : 시각적으로 편집 가능한 파일 인 SVN을 통해 변경 내용을 훨씬 쉽게 추적 할 수 있습니다. 그러나 반복되는 내용이 있습니다.
다른 것에 비해 단점 (로드 시간, 액세스 시간, 메모리 등)이 있습니까? 그리고 업계에서 일반적으로 사용되는 것은 무엇입니까?
현재 파일은 다음과 같습니다.
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1-플레이어 시작 지점, X 레벨 종료. -빈 공간, #-플랫폼, G-보석