Salut,
Je cherche à réaliser un petit jeu en Java pour m'entraîner. Le jeu se présente sous la forme d'un jeu en lignes de commandes dans le style "Livres dont vous êtes le héros" pour ceux qui connaissent ou encore l'indémodable "Donjons & Dragons". L'univers du jeu est entièrement textuel (c'est l'imaginaire du joueur et la qualité de la rédaction qui font la différence). Les interactions avec l'univers se font à l'aide de multiples commandes comme "regarder", "écouter", "aller au nord", etc... Pour ce qui est de la gestion des interactions, ça, c'est pas un problème, ce qui me bloque c'est l'accès aux données du jeu.
En effet, il y a beaucoup de données à sauvegarder et je voudrais avoir des conseils sur comment faire pour gérer convenablement l'accès aux données du jeu.
Pour donner un ordre d'idée des données à stocker voici ce que je pense faire. Au lancement du jeu le joueur peut se créer une sauvegarde (une instance unique du jeu), cela va donc créer un monde, qui contiendra des régions, qui contiendront des zones (par exemple un donjon, une maison, une grotte, etc...), qui contiendront des salles (zone indivisible où se feront toutes les actions du joueur). Chacune de ces salles possédera une description précise, ses salles voisines, des objets emportables ou non, des pnj, des ennemis, etc... Il sera possible de créer de façon générique tous les objets et les différents personnages du jeu, j'entends par là que tous ces "objets" seront écris une seule fois et je me contenterai de faire "pointer" mon environnement vers ces objets en cas de besoin. Bon voilà, pas la peine de décrire en détails.
Venons en au fait, je voudrais avoir des conseils sur la façon de stocker et d'accéder à ces données. Pour l'instant j'ai envisagé deux hypothèses :
1 - J'ai réalisé un Modèle Conceptuel (MCD) des données à représenter et je me disais que ça serait pas mal de créer une base de données pour l'application (qui tournera en local). Je pense que ce serait l'idéal mais le problème c'est que je ne sais pas quelle SGBD choisir, sachant que si je prend par exemple mysql il me faudra un serveur, j'ai pensé également à SQLite mais au premier abord il m'a vraiment l'air limité (d'où le "lite" ). Donc si vous pensez qu'une base de données s'impose j'aurais vraiment besoin de conseils.
2 - Passer par des fichiers XML. L'avantage est que c'est très facile à réaliser une fois la grammaire mise au point mais le problème c'est que la lecture/écriture me paraît être vachement lourde. Par exemple si je dois charger une salle, je dois parser un fichier en entier, et si je dois prendre un objet il faut supprimer une ligne dans le fichier et le ré-écrire, donc je trouve ça un peu "sale", me trompe-je ? ^^
3 - A vous de me dire si vous voyez d'autres solutions
Conclusion, à votre avis qu'est-ce que je devrais et comment le faire ??
Merci d'avance,
AwaX
Partager