Convertir archivos en mundos de Minecraft: cómo funciona el codificador

Fuentes: Converting files into Minecraft Worlds - Part 1 - Wuemeli

El desarrollador Wuemeli ha ideado un sistema para transformar cualquier archivo digital en un mundo jugable de Minecraft, donde cada byte del fichero original se representa con un bloque distinto del juego. La idea parte de un experimento creativo y aprovecha que Minecraft ofrece más de 256 tipos de bloque, justo el rango de valores que puede almacenar un byte.

El primer paso consiste en generar una paleta de 256 bloques seguros. El autor utiliza la librería mcdata_rs para obtener el listado de bloques de la versión 1.21.11 y descarta todos aquellos que dependen de estados variables, como cultivos con edad, agua y lava con nivel, camas, cofres, arena, grava o tierras de cultivo. Los 256 bloques resultantes se exportan a un archivo Rust como una matriz fija que asigna a cada byte un bloque concreto.

Una vez definida la correspondencia byte-bloque, el programa decide la posición de cada bloque dentro del mundo. Los bloques se colocan primero en el suelo de un área de 16×16, luego se sube una capa hasta completar un cubo de 16×16×16 (una sección de 4.096 bloques). El proceso continúa hasta llenar las 24 secciones que abarca la columna de un chunk, desde Y -64 hasta Y 320, y se repite hasta cubrir una región completa de 32×32 chunks, con una capacidad aproximada de 96 MiB por archivo .mca.

Para codificar, el programa lee el archivo original, escribe una pequeña cabecera con el tamaño del fichero y, byte a byte, traduce cada valor al bloque correspondiente en su coordenada calculada. La decodificación invierte el proceso: se carga la región, se lee la cabecera para conocer el tamaño original y se recuperan los bloques restantes hasta reconstruir el fichero en disco. El proyecto incluye además casos de prueba que muestran la ubicación exacta de cada uno de los primeros bytes dentro del mundo generado.