Mosaicos · bei.pm
Los formatos de archivo descritos en esta página se basan en el análisis técnico de la propiedad intelectual de Dynamix, Inc. y Sierra Entertainment.
La propiedad intelectual es actualmente parte de la masa de Activision Publishing, Inc. / Activision Blizzard, Inc. y está en posesión de Microsoft Corp..
La información fue recopilada mediante Ingeniería Inversa y Análisis de Datos con el propósito de archivado e interoperabilidad con datos históricos.
No se utilizaron especificaciones propietarias o confidenciales.
El juego se puede adquirir actualmente como descarga en gog.com.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas |
Los tiles son un formato gráfico en bitmap específico de Outpost-2. Se extienden a través de 13 conjuntos de tiles, llamados "wells" (well0000.bmp
hasta well0012.bmp
), que se encuentran dentro del volumen maps.vol.
Los conjuntos de tiles / Wells contienen lo siguiente:
Nombre de archivo | Contenido |
---|---|
well0000.bmp | Una gráfica de 32x32px en azul - ideal para probar si su cargador de imágenes funciona |
well0001.bmp | Contiene roca clara, cordilleras sobre roca clara y numerosas variantes de cráteres de impacto en roca clara |
well0002.bmp | Contiene 'Doodads' de roca clara - elementos que se pueden colocar sobre roca clara para dar variedad (o intencionalmente como estructura, como muros), incluyendo vegetación |
well0003.bmp | Contiene una estructura similar a una corteza sobre roca clara |
well0004.bmp | Contiene roca oscura, cordilleras sobre roca oscura y numerosas variantes de cráteres de impacto en roca oscura |
well0005.bmp | Contiene 'Doodads' de roca oscura - elementos que se pueden colocar sobre roca oscura para dar variedad (o intencionalmente como estructura, como muros) |
well0006.bmp | Contiene una estructura similar a una corteza sobre roca oscura, así como transiciones entre roca clara y oscura |
well0007.bmp | Contiene lava, incluyendo de 4 a 5 fotogramas de animación de la misma |
well0008.bmp | Contiene arena y numerosas variantes de cráteres de impacto en arena |
well0009.bmp | Contiene 'Doodads' de arena - elementos que se pueden colocar sobre arena para dar variedad (o intencionalmente como estructura, como muros) |
well0010.bmp | Contiene 48 transiciones de arena a roca clara y oscura |
well0011.bmp | Contiene las capas polares del mapa, con roca oscura como fondo |
well0012.bmp | Contiene las capas polares del mapa, con roca clara como fondo |
Es recomendable para una implementación precisa no renderizar las baldosas de antemano para poder almacenarlas en caché, ya que los datos del ciclo día/noche aún deben procesarse, y se generarían muchos datos.
Las baldosas son gráficos de 8bpp con paletas indexadas de 32x32 píxeles de resolución, dispuestas en fila. Sin embargo, en un conjunto de baldosas así creado se pueden tener muchas más.
El contenedor principal consiste en 2 secciones: head
y data
.
Encabezado de Azulejos
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas | |
0x0008 | uint(32) | ¿Versión / Banderas? | Esto podría ser una indicación de la versión del formato de archivo; en todos los archivos que tengo, el valor fue |
0x000c | uint(32) | Anchura (Resolución Horizontal) | Indica cuán ancha es la archivo de imagen (en píxeles). En todos los pozos de Outpost 2, se espera que este valor sea |
0x0010 | uint(32) | Altura (Resolución vertical) | Indica cuán alta es la imagen (en píxeles). En todos los pozos de Outpost 2 se espera que este valor sea |
0x0014 | uint(32) | ¿Profundidad de color? | El significado de este valor es desconocido. Dado que contiene el valor |
0x0018 | uint(32) | ¿Profundidad de color 2? | El significado de este valor es desconocido. Posiblemente se trate de una 'profundidad' de color de 'objetivo'. |
Después de esta información, se proporcionará un archivo de paleta en formato RIFF estandarizado. La especificación exacta se puede encontrar - dado que las paletas también aparecen en otros lugares - en Paletas.
Datos de los Azulejos
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | carácter | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Desplazamiento | Tipo de dato | Denominación | Explicación |
---|---|---|---|
0x0000 | uint(32) | Bytes Mágicos | |
0x0004 | uint(24) | Longitud del bloque | |
0x0007 | uint(8) | Banderas |
Finalmente, llegan los datos de píxeles en bruto, de arriba a la izquierda hacia abajo a la derecha, línea por línea.
El valor de los datos en las gráficas que generalmente están en formato de 8bpp-Bitmaps corresponde al índice del color en la paleta de colores.
El motor del juego probablemente dibuja los tiles *a demanda*.
Esto parece deberse, entre otras cosas, al ciclo de día y noche, que conoce 32 niveles diferentes de los tiles individuales. Al parecer, se reduce 'un poco' el valor de luminosidad. Aún no se han podido determinar valores exactos, estoy trabajando sobre la base de cálculo
v *= (daylight / 48) + 0.25;
con los datos HSV de los píxeles, donde daylight es un valor de 0-31 y v es un valor entre 0-1. Además, hay que tener en cuenta que en el mapa existe un borde de 16 tiles a la izquierda y a la derecha (que sirve para el spawn invisible de unidades).
Además, parece que el ciclo de día y noche actualiza solo una columna del mapa por ciclo de juego.
Un ciclo de día y noche acelerado se ve de la siguiente manera: