Je crée un petit RPG de texte comme un moyen de pratiquer le python et je rencontre une question sur la façon de charger les données. Le jeu est un jeu du Far West, bien que ce ne soit pas trop pertinent, et je dois stocker des listes d'armes et de leurs propriétés, ainsi que des listes de personnages, de scénarios, etc. J'ai une bonne idée de la façon de représenter ces données en tant que classes, mais je ne suis pas aussi clair sur la façon de stocker et de charger les données.
Ma question principale tourne autour de la relation entre les données et les classes. J'ai lu quelques articles ici sur SE et beaucoup d'entre eux concernent le stockage, j'ai donc de bonnes informations là-bas.
Quand dois-je charger ces données? Par exemple, le joueur choisit parmi plusieurs armes au début du jeu. Dois-je charger toutes les armes et instancier tous les objets d'armes à ce stade? La classe d'armes devrait-elle avoir la possibilité d'afficher les armes de la base de données sans les instancier?
Merci pour toute aide.
la source
obj->setWeaponType(WEAPON_TYPE_SHOTGUN)
quoi que ce soit, et l'arme se configure de manière appropriée. Les mesures de performances des armes peuvent utiliser les valeurs du type comme ligne de base mais permettre au résultat final d'être modifié par l'instance. Ce genre de chose.Chargez tout au début. Ne compliquez pas votre programme en divisant les données entre la mémoire et le disque, sauf si vous y êtes obligé (par exemple, quand il y a trop de contenu en mémoire à la fois).
L'important est de comprendre la distinction entre les données qui représentent des instances d'un élément et les données qui représentent le type d'un élément. Généralement, plusieurs instances de la première partagent une instance commune de la seconde.
la source
Je ne connais pas très bien le python. Le conseil général que je donnerais est de rester simple. Vous avez dit que vous aviez déjà une idée de la façon de représenter les données. Si vous avez des classes pour les données que vous souhaitez stocker, vous pouvez les stocker dans une liste. Cette liste peut ensuite être sérialisée sur le disque onSave et désérialisée onLoad. Pour une première implémentation et si les données ne sont pas si grandes, je chargerais tout au début du jeu et l'enregistrerais à certains moments donnés.
la source
Vous pouvez utiliser SQLite . En utilisant SQLite, vous pouvez créer des bases de données en mémoire et sur le disque dur, et vous n'avez pas besoin d'installer un SGBD géant comme MySQL.
la source