Tuiles · bei.pm

Publié le 19/11/2015·Mis à jour le 13/02/2025·French
Ce texte a été traduit automatiquement par OpenAI GPT-4o Mini.

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 0x02

0x000c uint(32) Largeur (Résolution horizontale)

Indique la largeur du fichier image (en pixels).

Pour tous les puits de Outpost 2, la valeur 0x20 ou 32 est à attendre ici.

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 0x20 ou 32.

0x0014 uint(32) Profondeur de couleur ?

La signification de cette valeur est inconnue.

Étant donné qu'elle contient la valeur 8 dans tous les fichiers vérifiés, cela pourrait concerner une indication de profondeur de couleur.

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.

Les données de pixels commencent en haut à gauche et se terminent en bas à droite.

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 :

Visualisation du cycle jour-nuit