Tegels · bei.pm
De op deze pagina beschreven bestandsformaten zijn gebaseerd op de technische analyse van intellectueel eigendom van Dynamix, Inc. en Sierra Entertainment.
Het intellectueel eigendom maakt vandaag de dag deel uit van de massa van Activision Publishing, Inc. / Activision Blizzard, Inc. en is momenteel in bezit van Microsoft Corp..
De informatie is verzameld door middel van Reverse Engineering en data-analyse met als doel archivering en interoperabiliteit met historische gegevens.
Er zijn geen eigendomsrechtelijke of vertrouwelijke specificaties gebruikt.
Het spel is momenteel verkrijgbaar als download op gog.com.
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | teken | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Gegevenstype | Benaming | Uitleg |
---|---|---|---|
0x0000 | uint(32) | Magische Bytes | |
0x0004 | uint(24) | Bloklengte | |
0x0007 | uint(8) | Vlaggen |
De tiles zijn een specifiek Bitmap-grafiekformaat voor Outpost-2. Ze bestaan uit 13 tilesets,
"wells" genoemd (well0000.bmp
tot well0012.bmp
),
die zich binnen de volume maps.vol bevinden.
De tilesets / wells bevatten het volgende:
Bestandsnaam | Inhoud |
---|---|
well0000.bmp | Een 32x32px grote, blauwe afbeelding - ideaal als test om te zien of je eigen afbeeldingslader werkt |
well0001.bmp | Bevat licht gesteente, bergketens op licht gesteente en talloze varianten van inslagkraters in licht gesteente |
well0002.bmp | Bevat licht-gesteente 'Doodads' - dus elementen die voor verfraaiing (of bewust als structuur, zoals muren) op licht gesteente geplaatst kunnen worden, waaronder ook vegetatie |
well0003.bmp | Bevat een korstachtige structuur op licht gesteente |
well0004.bmp | Bevat donker gesteente, bergketens op donker gesteente en talloze varianten van inslagkraters in donker gesteente |
well0005.bmp | Bevat donker-gesteente 'Doodads' - dus elementen die voor verfraaiing (of bewust als structuur, zoals muren) op donker gesteente geplaatst kunnen worden |
well0006.bmp | Bevat een korstachtige structuur op donker gesteente, evenals overgangen tussen licht en donker gesteente |
well0007.bmp | Bevat lava inclusief 4-5 frames animatie ervan |
well0008.bmp | Bevat zand en talloze varianten van inslagkraters in zand |
well0009.bmp | Bevat zand-'Doodads' - dus elementen die voor verfraaiing (of bewust als structuur, zoals muren) op zand geplaatst kunnen worden |
well0010.bmp | Bevat elk 48 overgangen van zand naar licht en donker gesteente |
well0011.bmp | Bevat de poolkappen van de map, met donker gesteente als ondergrond |
well0012.bmp | Bevat de poolkappen van de map, met licht gesteente als ondergrond |
Het is raadzaam voor een accurate uitvoering om de tiles niet van tevoren te renderen om deze te cachen, omdat de gegevens voor de dag/nacht-cyclus nog verwerkt moeten worden - en er zouden zeer veel gegevens ontstaan.
De tiles zijn 8bpp-afbeeldingen met een geïndexeerde palet van elk 32x32 pixels resolutie, die onder elkaar zijn gerangschikt. In een dergelijk ontstaan tileset kunnen echter veel meer
De hoofdcontainer bestaat uit 2 secties: head
en data
.
Vloertegels Koptekst
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | teken | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Gegevenstype | Benaming | Uitleg |
---|---|---|---|
0x0000 | uint(32) | Magische Bytes | |
0x0004 | uint(24) | Bloklengte | |
0x0007 | uint(8) | Vlaggen | |
0x0008 | uint(32) | Versie / Vlaggen? | Dit zou een versienummer van het bestandsformaat kunnen zijn; in alle bestanden die ik heb, stond hier de waarde |
0x000c | uint(32) | Breedte (Horizontale Resolutie) | Geeft aan hoe breed het afbeeldingsbestand is (in pixels). Bij alle wells van Outpost 2 zal hier de waarde |
0x0010 | uint(32) | Hoogte (Verticale resolutie) | Geeft aan hoe hoog het afbeeldingsbestand is (in pixels). Bij alle wells van Outpost 2 wordt hier de waarde |
0x0014 | uint(32) | Kleurendiepte? | De betekenis van deze waarde is onbekend. Aangezien deze in alle gecontroleerde bestanden de waarde |
0x0018 | uint(32) | Kleurdiepte 2? | De betekenis van deze waarde is onbekend. Het kan mogelijk een 'doel'-kleurdiepte zijn. |
Na deze gegevens volgt er nog een palettend bestand in het gestandaardiseerde RIFF-formaat. De exacte specificatie is te vinden - aangezien de paletten ook op andere plaatsen voorkomen - onder Paletten.
Tiles Gegevens
Adr | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | teken | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
Offset | Gegevenstype | Benaming | Uitleg |
---|---|---|---|
0x0000 | uint(32) | Magische Bytes | |
0x0004 | uint(24) | Bloklengte | |
0x0007 | uint(8) | Vlaggen |
Eindelijk volgen hier de ruwe pixeld gegevens, van linksboven regel voor regel naar rechtsonder.
De dataverdienste van de in de regel als 8bpp-bitmaps weergegeven afbeeldingen komt overeen met de index van de kleur in de kleurenpalet.
De spel-engine tekent de tegels *waarschijnlijk* on-demand.
Dit lijkt onder andere te maken te hebben met de dag-nachtcyclus, die 32 gradaties van individuele tegels kent. Daarbij wordt blijkbaar van de helderheidswaarde telkens 'een beetje' afgetrokken. Nauwkeurige waarden zijn nog niet vastgesteld, ik werk op basis van de berekening
v *= (daylight / 48) + 0.25;
met de HSV-gegevens van de pixels, waarbij daylight een waarde van 0-31 is en v een waarde tussen 0-1. Bovendien moet in overweging worden genomen dat er op de kaart aan beide zijden nog een rand van 16 tegels bestaat (die dient voor het onzichtbaar spawnen van eenheden).
Aanvullend lijkt de dag-nachtcyclus per spelcyclus telkens slechts één kolom van de kaart bij te werken.
Een versnelde dag-nachtcyclus ziet er daarom als volgt uit: