Estoy considerando cómo implementar un juego basado en componentes, ya que parece ser lo mejor y me gusta la idea de un diseño tan flexible. Una de las características de dicho diseño es que agregar cosas nuevas al juego puede hacerse a través de datos, a menudo presentados como carga de contenido a través de archivos de texto como XML. Esto tiene la ventaja de ser legible y fácilmente editable en cualquier editor de texto. En el lado negativo, el texto puede ser más lento de manejar y debe administrar una gran colección de archivos de datos. Formatos similares basados en texto como JSON o archivos de configuración tendrían beneficios similares.
Por otro lado, hay pequeñas bases de datos portátiles como SQLite o Tokyo Cabinet. Si bien no son directamente legibles para los humanos, estos archivos son fáciles de interactuar, e imagino que de todos modos sería preferible algún tipo de herramienta de edición para el diseño de contenido del juego. El uso de una base de datos permite un almacenamiento consistente de información de configuración y una recuperación fácil. También puede serializar datos en una base de datos para guardar juegos.
En cuanto al rendimiento, creo que generalmente XML es más rápido para archivos pequeños, pero una base de datos escala mejor a grandes cantidades de datos. Me imagino que cualquier juego real tendrá muchos objetos de juego.
Entonces la pregunta: ¿Cuál es el enfoque preferible? Me estoy inclinando hacia la base de datos, pero quiero saber si hay errores ocultos o ventajas realmente fuertes para los archivos de texto. O si hay otras alternativas además de estas (¿serializar a formato binario, supongo?)