Kakel · bei.pm

Publicerad den 19/11/2015·Uppdaterad den 13/02/2025·Svenska
Denna text har automatiskt översatts av OpenAI GPT-4o Mini.

De filformat som beskrivs på denna sida är baserade på teknisk analys av immateriella rättigheter från Dynamix, Inc. och Sierra Entertainment.
Det immateriella rättigheterna är idag en del av Activision Publishing, Inc.- / Activision Blizzard, Inc.-massan och ägs för närvarande av Microsoft Corp..

Informationen har sammanställts genom Reverse Engineering och dataanalys för syftet att arkivera och säkerställa interoperabilitet med historiska data.
Inga proprietära eller konfidentiella specifikationer har använts.

Spelet kan för närvarande köpas som nedladdning på gog.com.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tecken
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
Förskjutning Datatyp Beteckning Förklaring
0x0000 uint(32) Magiska byte
0x0004 uint(24) Blocklängd
0x0007 uint(8) Flaggor

Tiles handlar om ett Outpost-2-specifikt bitmap-grafikformat. De sträcker sig över 13 tilesets, ""wells" kallade (well0000.bmp till well0012.bmp), som finns inom volymen maps.vol.

Tilesets / Wells innehåller följande:

Filnamn Innehåll
well0000.bmp En 32x32px stor, blå grafik - idealisk för att testa om din egen bildladdare fungerar
well0001.bmp Innehåller ljust berg, bergskedjor på ljust berg och otaliga varianter av nedslagskratrar i ljust berg
well0002.bmp Innehåller ljust berg-'Doodads' - alltså element som kan placeras för att bryta upp (eller medvetet som struktur, som till exempel murar) på ljust berg, inklusive vegetation
well0003.bmp Innehåller en skorpliknande struktur på ljust berg
well0004.bmp Innehåller mörkt berg, bergskedjor på mörkt berg och otaliga varianter av nedslagskratrar i mörkt berg
well0005.bmp Innehåller mörkt berg-'Doodads' - alltså element som kan placeras för att bryta upp (eller medvetet som struktur, som till exempel murar) på mörkt berg
well0006.bmp Innehåller en skorpliknande struktur på mörkt berg, samt övergångar mellan ljust och mörkt berg
well0007.bmp Innehåller lava inklusive 4-5 ramar av animation av densamma
well0008.bmp Innehåller sand och otaliga varianter av nedslagskratrar i sand
well0009.bmp Innehåller sand-'Doodads' - alltså element som kan placeras för att bryta upp (eller medvetet som struktur, som till exempel murar) på sand
well0010.bmp Innehåller 48 övergångar från sand till ljust och mörkt berg
well0011.bmp Innehåller polarområdena på kartan, med mörkt berg som underlag
well0012.bmp Innehåller polarområdena på kartan, med ljust berg som underlag

Det är rekommenderat för en noggrann implementering att inte rendera tiles i förväg för att cacha dem, eftersom datan för dag/natt-cykeln fortfarande måste bearbetas - och det skulle genereras väldigt mycket data.

Tiles är 8bpp-grafik med indexerad palett på 32x32 pixlar, som är ordnade i ett rutnät. I ett så skapat tileset kan dock mycket fler

Huvudcontainern består av 2 sektioner: head och data.

Plattor Rubrik

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tecken
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Förskjutning Datatyp Beteckning Förklaring
0x0000 uint(32) Magiska byte
0x0004 uint(24) Blocklängd
0x0007 uint(8) Flaggor
0x0008 uint(32) Version / Flaggor?

Detta kan vara en versionsangivelse för filformatet; i alla filer jag har funnits här angavs värdet 0x02

0x000c uint(32) Bredd (Horisontell upplösning)

Anger att den bildfil är bred (i pixlar).

För alla brunnar i Outpost 2 förväntas här värdet 0x20 eller 32.

0x0010 uint(32) Höjd (Vertikal upplösning)

Anger att hur hög bildfilen är (i pixlar).

För alla brunnar i Outpost 2 kan man förvänta sig värdet 0x20 eller 32.

0x0014 uint(32) Färgdjup?

Betydelsen av detta värde är okänd.

Eftersom det i alla kontrollerade filer innehåller värdet 8, kan det handla om en färgdjupangivelse.

0x0018 uint(32) Färgdjup 2?

Betydelsen av detta värde är okänd.

Det kan möjligen vara en 'mål'-färgdjup.

En palettfil i standardiserat RIFF-format kommer att följa dessa uppgifter. Den exakta specifikationen finns - eftersom paletterna också förekommer på andra ställen - under Paletter.

Tiles Data

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF tecken
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Förskjutning Datatyp Beteckning Förklaring
0x0000 uint(32) Magiska byte
0x0004 uint(24) Blocklängd
0x0007 uint(8) Flaggor

Till slut följer de rena pixeldatan, rad för rad från vänster-övre till höger-nedre.
Datastrukturen för de grafiker som vanligtvis presenteras som 8bpp-bitmaps motsvarar färgindexet i färgpaletten.

Pixeldatan börjar uppe till vänster och slutar nere till höger.

Spelmotorn ritar tiles *troligen* på begäran.
Detta verkar bland annat bero på dag-natt-cykeln som har 32 olika nivåer av enskilda tiles. Det verkar som om ljusstyrkevärdet minskas 'lite' varje gång. Exakta värden har ännu inte kunnat fastställas, jag arbetar utifrån beräkningsgrunden

v *= (daylight / 48) + 0.25;

med HSV-data för pixlarna, där daylight är ett värde mellan 0-31 och v är ett värde mellan 0-1. Dessutom är det viktigt att beakta att det på kartan finns en kant av 16 tiles till vänster och höger (som används för osynligt spawnande av enheter).

Det verkar också som att dag-natt-cykeln uppdaterar endast en kolumn av kartan per spelcykel.
En accelererad dag-natt-cykel ser därför ut som följande:

Visualisering av dag-natt-cykeln