Comme je suis en train de créer un jeu 3D c ++ et je me demandais ce qui serait le plus bénéfique lors du traitement des actifs du jeu en ce qui concerne le stockage. J'ai vu que certains jeux ont un seul fichier d'actif compressé avec tout ce qu'il contient et d'autres avec beaucoup de petits fichiers compressés.
Si j'avais beaucoup de fichiers individuels, je n'aurais pas besoin de charger un gros fichier à la fois et d'utiliser de la mémoire, mais le code devrait rechercher des fichiers lorsque le niveau se charge pour trouver tous les fichiers corrects nécessaires.
Il n'est pas nécessaire de rechercher un fichier lorsque vous traitez un seul gros fichier, mais encore une fois, qu'en est-il de tous les actifs non nécessaires actuellement qui seraient chargés avec un seul fichier?
Je pourrais également avoir un fichier d'actif pour chaque niveau, mais comment puis-je gérer les actifs partagés
Cela me dérange depuis un moment, alors dites-moi quels sont les autres avantages et inconvénients de l'une ou l'autre façon de faire les choses.
la source
Réponses:
Du point de vue des performances et des points de stockage, un seul fichier de ressources est une solution plus avantageuse (mais en pratique, ce n'est pas toujours vraiment visible). L'inconvénient est qu'il est plus difficile à mettre à jour et à gérer.
IMO ce n'est pas si important en général, utilisez simplement ce qui est plus pratique pour vous, c'est vraiment juste un détail technique qui ne devrait pas être pris en compte jusqu'à ce que vous remarquiez vraiment des problèmes avec.
la source
Les fichiers décompressés facilitent la modification et le remplacement des fichiers par l'utilisateur, ce qui rend le jeu beaucoup plus convivial pour le modding. Cela peut être considéré comme un avantage ou un inconvénient, selon votre attitude envers le modding.
Du point de vue des performances: le chargement d'un grand nombre de petits fichiers à partir du disque dur peut être beaucoup plus lent qu'un seul grand, car la défragmentation d'un système de fichiers essaie généralement d'éviter de diviser de gros fichiers, mais un grand nombre de petits fichiers dans le même répertoire peut être dispersé sur tout le disque. Ainsi, lorsque vous chargez des milliers de petits fichiers, le lecteur devra peut-être faire beaucoup de recherches. Mais d'un autre côté, l'utilisation d'archives peut rendre plus coûteux l'obtention de fichiers individuels à l'intérieur des archives (selon la structure interne de vos archives), vous devez donc essayer de regrouper les fichiers qui sont généralement nécessaires ensemble.
Du point de vue de la maintenance: à moins que vous ne disposiez d'un outil pour effectuer des mises à jour incrémentielles de vos fichiers de paquets, vos correctifs deviendront beaucoup plus importants lorsque vous devrez remplacer des packages entiers pour corriger un fichier individuel.
la source
En règle générale, un paquet serait plus rapide, mais il n'est pas toujours aussi pratique, comme l'a dit Petr. Cependant, une façon de lutter contre cela est de rendre votre moteur capable de charger des fichiers en vrac et de compresser des fichiers. Ensuite, en mode débogage, chargez les fichiers en vrac et en mode version, chargez à partir d'un pack
la source