IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Sauvegarde d'objets préfabriqué


Sujet :

Java

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2014
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 227
    Points : 162
    Points
    162
    Par défaut Sauvegarde d'objets préfabriqué
    Bonjour à tous, dans le cadre d'un projet de fin de BTS, je développe un jeu (assez grand pour un travail solo) avec une méthode de conception pas tout à fait normalisée, un ECS. Je bosse dessus depuis ~1 mois, j'ai déjà développé les bases les plus importantes : rendering, physic update, ai, ihm,....
    Mon jeu est un terraria/minecraft like mélangé au style idle game. Pour générer un bloc cela se résume en ces quelques lignes de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    EntitySystem es = new EntitySystem();   //Système qui gère l'ajout/ la suppression d'entités, l'ajout/ la suppression d'un ou de plusieurs composants
    Entity e = null;
    ...
     
    e = EntityFactory.create();
    this.es.put(e);
    this.es.attach(e, new CPosition(30,30));
    this.es.attach(e, new CSize(64,64));
    this.es.attach(e, new CTexture(ObjectTexture.GRASS));
    this.es.attach(e, new CEventable());
    this.es.attach(e, new CPhysic(PProcess.AUTO));
    this.es.attach(e, new CStat(5,5));
    this.es.attach(e, new CRespawnable());
    Seulement voilà, j'aimerais stocker toutes les caractéristiques de chaque bloc dans un fichier, mais je ne vois pas ce qui est le mieux et surtout le plus optimisé...
    J'ai pensé à :
    - Un fichier XML pour sauvegarder les caractéristiques de chaque blocs
    - Un fichier json -
    - Une BDD mySql
    - Un csv
    - Sérialiser directement une classe de "configuration" de bloc

    Bref, je ne sais pas trop quelle solution choisir même si je pense que le mieux est un fichier JSON ou un XML.

    A mon avis la BDD sera une perte de vitesse de chargement (et d'utilisateur pour ce qui préfère les jeux hors-lignes). La sérialisation, c'est bien mais ça demande à devoir compiler le projet à chaque modif de bloc et le csv c'est un peu... sale ?

    Merci de bien vouloir m'aiguiller

  2. #2
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Bonjour,

    Il s'agit de persister des données de configuration de base ou de certaines parties en cours ?

    Entre json et csv, ça dépend du langage de programmation et des facilités qu'il offre pour le json, qui doit être interprété. XML est plutôt "verbeux" en comparaison.
    Le plus simple à manipuler, par programme ou par édition texte, est clairement le CSV. En quoi serait-ce "sale" ?

    En tout cas, oui, une base MySQL ou autre, c'est un entrepôt pour stocker un classeur... Au pire, SQLite est à étudier si tu tiens à ce type de solution.

    Il faut replacer ça dans l'ensemble du projet :
    - Pour un fonctionnement local, pas de BDD nécessitant un serveur complémentaire à l'application.
    - Quel est le langage de programmation et quelles APIs sont disponibles (nativement ou autres, mais éprouvées) pour manipuler les types de persistances évoquées ?
    - Quel est le volume des données ? la fréquence d'écriture et de lecture ? Y a t-il plusieurs utilisateurs simultanés sur une instance d'application pouvant modifier ces données ?

    [EDIT] En relisant le sujet, je vois qu'il ne devrait pas y avoir de modifications, s'agissant de structures prédéfinies. Définitivement pas de BDD dans ce cas.


Discussions similaires

  1. Réponses: 14
    Dernier message: 24/07/2006, 12h09
  2. [POO] sauvegarde d'objets et perte des methodes
    Par Matth_S dans le forum Langage
    Réponses: 3
    Dernier message: 23/12/2005, 15h47
  3. sauvegarder un objet au format .x
    Par sylvain_bos dans le forum DirectX
    Réponses: 3
    Dernier message: 19/08/2004, 23h05
  4. [arbre] Sauvegarder un objet dans un fichier
    Par Guigui_ dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 00h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo