Tengo un juego 2D escrito en C ++ usando SFML. Quiero hacer que el juego sea expandible de tal manera que se pueda agregar fácilmente contenido como elementos o entidades agregando una línea / entrada / fila a un archivo o base de datos.
Estoy buscando algo que no necesita compilarse en el programa, sino que puede leerse y escribirse en tiempo de ejecución. ¿Cuándo sería apropiado usar una base de datos?
Respuestas:
Solo use una base de datos si necesita una base de datos. Es decir:
Si los datos de tu juego satisfacen alguna de estas condiciones, podrías beneficiarte al usar una base de datos. Tenga en cuenta que estos no son muy comunes, y probablemente no satisfaga ninguno de ellos. Si lo hace, elegiría SQLite o algo con una idea similar de no requerir un servidor en ejecución y ser solo una biblioteca.
De lo contrario, use archivos y cargue datos en la memoria al inicio. Si quieres que el juego sea modificable, carga estos datos tanto del directorio de tu juego como de los directorios de los mods y define cómo se podría fusionar la información conflictiva.
También tenga en cuenta que, si se hace uso de una base de datos, que podría beneficiar tanto a usted como a los desarrolladores de mods' todavía utilizar archivos para leer los datos iniciales y construir la base de datos sólo cuando el juego. A menos que el tamaño potencial de esta base de datos sea enorme (es decir, más de unas pocas docenas de MiB), es posible que desee utilizar una base de datos en memoria, que es posible en SQLite especificando
:memory:
como la ruta de la base de datos .fuente
SQLite
, incluso si sus necesidades NO son "complejas" o "enormes". En realidad, hay muchas razones por las que con algo pequeño e incrustado como ese, puede beneficiarse enormemente de tener una base de datos a su alcance.Realmente me gusta MongoDB para el desarrollo de juegos, tiene un rendimiento realmente bueno y es realmente flexible, fácil de usar y basado en json.
Puede agregar cualquier campo que necesite en cualquier colección debido a que es NoSQL Arch, por lo que encaja muy bien en cualquier entorno "dinámico" como los juegos.
Dale un vistazo .
Si está desarrollando algún tipo de juego de estrategia basado en MMO Turn, probablemente debería leer sobre CouchDB , es una base de datos NoSQL que tiene un sistema de versiones realmente bueno.
fuente
CastleDB es una buena opción porque es simplemente un editor que luego convierte una base de datos en un archivo JSON. He visto muchas respuestas diciendo que un archivo de texto sin formato es el mejor, por lo que CastleDB es probablemente el mejor de ambos mundos.
fuente