Total Annihilation용 맵, 모드, 유닛, 도구 만들기
Total Annihilation과 TA: Kingdoms용 콘텐츠를 만드는 데 필요한 모든 것을 모았습니다. 두 게임에 들어 있는 모든 파일 형식을 바이트 단위로 설명하는 레퍼런스, 이를 읽고 쓰는 툴킷 kbot, 그리고 Open Annihilation용 맵, 모드, 뮤테이터, 컴퓨터 플레이어를 패키징하는 방법입니다.
파일 형식 레퍼런스두 게임에 쓰이는 모든 형식, 아카이브부터 유닛 스크립트까지전체 목록 ›
각 페이지는 형식이 디스크에 저장되는 구조와, 여러분의 설치본에서 그 구조를 직접 보여 주는 kbot 명령을 함께 다룹니다. 파일의 용도, 헤더와 데이터의 바이트 단위 구조, 읽는 순서, 실제 Cavedog 파일 분석, 그리고 주의할 점까지 담았습니다.
컨테이너·래퍼 형식
그래픽·미디어
GAF
인덱스 색상 스프라이트 애니메이션(커서, 폭발, 유닛 장치, 지형지물)
.gaf .tafTAF / TSF
TA: Kingdoms의 트루컬러(16비트 ARGB) 애니메이션(마법 효과, 폭발, 메뉴 배경)과 이를 편집할 수 있는 텍스트 형식
.taf .tsfPCX
ZSoft Paintbrush 비트맵 — 유닛 초상화, GUI 패널, TA:K에서 팔레트를 담는 파일
.pcxPAL / ALP / LHT / SHD
256색 팔레트(1,024바이트)와 색상 조회 테이블: .alp 256×256(65,536바이트), .shd / .lht 32×256(8,192바이트)
.pal .alp .lht .shdFNT
픽셀당 1비트의 가변 폭 비트맵 글꼴
.fntSmacker / ZRB
컷신 영상(RAD Game Tools Smacker, 확장자를 .zrb로 바꿈)
.smk .zrbBink
TA: Kingdoms 컷신 영상(RAD Bink 1) — Smacker의 후속 형식
.bikWAV / 사운드
일반 WAV와 3계층 사운드 뱅크 연결 구조
.wav맵·지형
유닛·스크립트·설정
3DO
팔레트 인덱스 면으로 이루어진 계층형 3D 유닛/지형지물 메시
.3doCOB / BOS
모든 유닛을 움직이는 스택 기반 애니메이션/스크립트 바이트코드
.cob .bosTDF / FBI / OTA
INI 스타일 설정 트리 — 유닛 능력치, 무기, 맵 메타데이터. FBI 필드 사전 전체 포함.
.tdf .fbi .otagamedata TDF
이동 클래스, 진영 데이터, 사운드 바인딩, 무기 참고 자료
gamedata/*.tdfAI 프로필
일반 텍스트로 된 난이도별 AI 가중치와 유닛 제한(TAK 프로필에는 plan이 없음, TAK 참고 사항 참조)
ai/*.txtTA: Kingdoms GUI
튜토리얼·참고 자료
kbot 툴킷모든 형식을 다루는 하나의 명령줄 도구GitHub의 kbot ›
kbot은 HPI, UFO, CCX, GP3 아카이브를 열고, 맵, 섹션, 스프라이트, 팔레트, 글꼴을 렌더링하며, COB 스크립트를 디컴파일하고 검사하며, TDF와 FBI 파일을 파싱하고, 설치본 전체를 탐색 가능한 하나의 폴더로 마운트합니다. 컨텍스트를 설정하면 형식 레퍼런스의 모든 명령을 쓰인 그대로 실행할 수 있습니다.
Go로 설치한 다음 게임 폴더를 등록하세요:
go install github.com/coreprime/kbot/cmd/kbot@latest
kbot ctx add ~/games/totala --alias ta --game totala
Open Annihilation 모딩mods.coreprime.net의 모딩 정보(Modding Info, 영어)모딩 정보(영어) ›
Open Annihilation에서는 여러분이 만든 맵과 모드로 플레이할 수 있습니다. 맵 팩은 .oamap 파일 하나, 모드는 .oamod 하나, 뮤테이터는 .oamut 하나, 컴퓨터 플레이어는 .oabrain 하나입니다. 모두 최상위에 매니페스트가 있는 zip 파일로, 게임이 검사한 뒤 설치합니다. 모딩 정보 페이지에서 각각을 장별로 다룹니다.
맵 팩의 구조
.oamap zip과 oamap.yaml 매니페스트, 패커가 기록하는 맵 인덱스, 그리고 맵의 크기와 지형지물로 게임에 들어갈 수 있는지가 정해지는 방식.
02모드의 구조
.oamod zip과 프로필 oamod.yaml에 담기는 식별 정보, 레이아웃, 제한, 데이터 키, 스크립트 확장, 그리고 이 프로필이 켜는 표준 규칙.
03뮤테이터 만들기
기본 게임이나 어떤 모드에든 덧씌우는 작은 .oamut. 폴더, 매니페스트, mutate가 돌려주는 계획, 옵션, 샌드박스, 그리고 여러 개를 겹칠 때 적용되는 순서.
04Lua 예제
실제 패키지에서 가져온, 동작하는 스크립트 여섯 개. 규칙 하나, 상한이 있는 배율 조정, 진영 하나, 게임을 거부할 수 있는 유닛 훅, 지형지물 훅, 그리고 폴더를 겹쳐 쓰는 파일 계획.
05기존 뮤테이터 이식하기
KroggyComm 1.1을 원래 아카이브에서 패키지로 옮기고, TA: Mutation 규칙 파일은 sm으로 그대로 쓰거나 Lua로 다시 작성합니다.
06검사, 패키징, 게시
oa-tool mutator check와 pack, 시험 실행, 카탈로그 페이지에 보이는 내용, 아이콘, 그리고 Core Prime에 패키지를 제출하는 방법.
07브레인 만들기
컴퓨터 슬롯 하나를 맡아 플레이하는 .oabrain. 폴더, 매니페스트의 모든 키, 태그, 레벨, 전체 시야, 스크립트가 실행되는 곳, 실행 예산, 그리고 브레인이 멈췄을 때 일어나는 일.
08브레인의 Lua
Steady Commander의 매니페스트와 스크립트, 훅, 브레인이 알 수 있는 것과 할 수 있는 것, 숫자, 난수, 타이머, 채팅.
09예제로 보는 Classic
Lua로 작성한 내장 컴퓨터 플레이어. 파일 구성, 작업 테이블, 작업 하나, 특이 동작 메모, 엔진에 남는 부분, 그리고 같은 명령을 내린다는 것을 증명하는 방법.
10학습된 네트워크
브레인이 .oann을 함께 배포하는 이유, 정수 연산, 레이어, 네트워크 실행, oa-tool brain net, 제한, 그리고 라이브러리에 표시되는 내용.
11브레인 검사, 패키징, 게시
oa-tool brain pack과 check, 헤드리스 대전과 트레이스, 라이브러리의 검사와 슬롯 로그, 카탈로그의 oabrain 종류, 그리고 Core Prime에 패키지를 제출하는 방법.
12표준 규칙
프로필이 켤 수 있는 문서화된 규칙. 규칙마다 키와 값, 그리고 그 규칙이 비롯된 동작을 적었습니다. 시뮬레이션 규칙은 모든 플레이어가 같게 맞춰야 합니다.
13스크립트 확장
프로필이 모드의 유닛 스크립트에 넘겨줄 수 있는 값(예: 유닛의 처치 수, 소유자의 동맹 관계)과 COB 스크립트가 각 값을 읽는 방법.
14버전과 릴리스
버전은 자유 형식 텍스트이며 순서를 매기지 않습니다. packaging.revision은 다시 패키징할 때마다 올라가고, 릴리스 번호는 카탈로그가 매깁니다. 같은 버전과 리비전을 다른 바이트에 다시 쓰지 마세요.
15Core Prime에 게시하기
패키지 검사, 콘텐츠 라이브러리 제출, 릴리스가 카탈로그와 모든 플레이어의 라이브러리에 나타나는 방식, 그리고 자체 레지스트리를 운영하는 방법.