Compression des données de sauvegarde du jeu

9

J'écris un jeu qui doit enregistrer beaucoup de données détaillées (trajectoires exactes de certaines entités) dans un fichier externe. Je veux économiser de l'espace disque et de la bande passante en le compressant, mais je ne l'ai jamais fait, donc je ne sais pas s'il existe une façon préférée de le faire.

Bien sûr, la compression-décompression ne devrait pas trop affecter la vitesse du jeu.

Marco Giancotti
la source
1
Quelle langue utilisez-vous?
Richard Marskell - Drackir

Réponses:

8

La bibliothèque zlib a des liaisons pour la plupart des langages de programmation et est assez rapide. Cependant, vous devez comparer différents algorithmes de compression, car un algorithme peut atteindre de meilleurs taux de compression sur votre type de données que sur le cas général.

Raphael R.
la source
1

Une façon, peut-être extrême, de compresser les données consiste à n'enregistrer que les étapes / entrées utilisées pour les créer. Quelque chose comme ce que fait ModNation Racer (maudire ces longs temps de chargement pendant qu'il recrée la piste). (Google pour les vidéos de l'éditeur de pistes dans ModNation Racer).

c'est-à-dire que si je stockais un terrain, je stockerais toutes les manipulations à partir d'une plaine plate. c'est-à-dire appliquer ici la brosse en forme de volcan avec cette force. Appliquer l'opération de lissage du terrain sur cette zone, avec cette force. Ajoutez mon objet prédéfini ici. Utilisation de courbes de type courbe de Bézier avec des «images clés» pour construire une trajectoire / trajectoire de vol / quoi que ce soit.

De nombreux autres jeux font ce genre de chose non seulement pour le chargement de niveau, mais aussi pour le gameplay, en rendant le jeu déterministe, en n'envoyant que des entrées de joueurs (je pense que PixelJunk Shooter 2 le fait).

George Duckett
la source