¡Tenemos Twitter!  
Únete a nuestro servidor de Discord

Formato de niveles Alfa

De Minecraft Wiki
Saltar a: navegación, buscar


Disambig color.svg Este artículo trata sobre la versión de Minecraft Alfa. Para Minecraft 1.0, véase formato de niveles.

Minecraft Indev introdujo un nuevo sistema de almacenado mientras se encontraba en desarrollo. El terreno generado en Infdev tiene el potencial de ocupar casi 235 petabytes, lo cual serian 240,640 terabytes en tamaño mientras este almacenado en memoria debido al tamaño del mapa (el cual es varias veces más grande que la superficie de la Tierra). Para reducir el tamaño de este archivo y el uso de memoria, Notch decide dividir el terreno en segmentos de 16 X 128 x 16 y grabarlos cuando no estén visibles. Ademas, el terreno solo es generado cuando se encuentra dentro del rango de visión del jugador, reduciendo considerablemente el espacio de guardado, ya que casi todos los jugadores solo lograran explorar una muy pequeña fracción del mapa en un tiempo razonable. Minecraft Alpha usa esta técnica, Minecraft Beta y Minecraft 1.0 usan este concepto general debido al éxito que tuvo.

Estructura del mundo en carpeta[editar | editar código]

El nivel alfa es una única carpeta que contiene al menos un archivo llamado “level.dat” y un archivo llamado “sesión.lock” que asegura que solo un Minecraft abra ese nivel por vez.

La carpeta de nivel puede tener hasta 64 carpetas y este a su vez puede contener 64 subcarpetas. Estas carpetas contienen los segmentos o “chunks” que mantienen el terreno y las entidades. Cada archivo de segmento o “chunk” es identificado por su posición en xPos y zPos. Las partes variantes del nombre del archivo de cada chunk son obtenidas tomando la base36 de xPos y zPos. Los nombres de las carpetas en los cuales se encuentra el archivo del chunk se encuentran al tomar xPos y zPos, modulo 64 y convirtiéndolo a base 36. Las coordenadas negativas deben ser interpretadas como números positivos, bitwise mediante complemento a 2. De forma que -13 es interpretado como si fuese 243 (si su tamaño fuese en bytes)

Como ejemplo, para encontrar el chunk en la posición (-13, 44):

  • El primer nombre de la carpeta es la base 36 (-13 % 64). Esto es base 36 (243 % 64 = 51) , el cual es 1f.
  • El segundo nombre de carpeta es base 36 (44 % 64). Esto es base 36 (44) el cual es “18”.
  • El nombre de archivo del chunk es “c.” + base 36 (-13) + "." + base 36 (44) + ".dat". Esto se evalúa como  "c.-d.18.dat".
  • De esta forma, el chunk en la posición (-13, 44) es guardada en el archivo “1f/18/c.-d.18.dat"

Cada chunk recuerda la posición independiente del archivo y los nombres de carpeta.

Minecraft Beta 1.3 introdujo MCRegion, donde los chunks son guardados en grupos de 32x32 en los archivos de región.


Dimensiones[editar | editar código]

Las dimensiones son guardadas de la misma forma que los mundos, pero en lugar de mezclar los archivos del mundo en la carpeta de guardado, son guardados en subcarpetas con sus propias regiones e información de chunks. Los nombres empiezan con “DIM” seguido por la ID de la dimensión.

Estas eran las ID’s usadas en Minecraft Alfa

ID Folder Dimension
0 saves/[World]/ Mundo normal (Overworld), siempre es guardado en la carpeta DIM
-1 saves/[World]/DIM-1/ El Nether, añadido en la Actualizacion de Halloween

Formato de sesión.lock[editar | editar código]

Session.lock contiene registro de tiempo de la última vez que el mundo a sido alterado. El archivo tiene 8 bytes de largo y contiene una única integral firmada de 64-bits en formato endian. El valor de esta integral corresponde al registro de tiempo, que representa el numero de milisegundos transcurridos desde 1970,en UTC.

A diferencia de los típicos archivos de bloqueo, sesión.lock se asegura que el último programa que abrió ese mundo es el que es dueño de este. El proceso ocurre de la siguiente forma:

  1. El programa abre sesión.lock.
  2. El programa crea el registro de tiempo en sesión.lock.
  3. El programa monitorea sesión.lock en busca de cambios.
  4. Si los contenidos de sesión.lock cambian, el programa aborta y abandona el bloqueo en el mundo.

level.dat Format[editar | editar código]

El archivo de level.dat esta comprimido en GZip en formato NBT que almacena la información del nivel de forma global (tiempo, salud del jugador, inventario, velocidad, posición en el mapa, etc) Lo más importante, almacena la semilla que es usada para generar el terreno de ese mismo mundo.

