Page 1 sur 1

Système de sauvegarde/chargement de données

Publié : 28 Mars 2021 13:40
par Krafter
Bonjour,

Je souhaiterai pouvoir inclure dans mon jeu un système de chargement et sauvegarde des données, pour que le joueur puisse sauvegarder et reprendre sa partie.

En me renseignant j'ai trouver différentes façons de faire (playerpref, encodage binaire, json, utilisation d'assets, ...). Et je suis un peu perdu.

Pourriez vous me conseiller, car j'imagine que c'est une feature utilisée dans beaucoup de jeux? Sur une façon de faire récente, pratique, facile à mettre en place pour un certain volume de données, robuste, ...

De plus, le jeu à pour vocation à être publier sur Steam (si je parviens jusque là ^^). Si certains ont publiés récemment sur cette plateforme, je ne sais pas si il y a des fonctions prévues à cet effet par des packages propres à Steam ?


Merci

Re: Système de sauvegarde/chargement de données

Publié : 28 Mars 2021 16:08
par Max
Bonjour,

cela dépend pas mal des données que tu souhaites sauvegarder, voir du contexte.
Si cela se limite à quelques éléments (position de départ, numéro du niveau par exemple), le plus simple reste les PlayerPrefs.
Pour un volume plus importants et des sauvegarde plus complexes, alors le système JSON est une des solutions les plus conseillée.
Certains passent aussi par des sauvegarde par fichier texte.

Re: Système de sauvegarde/chargement de données

Publié : 30 Mars 2021 12:31
par Krafter
Bonjour, merci de ta réponse Max ! :)

Par exemple, si je veux sauvegarder la position du joueur (coordonnées, level en cours, hp, ...), l'état actuel du niveau en cours (monstres présents et leur position, ...) ainsi que les éventuels objets qu'à récupérer le joueur (c'est un jeu où il faut collecter des choses), cela te semble trop pour des PlayerPrefs ? J'ai un peu de mal à me faire une idée de ce qui est beaucoup ou non ^^"

Et en plus de la sauvegarde propre au run en cours du joueur, je voudrais que le jeu retienne ce qu'à accompli le joueur au cours de ces différents run afin de débloquer du contenu (un peu à la "Binding of Isaac" pour ceux qui connaissent), j'imagine que je dois donc réaliser 2 systèmes de sauvegardes différents ?

Re: Système de sauvegarde/chargement de données

Publié : 30 Mars 2021 13:39
par jmhoubre
Effectivement, PlayerPrefs semble peu adapté dans ton cas. Pour t'en convaincre, regarde la documentation. En gros, pour chaque donnée, il faut définir une clé. Par exemple, sauvegarder le score du jeu se fait comme ceci, en supposant que le score soit dans un int nommé score :

Code : Tout sélectionner

	// Sauvegarde
	PlayerPrefs.SetInt(PlayerScore, score);
	// Lecture.
	score = PlayerPrefs.GetInt(PlayerScore)
De plus, PlayerPrefs ne peut sauver que des int, des float et des string. Pas de Vector3, de List, donc ces types nécessitent un peu de travail supplémentaire.

Json semble mieux adapté (mais comme le précise Max, cela dépend de ce que tu cherches à faire), mais la librairie d'Unity est limitée. J'utilise un package plus complet : Newtonsoft.Json for Unity.

Pour la deuxième partie de ta question, je pense que Json convient également pour sauvegarder des faits accomplis, et un seul fichier est suffisant, c'est le développeur qui maîtrise ce que le fichier de sauvegarde contient.

Re: Système de sauvegarde/chargement de données

Publié : 30 Mars 2021 14:18
par Max
Bonjour,

en complément de la réponse et des indications fournis par jmhoubre, tu as pas mal de tuto qui traitent du sujet.
Exemple:

https://www.youtube.com/watch?v=XOjd_qU2Ido

Re: Système de sauvegarde/chargement de données

Publié : 30 Mars 2021 15:00
par Krafter
Merci de ces réponses, je vais donc me pencher davantage sur l'utilisation de Json alors (merci pour le package recommandé je vais y jeter un oeil).

Et effectivement il y a pas mal de tutos (j'ai par exemple visionné celui que tu as mis Max), mais justement je ne savais pas vers où me diriger (par exemple dans ce tuto Brackeys dit que les playerPref ne sont pas adaptés si on à "beaucoup" de données à sauvegarder, mais quand on à aucune idée de ce que c'est que "beaucoup" pour un jeu vidéo, ça ne veut rien dire.. d'où ma demande d'éclaircissement ^^). Je vais donc m'orienter vers des tutos Json, merci :)

Re: Système de sauvegarde/chargement de données

Publié : 30 Mars 2021 17:47
par jmhoubre
Bonjour,

voici une série de liens que j'ai retrouvé dans mes notes : Bonne lecture.

Re: Système de sauvegarde/chargement de données

Publié : 07 Avr 2021 08:18
par Krafter
Merci pour ces liens je regarde ça de suite ;)