Sto sviluppando un platform 2D con alcuni amici uni. Lo abbiamo basato sullo Starter Kit XNA Platformer che utilizza file .txt per memorizzare la mappa delle tessere. Anche se questo è semplice, non ci dà abbastanza controllo e flessibilità con la progettazione di livello. Alcuni esempi: per più livelli di contenuto sono necessari più file, ogni oggetto è fissato sulla griglia, non consente la rotazione di oggetti, un numero limitato di caratteri ecc. Quindi sto facendo delle ricerche su come archiviare i dati di livello e file della mappa.
Ciò riguarda solo l'archiviazione del file system delle mappe delle tessere, non la struttura dei dati che il gioco deve usare mentre è in esecuzione. La mappa dei riquadri viene caricata in un array 2D, quindi questa domanda riguarda l'origine da cui riempire l'array.
Ragionamento per DB: Dal mio punto di vista vedo meno ridondanza di dati utilizzando un database per archiviare i dati del riquadro. Le tessere nella stessa posizione x, y con le stesse caratteristiche possono essere riutilizzate da un livello all'altro. Sembra che sarebbe abbastanza semplice scrivere un metodo per recuperare tutti i riquadri utilizzati in un determinato livello dal database.
Ragionamento per JSON / XML: file modificabili visivamente, le modifiche possono essere monitorate tramite SVN molto più facilmente. Ma c'è un contenuto ripetuto.
Ci sono degli svantaggi (tempi di caricamento, tempi di accesso, memoria ecc.) Rispetto all'altro? E cosa viene comunemente usato nel settore?
Attualmente il file è simile al seguente:
....................
....................
....................
....................
....................
....................
....................
.........GGG........
.........###........
....................
....GGG.......GGG...
....###.......###...
....................
.1................X.
####################
1 - Punto iniziale giocatore, Uscita livello X,. - Spazio vuoto, # - Piattaforma, G - Gemma