Estou pensando em como implementar um jogo baseado em componentes, pois isso parece ser bom e eu gosto da ideia de um design tão flexível. Uma das características desse design é que a adição de coisas novas ao jogo pode ser feita por meio de dados, geralmente apresentados como carregamento de conteúdo por meio de arquivos de texto como XML. Isso tem a vantagem de ser legível por humanos e facilmente editável em qualquer editor de texto. O lado negativo é que o texto pode ser mais lento, e você precisa gerenciar uma grande coleção de arquivos de dados. Formatos baseados em texto semelhantes, como JSON ou arquivos de configuração, teriam benefícios semelhantes.
Por outro lado, existem bancos de dados pequenos e portáteis, como o SQLite ou o Tokyo Cabinet. Embora não sejam diretamente legíveis por humanos, esses arquivos são fáceis de interagir, e eu imagino que algum tipo de ferramenta de edição seja preferível para o design do conteúdo do jogo. O uso de um banco de dados permite um armazenamento consistente de informações de configuração e fácil recuperação. Você também pode serializar dados em um banco de dados para salvar jogos.
Em termos de desempenho, acho que geralmente o XML é mais rápido para arquivos pequenos, mas um banco de dados é dimensionado melhor para grandes quantidades de dados. Eu imagino que qualquer jogo real terá muitos objetos de jogo.
Então a pergunta: qual é a abordagem preferível? Estou inclinado para o banco de dados, mas quero saber se existem armadilhas ocultas ou vantagens muito fortes nos arquivos de texto. Ou se existem outras alternativas além destas (serializar para o formato binário, eu acho?)