Estou criando um RPG de texto pequeno como uma maneira de praticar python e estou tendo uma pergunta sobre como carregar dados. O jogo é um jogo do oeste selvagem, embora isso não seja muito relevante, e eu preciso armazenar listas de armas e suas propriedades, bem como listas de personagens, cenários etc. Eu tenho uma boa idéia de como representar esses dados como classes, mas não sou tão claro sobre como armazenar e carregar os dados.
Minha principal pergunta gira em torno do relacionamento entre dados e classes. Eu li algumas postagens aqui no SE e muitas delas estão relacionadas ao armazenamento, por isso tenho boas informações lá.
Quando devo carregar esses dados? Por exemplo, o jogador escolhe várias armas quando o jogo começa. Devo carregar todas as armas e instanciar todos os objetos de armas nesse ponto? A classe de armas deve ter a capacidade de mostrar armas do banco de dados sem instancia-las?
Obrigado por qualquer ajuda.
fonte
obj->setWeaponType(WEAPON_TYPE_SHOTGUN)
quer que seja, e a arma se configura adequadamente. As métricas de desempenho de armas podem usar os valores do tipo como linha de base, mas permitem que o resultado final seja modificado pela instância. Esse tipo de coisas.Carregue tudo no início. Não complique seu programa dividindo dados entre a memória e o disco, a menos que seja necessário (por exemplo, quando houver muito para armazenar na memória de uma só vez).
O importante é entender a distinção entre dados que representam instâncias de um item e dados que representam o tipo de um item. Geralmente, várias instâncias da primeira compartilham uma instância comum da segunda.
fonte
Eu não estou muito familiarizado com python. O conselho geral que eu daria é simplificar. Você disse que já tem uma idéia de como representar os dados. Se você tiver algumas classes para os dados que deseja armazenar, poderá armazená-las em uma lista. Essa lista pode ser serializada para o disco onSave e desserializada onLoad. Para uma primeira implementação e se os dados não forem tão grandes, eu carregaria tudo no início do jogo e os salvaria em alguns momentos.
fonte
Você poderia usar SQLite . Usando o SQLite, você pode criar bancos de dados na memória e no disco rígido e não precisa de um DBMS gigante como o MySQL instalado.
fonte