모든 형식 페이지 ↓
튜토리얼·참고 자료

TA와 TA: Kingdoms — 형식 차이

출처: coreprime/kbot @ 0ab97bf · GitHub에서 편집

Total Annihilation(1997)과 TA: Kingdoms(1999) 사이에서 같은 것, 비슷한 것, 다른 것을 한 페이지에 정리했습니다. 두 게임 사이에서 작업을 옮기거나, 만들고 있는 도구가 어느 게임을 지원해야 할지 정할 때 유용합니다.

Tip

요약. TA:K는 TA의 컨테이너 형식(HPI, GAF, TDF, COB)을 대부분 유지했지만 이를 감싸는 구조는 단순하게 만들었고(HPI v2에 XOR 없음, 별도의 weapons/ 디렉터리 없음, 2×3 건설 격자 없음), 그 위에 완전히 새로운 것들을 더했습니다(진영 4개, mogrium 경제, 마법 시전 "무기", 미션별 .kmp 아카이브).


빠른 참조표

형식 TA TA: Kingdoms kbot 지원 상태
HPI / UFO / CCX / GP3 아카이브 v1 — XOR 암호화, 파일마다 청크 여러 개, 청크는 64 KiB 이하 v2 — 평문 봉투, 파일마다 SQSH 청크 하나, 약 32바이트 헤더 ✅ 둘 다 읽기, ✅ v1 쓰기, ❌ v2 쓰기
.kmp 캠페인 아카이브 해당 없음 확장자를 바꾼 HPI v2. 미션별 맵 + 스크립트 + GAF를 묶음 ✅ 읽기
GAF / TAF 스프라이트 애니메이션 .gaf, 팔레트는 palettes/palette.pal에서 팔레트 방식 .taf(같은 바이너리 형식), 팔레트는 진영별 .pcx에서. 여기에 더해 트루컬러 .taf/.tsf 변형(16비트 ARGB, taf.md 참고) ✅ 모두 읽기, ✅ GAF와 트루컬러 TAF/TSF 쓰기
PCX 이미지 유닛 초상화용 unitpics/<name>.pcx(96×96 팔레트) .taf 옆에서 팔레트를 담는 1×1 파일로 쓰임 ✅ 읽기/쓰기
PAL / ALP / LHT / SHD 전역 TA 팔레트 + 조회 테이블 진영별·지형별 팔레트, 대부분 팔레트를 담는 PCX 안에 있음. palettes/에는 그 거의 모두(41개 묶음)에 대해 같은 구조의 .alp(65,536바이트)와 .shd / .lht(8,192바이트)도 있음 ✅ 둘 다(kbot pal lookup --palette는 .pal과 .pcx를 모두 받음)
FNT 비트맵 글꼴 fonts/*.fnt 1bpp 글리프 같은 형식, 보통 글리프 세트가 더 큼 ✅ 읽기
SCT 맵 섹션 TAE 에디터용 재사용 타일 블록 sections/<biome>/*.sct 쓰지 않음 — TA:K의 타일 시스템은 다름 ✅ TA, TA:K는 해당 없음
TNT 맵 지형 IDVersion == 0x2000, 타일 그리드 + 높이 맵 + 지형지물 + 미니맵 IDVersion == 0x4000(변형). 전체 구조는 같고 타일 디코더가 다름 ✅ TA, ⚠️ TA:K(헤더는 읽음, 타일은 디코딩 안 됨)
TA:K 맵 부속 파일 해당 없음 .ota(TDF 메타데이터), .txt(설명), .crt(바이너리, 용도 불명) ✅ .ota, — .crt/.txt
3DO 모델 계층형, 팔레트 인덱스 면 또는 텍스처 면 비슷하지만 스키닝 모델이 다름. 프리미티브마다 필드가 몇 개 더 있음 ✅ TA, ⚠️ TA:K(로드되지만 운동학이 다름)
COB / BOS 유닛 스크립트 scripts/*.cob, 스택 기반 바이트코드 같은 바이트코드 형식과 같은 옵코드. GET_UNIT_VALUE 포트가 몇 개 추가됨 ✅ 둘 다
TDF / FBI / OTA 텍스트 설정 같은 INI 모양의 문법 같은 문법 ✅ 둘 다
인라인 무기 정의 없음 — 무기는 이름으로 참조하는 weapons/*.tdf에 있음 있음 — 각 유닛 FBI 안의 [WEAPON1]/[WEAPON2]/[WEAPON3] 하위 섹션 ✅ documentor로 둘 다
AI 프로필 plan/weight/limit 지시문이 있는 ai/*.txt weight/limit만 있는 ai/*.txt(plan 블록 없음) ✅ 둘 다
건설 메뉴 정적인 gamedata/sidedata.tdf [CANBUILD] + 동적인 download/*.tdf [MENUENTRY] 덧붙이기 건설 유닛별 디렉터리 canbuild/<builder>/<unit>.tdf, 각각 [Menu].Priority가 있음 ✅ 둘 다
건설 메뉴 격자 페이지마다 2열 × 3행(BUTTON 0–5) 건설 유닛마다 Priority 순서의 일렬 목록 —
사운드 뱅크 연결 3계층: FBI SoundCategory → gamedata/sound.tdf → sounds/*.wav 찾는 방식이 다른 soundclass= / soundcategory= 필드 ✅ TA 연결, ⚠️ TA:K 연결은 문서화 필요
Smacker / ZRB 영상 data/*.zrb(확장자를 바꾼 .smk) 같은 Smacker 형식, 다른 확장자 ✅ 둘 다
GUI 메뉴 .gui(TA:K와 다른 형식) 공백 구분 위젯 트리 .gui. takgui.md 참고 ⚠️ TAK만 설명됨, TA .gui는 아직 다루지 않음

범례: ✅ 1급 지원 · ⚠️ 부분 지원 · ❌ 지원 안 함 · — 해당 없음 또는 계획 없음


실제로 공유하는 것

같은 바이트, 같은 파서, 같은 Go 타입:

  • HPI 표식('HAPI') — 모든 아카이브 컨테이너가 이것으로 시작합니다.
  • TDF 문법 — 두 게임 모두 같은 파서로 FBI/OTA/무기 TDF를 파싱합니다. 필드 이름은 다르지만 문법은 똑같습니다.
  • COB 바이트코드 — 옵코드, 스택 모델, 시그널 마스크, cob.md에 정리된 모든 0x10xxxxxx 값이 두 게임에서 모두 동작합니다.
  • Smacker 영상 — .smk / .zrb는 비트 단위로 동일하며, 파일 확장자만 다릅니다.
  • 3DO 계층 개념 — 두 게임 모두 이름 붙은 피스의 부모/자식/형제 트리, 고정소수점 좌표, 텍스처를 이름으로 참조하는 프리미티브를 씁니다.

미묘하게 다른 것(주의해서 읽으세요)

  • HPI 헤더 구조. v1 = 전체 20바이트(5 × uint32). v2 = 8바이트 프롤로그 + 24바이트 서브헤더. 처음 8바이트(표식 + 버전)는 둘이 똑같으므로, v1만 아는 리더는 매직 검증까지는 성공하고 나머지에서 멈춥니다. hpi.md HPI v2를 참고하세요.
  • FBI 경제 필드. TA: BuildCostMetal= + BuildCostEnergy=. TA:K: 하나뿐인 buildcost=(mogrium). documentor는 Unit.BuildMetal/BuildEnergy(TA)와 Unit.BuildCost(TA:K)로 둘 다 처리합니다 — types.go를 참고하세요.
  • 진영 코드. TA: ARM / CORE. TA:K: ARA / TAR / VER / ZON + CRE(Iron Plague) + MON / LIF / NPC.
  • 무기 기본 유형. TA: 불리언 필드의 묶음(ballistic=1, lineofsight=1, guidance=1, beamweapon=1 등). TA:K: 하나의 type=Ballistic / Missile / Magical / Melee 문자열.
  • 피해 모델링. 둘 다 무기 아래에 default=와 대상별 재정의를 담은 [DAMAGE] 하위 섹션을 씁니다. TA:K는 여기에 더해 넓은 분류별 저항을 모델링하려고 각 유닛에 damagecategory=(Human, Building, Magical)를 씁니다.

TA에만 있는 것

  • HPI 아카이브의 여러 청크로 된 파일 페이로드(크기 테이블이 있는 64 KiB 이하 청크 모델).
  • HPI XOR 암호화(위치별 시드 + 변환된 키).
  • sidedata.tdf를 복사해 고치지 않고 건설 메뉴 항목을 추가하는 download/*.tdf [MENUENTRY] 덧붙이기.
  • BUTTON 0–5(왼쪽 위에서 오른쪽 아래)인 2×3 건설 메뉴 격자.
  • 이름으로 참조하는 TDF가 모인 별도의 weapons/ 디렉터리.
  • SCT(섹션) 에디터 형식 — TAE 전용.
  • 모든 에셋을 그리는 데 쓰는 전역 팔레트 하나(palettes/palette.pal)와 .alp / .shd / .lht 테이블 한 묶음. TA: Kingdoms에는 진영과 지형 세트마다 팔레트가 있고, 대부분 같은 구조의 테이블을 함께 갖습니다.

TA: Kingdoms에만 있는 것

  • 파일 페이로드를 청크 하나로 단순화한 HPI v2.
  • 건설 메뉴 등록용 canbuild/<builder>/<unit>.tdf 디렉터리 트리(일렬, 격자 없음).
  • FBI 안의 인라인 [WEAPONn] 무기 정의.
  • Mogrium 단일 자원 경제(buildcost=, 금속/에너지 구분 없음).
  • .taf 애니메이션 파일 옆에 놓인 1×1 PCX 스텁에 담긴 진영별 팔레트.
  • 무기가 마법인 마법 / 마법 시전 유닛(arapries, vermage, zonsham).
  • 진영 4개(+1): Aramon, Taros, Veruna, Zhon — 그리고 Iron Plague 확장팩의 Creon.
  • anims/buildpic/*.jpg — 64×48 JPG로 된 유닛 초상화(TA는 unitpics/의 PCX를 씀).
  • 미션별 맵과 미션 스크립트를 묶은 .kmp 캠페인 미션 HPI v2 아카이브.
  • 고친 파일 대부분을 로드하는 데 필요한 -disablecavedogverification 명령줄 인수.

페이지별 차이점 — 각 게임을 다루는 곳

TA:K 고유 사항이 있는 모든 형식 페이지에는 분명하게 표시된 "TA: Kingdoms" 절이 있습니다. 빠른 색인:

페이지 TA:K 절
hpi.md TA: Kingdoms HPI v2, 전체 헥스 분석은 부록 — Jersey.hpi
ai.md TA: Kingdoms — plan이 없는 프로필
takgui.md 페이지 전체가 TA:K 전용
takmap.md 페이지 전체가 TA:K 전용

레퍼런스 카탈로그는 별도 저장소에 있습니다.


함께 보기

  • internal/documentor — 두 게임의 추출을 모두 처리하는 Go 패키지.
  • 주의할 점 — 게임별 주의할 점을 한곳에 모은 페이지.
  • 모딩 튜토리얼 — 현재는 TA만 다룹니다. TA:K는 아직 다루지 못한 알려진 공백입니다.
  • 용어집 — 두 게임에 걸친 용어 레퍼런스.