Sto pensando a come implementare un gioco basato su componenti, poiché sembra essere la cosa più interessante e mi piace l'idea di un design così flessibile. Una delle caratteristiche di tale progetto è che l'aggiunta di nuove cose al gioco può essere fatta attraverso i dati, spesso presentati come caricamento di contenuti tramite file di testo come XML. Questo ha il vantaggio di essere leggibile e facilmente modificabile in qualsiasi editor di testo. Il rovescio della medaglia, il testo può essere più lento da gestire e devi gestire una grande raccolta di file di dati. Formati simili basati su testo come file JSON o di configurazione avrebbero vantaggi simili.
Dall'altro lato, ci sono piccoli database portatili come SQLite o Tokyo Cabinet. Sebbene non siano leggibili direttamente dall'uomo, questi file sono facili da interfacciare e immagino che sarebbe comunque preferibile un qualche tipo di strumento di modifica per la progettazione dei contenuti di gioco. L'uso di un DB consente una memorizzazione coerente delle informazioni di configurazione e un facile recupero. È possibile serializzare i dati in un DB anche per salvare i giochi.
Per quanto riguarda le prestazioni, penso che in genere XML sia più veloce per file di piccole dimensioni, ma un database si adatta meglio a grandi quantità di dati. Immagino che qualsiasi gioco reale avrà un sacco di oggetti di gioco.
Quindi la domanda: qual è l'approccio preferibile? Mi sto inclinando verso il DB, ma voglio sapere se ci sono insidie nascoste o vantaggi reali per i file di testo. O se ci sono altre alternative oltre a queste (serializzare in formato binario immagino?)