Tuiles · bei.pm
Les formats de fichiers décrits sur cette page sont basés sur l'analyse technique de la propriété intellectuelle de Dynamix, Inc. et Sierra Entertainment.
La propriété intellectuelle fait aujourd'hui partie de l'actif de Activision Publishing, Inc. / Activision Blizzard, Inc. et est actuellement détenue par Microsoft Corp..
Les informations ont été collectées par Reverse Engineering et Analyse de données dans le but d'archivage et d'interopérabilité avec des données historiques.
Aucune spécification propriétaire ou confidentielle n’a été utilisée.
Le jeu peut actuellement être acheté en téléchargement sur gog.com.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | caractères | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Décalage | Type de données | Désignation | Explication |
---|---|---|---|
0x0000 | uint(32) | Octets magiques | |
0x0004 | uint(24) | Longueur de bloc | |
0x0007 | uint(8) | Drapeaux |
Les tiles sont un format graphique bitmap spécifique à Outpost-2. Ils s'étendent sur 13 ensembles de tiles, appelés "wells" (well0000.bmp
à well0012.bmp
), qui se trouvent dans le volume maps.vol.
Les ensembles de tiles / wells contiennent ce qui suit :
Nom de fichier | Contenu |
---|---|
well0000.bmp | Une image de 32x32px, bleue - idéale pour tester si votre chargeur d'images fonctionne |
well0001.bmp | Contient des roches claires, des chaînes de montagnes sur des roches claires et d'innombrables variantes de cratères d'impact dans des roches claires |
well0002.bmp | Contient des 'Doodads' de roches claires - c'est-à-dire des éléments qui peuvent être placés pour aérer (ou délibérément comme structure, par exemple des murs) sur des roches claires, y compris de la végétation |
well0003.bmp | Contient une structure en croûte sur des roches claires |
well0004.bmp | Contient des roches sombres, des chaînes de montagnes sur des roches sombres et d'innombrables variantes de cratères d'impact dans des roches sombres |
well0005.bmp | Contient des 'Doodads' de roches sombres - c'est-à-dire des éléments qui peuvent être placés pour aérer (ou délibérément comme structure, par exemple des murs) sur des roches sombres |
well0006.bmp | Contient une structure en croûte sur des roches sombres, ainsi que des transitions entre des roches claires et sombres |
well0007.bmp | Contient de la lave, y compris 4-5 images d'animation de celle-ci |
well0008.bmp | Contient du sable et d'innombrables variantes de cratères d'impact dans le sable |
well0009.bmp | Contient des 'Doodads' de sable - c'est-à-dire des éléments qui peuvent être placés pour aérer (ou délibérément comme structure, par exemple des murs) sur du sable |
well0010.bmp | Contient 48 transitions de sable vers des roches claires et sombres |
well0011.bmp | Contient les calottes polaires de la carte, avec des roches sombres comme sous-sol |
well0012.bmp | Contient les calottes polaires de la carte, avec des roches claires comme sous-sol |
Il est fortement conseillé de ne pas rendre les tuiles à l'avance pour les mettre en cache, car les données pour le cycle jour/nuit doivent encore être traitées - et cela générerait une quantité énorme de données.
Les tuiles sont des graphiques 8bpp avec une palette indexée de 32x32 pixels de résolution, disposées les unes à côté des autres. Cependant, dans un ensemble de tuiles ainsi créé, il peut y en avoir bien plus.
Le conteneur principal se compose de 2 sections : head
et data
.
En-tête des carreaux
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | caractères | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Décalage | Type de données | Désignation | Explication |
---|---|---|---|
0x0000 | uint(32) | Octets magiques | |
0x0004 | uint(24) | Longueur de bloc | |
0x0007 | uint(8) | Drapeaux | |
0x0008 | uint(32) | Version / Drapeaux ? | Cela pourrait être une indication de la version du format de fichier ; dans tous les fichiers que j'ai examinés, la valeur était |
0x000c | uint(32) | Largeur (Résolution horizontale) | Indique la largeur du fichier image (en pixels). Pour tous les puits de Outpost 2, la valeur |
0x0010 | uint(32) | Hauteur (Résolution verticale) | Indique la hauteur du fichier image (en pixels). Pour tous les puits d'Outpost 2, la valeur attendue ici sera |
0x0014 | uint(32) | Profondeur de couleur ? | La signification de cette valeur est inconnue. Étant donné qu'elle contient la valeur |
0x0018 | uint(32) | Profondeur de couleur 2 ? | La signification de cette valeur est inconnue. Il s'agit peut-être d'une profondeur de couleur 'cible'. |
Après ces informations, un fichier de palette au format RIFF standardisé sera fourni. La spécification exacte se trouve - puisque les palettes apparaissent également ailleurs - sous Palettes.
Données des tuiles
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | caractères | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Décalage | Type de données | Désignation | Explication |
---|---|---|---|
0x0000 | uint(32) | Octets magiques | |
0x0004 | uint(24) | Longueur de bloc | |
0x0007 | uint(8) | Drapeaux |
Enfin, les données de pixels brutes suivent, ligne par ligne de haut à gauche vers bas à droite.
La valeur des données pour les graphiques, qui sont généralement au format bitmap 8bpp, correspond à l'index de la couleur dans la palette de couleurs.
Le moteur de jeu dessine les tuiles *probablement* à la demande.
Cela semble être en partie dû au cycle jour-nuit, qui connaît 32 nuances de tuiles individuelles. Il paraît qu'on soustrait à chaque fois 'un peu' de la valeur de luminosité. Des valeurs exactes n'ont pas encore pu être déterminées, je travaille sur la base de calcul suivante :
v *= (daylight / 48) + 0.25;
avec les données HSV des pixels, où daylight est une valeur de 0 à 31 et v est une valeur entre 0 et 1. De plus, il faut prendre en compte qu'il existe sur la carte une bordure de 16 tuiles à gauche et à droite (qui sert à faire apparaître des unités de manière invisible).
De plus, il semble que le cycle jour-nuit ne mette à jour qu'une colonne de la carte par cycle de jeu.
Un cycle jour-nuit accéléré se présente donc comme suit :