TA und TA: Kingdoms – Unterschiede der Formate
Eine einzige Seite, die zusammenfasst, was zwischen Total Annihilation (1997) und TA: Kingdoms (1999) gleich, ähnlich oder verschieden ist. Nützlich, wenn du Arbeit von einem Spiel aufs andere überträgst oder entscheidest, welches Spiel dein Werkzeug unterstützen muss.
Tip
Kurz gesagt. TA:K hat die meisten Containerformate von TA
beibehalten (HPI, GAF, TDF, COB), aber die Hüllen vereinfacht (kein XOR
in HPI v2, kein eigenes Verzeichnis weapons/, kein Bauraster von 2×3)
und obendrauf völlig Neues eingeführt (4 Seiten, Mogrium-Wirtschaft,
„Waffen“ als Zaubersprüche, .kmp-Archive pro Mission).
Übersichtsmatrix
| Format | TA | TA: Kingdoms | Stand in kbot |
|---|---|---|---|
| HPI / UFO / CCX / GP3-Archiv | v1 – XOR-verschlüsselt, mehrere Chunks pro Datei, Chunks ≤64 KiB | v2 – unverschlüsselte Hülle, ein einziger SQSH-Chunk pro Datei, Header von ~32 Byte | ✅ beide lesen; ✅ v1 schreiben; ❌ v2 schreiben |
.kmp-Kampagnenarchive |
entfällt | HPI v2 mit umbenannter Endung; bündelt Karte + Skripte + GAFs pro Mission | ✅ lesen |
| GAF / TAF-Sprite-Animationen | .gaf, die Palette kommt aus palettes/palette.pal |
.taf mit Palette (dasselbe Binärformat), Palette aus einer .pcx pro Seite; dazu eine Truecolor-Variante .taf/.tsf (16-Bit-ARGB, siehe taf.md) |
✅ alle lesen; ✅ GAF und Truecolor-TAF/TSF schreiben |
| PCX-Bilder | unitpics/<name>.pcx für Einheitenporträts (96×96 mit Palette) |
Als Palettenträger von 1×1 neben .taf verwendet |
✅ lesen/schreiben |
| PAL / ALP / LHT / SHD | Globale Palette von TA + Nachschlagetabellen | Paletten pro Seite und pro Geländeart, meist in PCX-Trägern; palettes/ enthält außerdem für fast jede davon eine .alp (65.536 Byte) und .shd / .lht (8.192 Byte) mit demselben Aufbau (41 Sätze) |
✅ beide (kbot pal lookup --palette nimmt eine .pal oder .pcx) |
| FNT-Bitmap-Schriften | fonts/*.fnt, Glyphen mit 1 bpp |
Dasselbe Format, typischerweise größerer Glyphensatz | ✅ lesen |
| SCT-Kartensektionen | sections/<biome>/*.sct, wiederverwendbare Kachelblöcke für den Editor TAE |
Nicht verwendet – das Kachelsystem von TA:K ist anders | ✅ TA; entfällt bei TA:K |
| TNT-Kartengelände | IDVersion == 0x2000, Kachelraster + Höhenkarte + Kartenobjekte + Minikarte |
IDVersion == 0x4000 (Variante); dieselbe Gesamtstruktur, anderer Kachel-Decoder |
✅ TA; ⚠️ TA:K (Header lesbar, Kacheln nicht dekodiert) |
| Begleitdateien von TA:K-Karten | entfällt | .ota (TDF-Metadaten), .txt (Beschreibung), .crt (binär, Zweck unbekannt) |
✅ .ota; – .crt/.txt |
| 3DO-Modelle | Hierarchisch, palettenindizierte oder texturierte Flächen | Ähnlich, aber mit anderem Skinning-Modell; einige zusätzliche Felder pro Primitiv | ✅ TA; ⚠️ TA:K (lädt, aber die Kinematik weicht ab) |
| COB / BOS-Einheitenskripte | scripts/*.cob; stackbasierter Bytecode |
Dasselbe Bytecode-Format und dieselben Opcodes; einige zusätzliche GET_UNIT_VALUE-Ports |
✅ beide |
| TDF / FBI / OTA-Konfigurationen im Textformat | Dieselbe INI-artige Grammatik | Dieselbe Grammatik | ✅ beide |
| Inline-Waffendefinitionen | Nein – Waffen stehen in weapons/*.tdf und werden über den Namen referenziert |
Ja – Unterabschnitte [WEAPON1]/[WEAPON2]/[WEAPON3] in der FBI jeder Einheit |
✅ beide über den documentor |
| KI-Profile | ai/*.txt mit den Direktiven plan/weight/limit |
ai/*.txt mit nackten weight/limit (kein plan-Block) |
✅ beide |
| Baumenüs | Statisches [CANBUILD] in gamedata/sidedata.tdf + dynamische [MENUENTRY]-Ergänzungen in download/*.tdf |
Verzeichnis pro Baueinheit canbuild/<builder>/<unit>.tdf, jeweils mit [Menu].Priority |
✅ beide |
| Raster des Baumenüs | 2 Spalten × 3 Zeilen pro Seite (BUTTON 0–5) | Lineare Liste pro Baueinheit, nach Priority sortiert | – |
| Verdrahtung der Soundbanks | 3 Stufen: SoundCategory der FBI → gamedata/sound.tdf → sounds/*.wav |
Felder soundclass= / soundcategory= mit anderer Auflösung |
✅ Verdrahtung von TA; ⚠️ Verdrahtung von TA:K muss noch beschrieben werden |
| Smacker- / ZRB-Video | data/*.zrb (umbenanntes .smk) |
Dasselbe Smacker-Format unter anderen Endungen | ✅ beide |
| GUI-Menüs | .gui (anderes Format als bei TA:K) |
.gui als durch Leerraum getrennter Widget-Baum; siehe takgui.md |
⚠️ nur TAK beschrieben; .gui von TA noch nicht abgedeckt |
Legende: ✅ vollwertig · ⚠️ teilweise · ❌ nicht unterstützt · – entfällt oder nicht geplant
Was wirklich gemeinsam ist
Dieselben Bytes, derselbe Parser, dieselben Go-Typen:
- HPI-Marker (
'HAPI') – jeder Archivcontainer beginnt damit. - TDF-Grammatik – beide Spiele parsen FBI/OTA/Waffen-TDFs mit demselben Parser. Die Feldnamen unterscheiden sich, die Syntax ist identisch.
- COB-Bytecode – Opcodes, Stack-Modell, Signalmasken, jeder in
cob.md katalogisierte Wert
0x10xxxxxxfunktioniert in beiden. - Smacker-Video –
.smk/.zrbsind bitgleich; nur die Dateiendung ändert sich. - Hierarchiekonzept von 3DO – beide Spiele verwenden Bäume aus benannten Pieces mit Eltern, Kindern und Geschwistern, Festkomma-Koordinaten und Primitive, die Texturen über den Namen referenzieren.
Was sich in Feinheiten unterscheidet (genau lesen)
- Aufbau des HPI-Headers. v1 = insgesamt 20 Byte (5 × uint32). v2 = 8 Byte Vorspann + 24-Byte-Sub-Header. Die ersten 8 Byte sind in beiden identisch (Marker + Version), ein Leser nur für v1 validiert die Magic Number also erfolgreich, bevor er am Rest scheitert. Siehe hpi.md, HPI v2.
- Wirtschaftsfelder der FBI. TA:
BuildCostMetal=+BuildCostEnergy=. TA:K: ein einzigesbuildcost=(Mogrium). Der documentor behandelt beide überUnit.BuildMetal/BuildEnergy(TA) undUnit.BuildCost(TA:K) – siehe types.go. - Seitencodes. TA:
ARM/CORE. TA:K:ARA/TAR/VER/ZON+CRE(Iron Plague) +MON/LIF/NPC. - Waffen-Archetyp. TA: ein Sammelsurium boolescher Felder
(
ballistic=1,lineofsight=1,guidance=1,beamweapon=1, …). TA:K: ein einziger Stringtype=Ballistic/Missile/Magical/Melee. - Schadensmodell. Beide verwenden unter einer Waffe einen
Unterabschnitt
[DAMAGE]mit einemdefault=plus Überschreibungen pro Ziel. TA:K verwendet zusätzlichdamagecategory=an jeder Einheit (Human,Building,Magical), um Resistenzen grober Klassen abzubilden.
Was nur TA hat
- Datei-Nutzdaten aus mehreren Chunks in HPI-Archiven (das Modell „Chunks ≤64 KiB mit Größentabelle“).
- XOR-Verschlüsselung von HPI (positionsabhängiger Seed + transformierter Schlüssel).
[MENUENTRY]-Ergänzung indownload/*.tdf, um Einträge im Baumenü hinzuzufügen, ohne einen Fork von sidedata.tdf anzulegen.- Baumenü-Raster von 2×3 mit
BUTTON0–5 (oben links bis unten rechts). - Eigenes Verzeichnis
weapons/mit TDFs, die über den Namen referenziert werden. - Editorformat SCT (Sektion) – spezifisch für TAE.
- Eine globale Palette (
palettes/palette.pal), mit der jedes Asset gezeichnet wird, und ein Satz Tabellen.alp/.shd/.lht. TA: Kingdoms hat eine Palette pro Seite und Geländesatz, die meisten mit Tabellen desselben Aufbaus.
Was nur TA: Kingdoms hat
- HPI v2 mit vereinfachten Datei-Nutzdaten aus einem einzigen Chunk.
- Verzeichnisbaum
canbuild/<builder>/<unit>.tdffür die Registrierung im Baumenü (linear, ohne Raster). - Inline-Waffendefinitionen
[WEAPONn]in den FBIs. - Wirtschaft mit der einzigen Ressource Mogrium (
buildcost=, keine Aufteilung in Metall und Energie). - Paletten pro Seite, getragen von PCX-Stubs von 1×1, die neben den
.taf-Animationsdateien liegen. - Magie- und Zaubereinheiten (
arapries,vermage,zonsham), deren Waffen Zaubersprüche sind. - Vier (+1) Seiten: Aramon, Taros, Veruna, Zhon – dazu Creon aus der Erweiterung Iron Plague.
anims/buildpic/*.jpg– Einheitenporträts als JPGs von 64×48 (TA verwendet PCX inunitpics/)..kmp-Archive in HPI v2 für Kampagnenmissionen, die Karten mit Missionsskripten bündeln.-disablecavedogverificationals nötiges Kommandozeilenargument, um die meisten gemoddeten Dateien zu laden.
Abweichungen pro Seite – wo die Abdeckung der Spiele steht
Jede Formatseite mit TA:K-Besonderheiten hat einen deutlich gekennzeichneten Abschnitt „TA: Kingdoms“. Kurzer Index:
| Seite | TA:K-Abschnitt |
|---|---|
| hpi.md | TA: Kingdoms – HPI v2, vollständiger Hex-Durchgang im Anhang – Jersey.hpi |
| ai.md | TA: Kingdoms – Profile ohne plan |
| takgui.md | Die ganze Seite betrifft nur TA:K |
| takmap.md | Die ganze Seite betrifft nur TA:K |
Die Referenzkataloge liegen in eigenen Repos:
coreprime/reference-ta– 278 Einheiten, 199 Waffen, 45 Baueinheiten.coreprime/reference-tak– 203 Einheiten, 198 Waffen, 32 Baueinheiten.
Siehe auch
internal/documentor– das Go-Paket, das das Extrahieren für beide Spiele übernimmt.- Stolperfallen – spielspezifische Stolperfallen an einem Ort.
- Modding-Tutorial – derzeit nur für TA; die Abdeckung von TA:K ist eine bekannte Lücke.
- Glossar – Nachschlagewerk zur spielübergreifenden Terminologie.