Fliser · bei.pm

Udgivet den 19/11/2015·Opdateret den 13.02.2025·da
Denne tekst blev automatiseret oversat af OpenAI GPT-4o Mini

De filformater, der er beskrevet på denne side, er baseret på den tekniske analyse af intellektuel ejendom fra Dynamix, Inc. og Sierra Entertainment.
Den intellektuelle ejendom er i dag en del af Activision Publishing, Inc. / Activision Blizzard, Inc. og ejes i øjeblikket af Microsoft Corp..

Oplysningerne er indsamlet gennem Reverse Engineering og dataanalyse med henblik på arkivering og interoperabilitet med historiske data.
Der er ikke anvendt nogen proprietære eller fortrolige specifikationer.

Spillet kan i øjeblikket købes som download på gog.com.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tegn
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske bytes
0x0004 uint(24) Block-længde
0x0007 uint(8) Flagger

Tiles er et Outpost-2-specifikt Bitmap-grafikformat. De strækker sig over 13 tilesets, "wells" kaldet (well0000.bmp til well0012.bmp), som findes inden for volumen maps.vol.

De indeholder følgende i tilesets / wells:

Filnavn Indhold
well0000.bmp En 32x32px stor blå grafik - ideel til at teste, om din egen image-loader fungerer
well0001.bmp Indeholder lyst sten, bjergkæder på lyst sten og utallige varianter af nedslagskratre i lyst sten
well0002.bmp Indeholder 'Doodads' af lyst sten - elementer, der kan placeres for at bryde op (eller bevidst som struktur, som f.eks. mure) på lyst sten, herunder vegetation
well0003.bmp Indeholder en skorpeagtig struktur på lyst sten
well0004.bmp Indeholder mørkt sten, bjergkæder på mørkt sten og utallige varianter af nedslagskratre i mørkt sten
well0005.bmp Indeholder 'Doodads' af mørkt sten - elementer, der kan placeres for at bryde op (eller bevidst som struktur, som f.eks. mure) på mørkt sten
well0006.bmp Indeholder en skorpeagtig struktur på mørkt sten samt overgange mellem lyst og mørkt sten
well0007.bmp Indeholder lava inklusiv hver 4-5 frames animation af samme
well0008.bmp Indeholder sand og utallige varianter af nedslagskratre i sand
well0009.bmp Indeholder 'Doodads' af sand - elementer, der kan placeres for at bryde op (eller bevidst som struktur, som f.eks. mure) på sand
well0010.bmp Indeholder hver 48 overgange fra sand til lyst og mørkt sten
well0011.bmp Indeholder de polare kapper af kortet, med mørkt sten som underlag
well0012.bmp Indeholder de polare kapper af kortet, med lyst sten som underlag

Det er stærkt anbefalet for en præcis implementering ikke at forudrenderere tiles for at cache dem, da dataene til dag/nat-cyklussen stadig skal behandles - og der ville opstå meget, meget store datamængder.

Tiles er 8bpp-grafik med en indekseret palette med en opløsning på 32x32 pixels, som er arrangeret i et gitter. I et sådan tileset kan der dog være langt flere

Hovedcontaineren består af 2 sektioner: head og data.

Fliser Overskrift

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tegn
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske bytes
0x0004 uint(24) Block-længde
0x0007 uint(8) Flagger
0x0008 uint(32) Version / Flag?

Dette kunne være en versionsangivelse af filformatet; i alle de filer, jeg har til rådighed, stod værdien 0x02 her.

0x000c uint(32) Bredde (Horisontal opløsning)

Angiver, hvor bred billedefilen er (i pixel).

For alle brønde i Outpost 2 vil værdien her være 0x20 eller 32.

0x0010 uint(32) Højde (Vertikal opløsning)

Angiver, hvor høj billedfilen er (i pixel).

For alle brønde fra Outpost 2 vil værdien her være 0x20 eller 32.

0x0014 uint(32) Farvedybde?

Betydningen af denne værdi er ukendt.

Da den indeholder værdien 8 i alle kontrollerede filer, kunne det være en angivelse af farvedybde.

0x0018 uint(32) Farvedybde 2?

Betydningen af denne værdi er ukendt.

Det kan muligvis være en 'mål'-farvedybde.

Efter disse oplysninger følger der en palettedat fil i det standardiserede RIFF-format. Den præcise specifikation findes - da paletterne også optræder andre steder - under Paletter.

Tiles data

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tegn
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Offset Datatype Betegnelse Forklaring
0x0000 uint(32) Magiske bytes
0x0004 uint(24) Block-længde
0x0007 uint(8) Flagger

Endelig følger de rå pixeldata, fra venstre-øverst række for række mod højre-nederst.
Data værdien for de grafikker, der som regel findes som 8bpp-bitmap, svarer til farveindekset i farvepaletten.

Pixeldata starter øverst til venstre og slutter nederst til højre.

Spil-motoren tegner fliserne *sandsynligvis* on-demand.
Dette ser blandt andet ud til at skyldes dag-nat cyklussen, som har 32 nuancer af enkelte fliser. Her bliver der åbenbart trukket 'lidt' fra lysstyrken. Nøjagtige værdier er endnu ikke blevet fastslået, jeg arbejder på beregningsgrundlaget

v *= (daylight / 48) + 0.25;

med HSV-dataene fra pixel, hvor daylight er en værdi fra 0-31 og v en værdi mellem 0-1. Derudover skal det tages i betragtning, at der på kortet er en kant på 16 fliser til venstre og højre (den tjener til usynligt at spawn enheder).

Derudover ser det ud til, at dag-nat cyklussen kun opdaterer én søjle af kortet pr. spilcyklus.
En accelereret dag-nat cyklus ser derfor sådan ud:

Visualisering af dag-nat cyklussen