Penso che stia cercando un modo per salvare e caricare le mappe da un file, non un modo per archiviarle in memoria. (O forse ho frainteso?)
IMHO ci sono quattro percorsi per gestire questo problema.
Extremum: creare il proprio formato
È possibile creare i propri file di formato. Il modo più semplice sarebbe quello di scegliere un formato di file ampiamente utilizzato ed estensibile (come XML) poiché troverai moltissimi parser disponibili gratuitamente su Internet. (vai su applied-mathematics.net per un parser XML semplice ma completo).
Il problema qui è che dovrai creare il tuo editor di mappe. Senza dubbio questo è il modo "migliore" se vuoi imparare tantissime cose e avere un formato pulito. Ma devi anche considerare il tempo che dovrai dedicare alla creazione di tutti questi strumenti.
Extremum: Utilizzare il formato di un altro gioco/strumento
Si può anche scegliere di utilizzare il formato di file di un gioco esistente, e retrò ingegnere (o semplicemente utilizzare il formato di un gioco open source , come Quake).
Il problema qui è che erediterai dai limiti del formato che hai scelto. Ma il tempo di sviluppo è abbastanza ridotto, hai solo bisogno di trovare un modo per caricare questi formati.
Tradeoff 1: Disaccoppiare geometria dalla meta dati
Si può anche scegliere di prendere le cose che avete bisogno di un formato esistente, e per memorizzare i metadati altrove.
Per esempio si potrebbe usare creare un formato che sarebbe simile:
<?xml version="1.0" encoding="UTF-8"?>
<map>
<name>MyMap</map>
<geometry type="bsp">my_map.bsp</geometry>
<spawn id="1">
<monster type="1" spread="5" />
</spawn>
</map>
Qui si ha il meglio dei due mondi. È possibile progettare la mappa in qualsiasi editor .bsp (3DSmax, Blender) e memorizzare i dati necessari in XML.
Medio 2: Adattare di altri formati per le vostre esigenze
L'idea qui è solo per creare il proprio formato unificato, e creare gli esportatori per i redattori ampiamente utilizzati. Puoi ad esempio scrivere script di esportazione per Blender, che genererebbero file per il tuo formato personale.
Solo qualche altro consiglio se ho frainteso e stavi cercando l'archiviazione di memoria delle tue mappe. (Nel caso chieda e io completerò la mia risposta :))
- Cerca Quad/Octrees. È un modo per tagliare la tua mappa in quad/cubi. Quindi sarai in grado di implementare la ricerca veloce in queste strutture e visualizzare solo le parti visualizzabili delle mappe, LOD, ecc.
- Fissa il caricamento della mappa scegliendo un formato file vicino al layout di memoria della mappa.
- Combina più paradigmi di memorizzazione della mappa. Le mappe altezza sono carine per le mappe esterne di grandi dimensioni, ma sono molto limitate (specialmente per le mappe multilivello). Potresti usare heightmaps per il pavimento, e memorizzare rocce/fiori è quadruple, ecc.
Non dicendo che siamo inutili qui, ma probabilmente otterresti una risposta più mirata @ forum http: //gamedev.net . – ryeguy
Ci ho provato e nessuno ha risposto. Il tempo di risposta qui è molto meglio rispetto a gamedev. Almeno per le mie domande ... Idk, forse a loro non piaccio perché a volte faccio domande semplici. Oh bene ... – Robbie
@Robbie: Controllo Gamedev.net ogni giorno e non ricordo di aver visto una domanda come questa. Dove l'hai postato? – Kylotan