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

C# Discussion :

Systems de sauvegarde?


Sujet :

C#

  1. #1
    Membre actif
    Avatar de Thomas404
    Homme Profil pro
    dev
    Inscrit en
    Novembre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Novembre 2009
    Messages : 99
    Points : 234
    Points
    234
    Par défaut Systems de sauvegarde?
    Bonjour,

    voila depuis un temps j'apprend Unity et donc C#, dans le but de faire un jeu (j'aimerais faire un "petit" rpg), sauf que voila une question que je me pose... Conceptuellement parlant, comment on fait pour faire une sauvegarde? Sachant que c'est différent du web et donc pas de base de données, alors je suppose que certains me diraient qu'il faut le stocker les infos (emplacement, objets, nom du perso,xp ,stats etc) dans un txt, mais je ne suis pas sur que ce soit la bonne approche et ca faciliterais la triche.

    Voila, quelqu'un pour m'aider?

    D'ailleurs cette question ne touche pas que les jeux-vidéos mais tous les logiciels que l'ont peut écrire.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2004
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 304
    Points : 405
    Points
    405
    S'il n'y a pas de Solution, c'est qu'il n'y a pas de Problème.
    ----------------------------------------------------------------------------------------
    Pour se protéger, un bon préservatif pour votre PC : AntiVir et SpyBot - Search & Destroy

  3. #3
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Bonjour,

    Il y a plusieurs méthodes :

    Binaire manuel

    Tu inscris les données que tu souhaites sauvegarder dans un fichier au format de ton choix. Les valeurs sont sous format binaire donc c'est inexploitable pour le commun des mortels.
    C'est bien mieux qu'un .txt car il va falloir, pour tricher ,analyser le fichier puis le code et donc selon ton jeu, ce sera plus ou moins difficile. C'est un peu long car il faut écrire chaque donnée de chaque classe séparément.

    Sérialisation

    Tu balances les objets que tu as en mémoire (Joueurs, objets, etc ...) tels quels dans un fichier, que ce soit en binaire ou en XML par exemple. Evidemment, quelqu'un qui n'est pas trop bête saura manipuler tes données dans un fichier .xml.

    Evidemment, il convient de choisir ce que tu veux sérialiser ou non dans tes classes, car il y a des variables volatiles ou/et temporaires que tu n'as pas envie de sauvegarder, tel que la position exacte d'un joueur ou sa frame d'animation.

    Conclusion

    Laquelle choisir pour le coup ? Et bien si tu as des classes ou tu as peu de chose a sauvegarder, fait le manuellement, et celles ou tu dois tout enregistrer (typiquement des classes de données comme les maps, items, etc ...) sérialise le tout. Dans un cas tu dois préciser ce que tu veux sauvegarder et dans l'autre ce que tu ne veux pas. Rien ne t'empêche d'utiliser les 2. Et puis Unity a surement quelque chose pour faciliter la sauvegarde.

    Pour finir, sache que la triche dans un jeu solo ce n'est pas grave, il suffit juste de ne pas rendre la triche trop facile non plus pour les joueurs fainéants. Il n'empêche qu'avec un logiciel tel que Cheat Engine par exemple, il sera bien plus facile de manipuler la mémoire pour y mettre des valeurs fantaisistes, que ton jeu finira par sauvegarder de toute façon .

  4. #4
    Membre actif
    Avatar de Thomas404
    Homme Profil pro
    dev
    Inscrit en
    Novembre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Novembre 2009
    Messages : 99
    Points : 234
    Points
    234
    Par défaut
    Super, merci pour vos réponses complete

  5. #5
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 541
    Points
    10 541
    Billets dans le blog
    21
    Par défaut
    Pour bien limiter la triche, il suffit de chiffrer la sauvegarde. Elle est ainsi inexploitable sans la clé de déchiffrement.
    Et là, la sauvegarde en clair peut être sous n'importe quelle forme (texte brut, XML, JSON, binaire, ...)
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  6. #6
    Membre actif
    Avatar de Thomas404
    Homme Profil pro
    dev
    Inscrit en
    Novembre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Novembre 2009
    Messages : 99
    Points : 234
    Points
    234
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Pour bien limiter la triche, il suffit de chiffrer la sauvegarde. Elle est ainsi inexploitable sans la clé de déchiffrement.
    Et là, la sauvegarde en clair peut être sous n'importe quelle forme (texte brut, XML, JSON, binaire, ...)
    D'accord j'en prend note, merci

  7. #7
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Accessoirement, la sérialisation peut être surchargée, pour chiffrer soit-même (et idem pour relire).

    Comme ça on peut faire du binaire illisible, sans que le code ne devienne trop complexe.
    Et accessoirement, on n'a besoin de surcharger que les classes qui contienne des données "sensibles", les autres pouvait être sérialisée dans leur format natif (et donc lisible).
    On ne jouit bien que de ce qu’on partage.

  8. #8
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 024
    Points
    2 024
    Par défaut
    Citation Envoyé par Thomas404 Voir le message
    Sachant que c'est différent du web et donc pas de base de données.

    Cette affirmation m'a un peu fait tiquer.

    Toutes les solutions qui t'ont été proposées sont bonnes, surtout si tu es en mode "apprentissage" et que tu ne veux pas te prendre la tête avec 25 problèmes à la fois.

    Mais rien n'empêche d'avoir une base de données, même en dehors du web et même dans le cadre d'un programme mono-poste et que l'on veux facilement redistribuable comme un jeu.
    Il est tout à fait possible d'utiliser une base de donnée embarqués : il en existe beaucoup ; plus ou moins puissantes.

    La plus connue d'entre elles reste sqlite.
    C'est très basic mais largement suffisant pour tout un tas de problématique et tu trouvera des exemples à foison sur internet.

    Non seulement tu pourrais avoir une base pour les sauvegardes, mais aussi une autre pour les éléments statiques de ton jeu (modélisation de l’environnement, descriptions des objets que le joueur va pouvoir collecter etc.).

    Le gros intérêt et de pouvoir faire des requêtes de façon très souple sans avoir à tout charger en mémoire, ce qu'oblige un fichier orienté texte.
    Le soucis du mode texte, c'est que si c'est très souple à mettre en œuvre, on fini souvent par le regretter quand le projet prend de l'ampleur.
    --
    vanquish

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSP] Comment peut-on sauvegarder l'état d'un systeme (Backup)
    Par achi2005 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 27/04/2008, 22h31
  2. [REDHAT] sauvegarde system redhad
    Par souchraf dans le forum RedHat / CentOS / Fedora
    Réponses: 2
    Dernier message: 06/02/2007, 17h27
  3. NTBackup sauvegarde-t-il les fichiers systeme?
    Par cbv38 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 29/08/2006, 13h56
  4. Serveurs Linux, système de sauvegarde
    Par djibril dans le forum Administration système
    Réponses: 12
    Dernier message: 28/06/2006, 00h16
  5. problème de sauvegarde BD system
    Par Débéa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/06/2006, 08h02

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