Minecraft stocke les données mondiales de chaque zone de manière compressée (blocs de 512×512) .mca
déposer. Cela signifie qu’une zone est égale à 1024 blocs. Quelle est la taille approximative de la mémoire d’une partie du fichier .mca?
Cette réponse a été mise à jour pour le changement de format de bloc 1.13, veuillez vous référer à l’historique des réponses de l’ancienne version du format de stockage mondial
Le terrain réel est stocké dans la zone du dossier de sauvegarde du monde, les sous-dossiers DIM1 et DIM-1.
Chaque fichier contient jusqu’à 1024 (32×32) blocs (vous pouvez voir ce qu’est un bloc). Tous les blocs d’un même fichier proviennent d’une “zone” de 512×512 Potentiel Pièce. Si la zone n’a pas été entièrement explorée et que certains blocs n’ont pas été générés, le fichier de zone peut contenir moins de 1024 blocs.
Étant donné que le degré de navigation dans chaque zone est généralement différent, la taille des fichiers de zone peut varier considérablement et la valeur moyenne n’est pas très utile. Cependant, nous pouvons faire quelques estimations de la taille moyenne de la zone pleinement explorée.
Chaque bloc est divisé en 16 sections dans le sens vertical, chaque section mesure 16 blocs de haut (empilés ensemble). Le jeu ne stocke que des informations sur la zone inférieure avec des blocs. Par exemple, si le terrain monte à y = 82, le jeu stockera les 6 parties du bas (6 * 16 = 96 hauteur, juste assez pour atteindre la hauteur 82), et toutes les tuiles au-dessus de y = 96 sont implicitement considérées comme de l’air, Au lieu de le stocker dans un fichier.
Maintenant, nous faisons quelques hypothèses. par example:
- Exploration complète de la zone (y compris les 1024 blocs)
- La hauteur de section moyenne de chaque bloc est de 5 (la hauteur de la mer est y = 64, donc cela semble correct)
- Nous ignorons les entités de tuiles, telles que les boîtes, les fours, les enseignes, etc. (elles occupent une petite partie du terrain)
- Nous ignorons les mobs, les objets déposés, les flèches et autres entités (car leur nombre est inférieur au nombre de blocs)
Cela signifie que le fichier de zone contient 1024 blocs * 5 parties = ~ 5000 parties.
Chaque partie contient 16 x * 16 z * 16 y blocs = 4096 blocs.Afin de stocker chaque bloc dans une zone, le jeu collectera tous les blocs uniques + états dans le “panneau de bloc”, par exemple
indice | État de blocage |
---|---|
0 | Nom: “minecraft: pierre” |
1 pièce | Nom: “minecraft: eau” |
2 pièces | Nom: “minecraft: eau”, niveau: 1 |
3 | Nom: “minecraft: light_blue_stained_glass_pane”, est: “vrai”, sud: “vrai”, inondation: “vrai” |
4 | Nom: “minecraft: air” |
Ensuite, stockez un tableau d’index dans la carte optionnelle, tel que 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 1, 1, 2, 1, 1, 1, 1, 3, 0, 0, 0, ….
La taille de la palette elle-même peut varier considérablement, en fonction du nombre de blocs différents et de leur complexité. La section contenant uniquement de la pierre solide aura une entrée de palette, tandis que la section contenant l’équipement de redstone par votre constructeur préféré ou la place du marché peut contenir des centaines d’entrées.
Cela signifie qu’il est temps de faire d’autres hypothèses:
- Dans un terrain généré naturellement, la palette peut contenir jusqu’à 10 entrées, et il s’agira d’entrées simples, telles que “minecraft: stone”
- Nous dirions que la palette fait environ 500-1000 octets
- L’index dans la palette sera donc 0-9, et chaque index nécessitera 4 bits pour encoder
Par conséquent, dans une section, nous aurons:
- Palette de 500 octets
- 4096 blocs * index 4 bits dans la palette = bloc 2048 octets
- 4096 blocs * 4 bits pour les lumières de bloc (0-15) = 2048 octets pour les lumières de bloc
- 4096 blocs * Skylight 4 bits (0-15) = Skylight 2048 octets
La taille d’une section est d’environ 6500 octets. 5000 parties sont 32,5 Mo
Avant de stocker dans le fichier, chaque bloc est compressé à l’aide de la compression gzip générale, je suppose que cela réduira la taille à 10% de la taille d’origine (généralement, les blocs sont pour la plupart des pierres lisses avec un niveau de lumière de 0, mais le taux de compression sera varient considérablement en fonction du contenu réel du bloc).
Par conséquent, notre estimation finale sera que le fichier de zone entièrement parcouru est d’environ 32,5 * 0,1 = environ 35 Mo.
Sachant cela, nous pouvons estimer la taille de tout l’Overworld en calculant simplement (nombre de blocs explorés) * 5 segments par bloc * 6500 octets * 0,1 compression =. (Nombre de blocs explorés) * 3500 octets.
Dans la limite inférieure, la partie moyenne de chaque bloc sera de 8 (hauteur = 128).
Dans “Fin”, la section transversale moyenne de chaque bloc autour du centre sera plus comme 1, car il y a beaucoup de lacunes autour de l’île principale.
Origines: gaming.stackexchange.com