Estoy creando un pequeño juego de rol de texto como una forma de practicar Python y me encuentro con una pregunta sobre cómo cargar datos. El juego es un juego del salvaje oeste, aunque eso no es demasiado relevante, y necesito almacenar listas de armas y sus propiedades, así como listas de personajes, escenarios, etc. Tengo una buena idea de cómo representar estos datos como clases, pero no estoy tan claro sobre cómo almacenar y cargar los datos.
Mi pregunta principal gira en torno a la relación entre datos y clases. He leído algunas publicaciones aquí en SE y muchas de ellas están relacionadas con el almacenamiento, por lo que tengo buena información allí.
¿Cuándo debo cargar esos datos? Por ejemplo, el jugador elige entre varias armas cuando comienza el juego. ¿Debo cargar todas las armas e instanciar todos los objetos de armas en ese punto? ¿Debería la clase de armas tener la capacidad de mostrar armas de la base de datos sin crear instancias?
Gracias por cualquier ayuda.
fuente
obj->setWeaponType(WEAPON_TYPE_SHOTGUN)
o lo que sea, y el arma se configura de manera apropiada. Las métricas de rendimiento de las armas pueden usar los valores del tipo como línea de base, pero la instancia puede modificar el resultado final. Esa clase de cosas.Cargue todo al inicio. No complique su programa dividiendo los datos entre la memoria y el disco a menos que sea necesario (por ejemplo, cuando hay demasiado para guardar en la memoria a la vez).
Lo importante es comprender la distinción entre los datos que representan instancias de un elemento y los datos que representan el tipo de elemento. Generalmente, varias instancias de la primera comparten una instancia común de la segunda.
fuente
No estoy muy familiarizado con Python. El consejo general que daría es que sea simple. Dijiste que ya tenías una idea de cómo representar los datos. Si tiene algunas clases para los datos que desea almacenar, puede almacenarlos en una lista. Esa lista se puede serializar en el disco onSave y deserialized onLoad. Para una primera implementación y si los datos no son tan grandes, cargaría todo al inicio del juego y lo guardaría en algunos momentos.
fuente
Podrías usar SQLite . Con SQLite, puede crear bases de datos en la memoria y en el disco duro, y no necesita un DBMS gigante como MySQL instalado.
fuente