El archivo contiene la siguiente estructura:

  • Nbtsheet.png
    La etiqueta raíz.
    • Nbtsheet.png
       Data: Información global.
      • Nbtsheet.png
         LastPlayed: Guarda el registro de tiempo Unix de la ultima vez que el jugador grabo la partida.
      • Nbtsheet.png
         SizeOnDisk: Es el tamaño estimado del mundo entero en bytes.
      • Nbtsheet.png
         RandomSeed: Numero aleatorio (o escogido por el jugador) que es usada para la generación del terreno.
      • Nbtsheet.png
         SpawnX: Coordenada X de la posición del Spawn del mundo.
      • Nbtsheet.png
         SpawnY: Coordenada Y de la posición del Spawn del mundo.
      • Nbtsheet.png
         SpawnZ: Coordenada Z de la posición del Spawn del mundo.
      • Nbtsheet.png
         Time: Guarda el ultimo “tiempo del dia” en ticks. Cada 20 ticks corresponde a 1 segundo, y 24000 ticks corresponden a un Ciclo de día/noche, haciendo que este ciclo dure 20 minutos. Habran transcurrido 0 ticks al inicio del dia, 12000 en el atardecer, 13800 correspondera al anochecer y 22200 el comienzo del amanecer y por ultimo 24000 es el inicio del siguiente día e inmediatamente empieza un nuevo clico en 0 ticks.
      • Nbtsheet.png
         Player: El jugador en Singleplayer.
        • Nbtsheet.png
           Dimension: La dimensión en la cual el jugador se encuentra, 0 para el mundo normal Overworld y -1 para el Nether.
        • Nbtsheet.png
           Pos: Lista de las coordenadas X, Y y Z donde se encuentra el jugador.
        • Nbtsheet.png
           Rotation: Lista de la rotación en las coordenadas Y y Z.
        • Nbtsheet.png
           Motion: Lista que abarca el movimiento de los ejes X, Y y Z.
        • Nbtsheet.png
           OnGround: 1 o 0 (verdadero/falso) Es Verdadero si el jugador está pisando suelo.
        • Nbtsheet.png
           FallDistance: Durante cuánto tiempo el jugador a estado cayendo.
        • Nbtsheet.png
           Health: La cantidad de vida que conserva el jugador, representada en hitpoints, donde 20 hitpoints son 10 corazones.
        • Nbtsheet.png
           AttackTime: Tiempo en el que el jugador es inmune a ser atacado
        • Nbtsheet.png
           HurtTime: Numero de ticks en los que el jugador se muestra rojo por haber sido atacado.
        • Nbtsheet.png
           DeathTime: Numero de ticks en los que el jugador a estado muerto. (Usado para controlar la animación de muerte).
        • Nbtsheet.png
           Air: El número de ticks que le faltan al jugador para ahogarse. Inicia en 300.
        • Nbtsheet.png
           Fire: Cuando este valor esta negativo representa el número de ticks que han pasado para que el jugador pueda volver a ser incendiado. Cuando positivo, el número de ticks que le faltan para que el fuego se extinga.
        • Nbtsheet.png
           Score: El puntaje del jugador. Este valor nunca fue utilizado en la versión Alpha o en la Beta, este valor es irrelevante.
        • Nbtsheet.png
           Inventory: Lista de conjuntos de Tag’s que representan los ítem en el inventario del jugador.
          • Nbtsheet.png
            Un ítem en el inventario.
            • Nbtsheet.png
               Slot: La casilla en la cual se encuentra el ítem.
            • Nbtsheet.png
               id: La ID del ítem.
            • Nbtsheet.png
               Damage: El valor específico del ítem, o el valor de daño para herramientas.
            • Nbtsheet.png
               Count: The number of this item in the stack. Range -128 to 127. Values less than 2 are not displayed in-game.

Formato de Chunk[editar | editar código]

Los archivos de chunk, antes descritos arriba, son archivos comprimidos en GZip en formato NBT. Tienen la siguiente estructura:

  • Nbtsheet.png
    La etiqueta raíz.
    • Nbtsheet.png
       Level: Los datos de nivel en este chunk.
      • Nbtsheet.png
         xPos: La coordenada X de este chunk
      • Nbtsheet.png
         zPos: La coordenada Z de este chunk
      • Nbtsheet.png
         TerrainPopulated: 1 o 0 (Verdadero/Falso) El valor es verdaero si el chunk está ocupado por estructuras generadas como Calabozos y sistemas de cavernas.
      • Nbtsheet.png
         LastUpdate: El tick de la última vez que el chunk fue actualizado.
      • Nbtsheet.png
         Blocks: 32768 bytes de ID’s de los bloques, 8 bits para cada Bloque.
      • Nbtsheet.png
         Data: 16384 bytes de datos de los bloques, 4 bits por cada Bloque.
      • Nbtsheet.png
         BlockLight: 16384 bites de información de iluminación, 4 bits por cada Bloque.
      • Nbtsheet.png
         SkyLight: 16384 bites de luz del cielo, 4 bits por Bloque.
      • Nbtsheet.png
         HeightMap: 256 bytes de información sobre la altura del mapa, 8 bits por cada columna XZ. Usado para agilizar los cálculos sobre SkyLight.
      • Nbtsheet.png
         Entities: Lista de conjuntos de TAG’s , uno por cada entidad en el chunk.
      • Nbtsheet.png
         TileEntities: Lista de conjuntos de TAG’s, uno por cada Titulo de Entidad en el chunk.

Véase también[editar | editar código]

Plantilla:Translation category