Создавайте карты, моды, юниты и инструменты для Total Annihilation
Всё, что нужно авторам для Total Annihilation и TA: Kingdoms: справочник по всем форматам файлов обеих игр, байт за байтом; kbot — набор инструментов, который читает и записывает эти файлы; и руководство по упаковке карт, модов, мутаторов и компьютерных игроков для Open Annihilation.
Справочник форматов файловвсе форматы обеих игр, от архивов до скриптов юнитовВесь каталог ›
На каждой странице устройство формата на диске показано рядом с командой kbot, которая открывает его в вашей собственной установке: что это за файл, его заголовок и данные байт за байтом, порядок чтения, разбор настоящего файла Cavedog и подводные камни.
Контейнеры и обёртки
Графика и медиа
GAF
Анимации спрайтов с индексированными цветами (курсоры, взрывы, детали юнитов, объекты карты)
.gaf .tafTAF / TSF
Полноцветные (16-битный ARGB) анимации TA: Kingdoms — эффекты заклинаний, взрывы, фоны меню — и их редактируемая текстовая форма
.taf .tsfPCX
Растровое изображение ZSoft Paintbrush — портреты юнитов, панели интерфейса и носители палитр в 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 и трёхуровневая схема подключения звуковых банков
.wavКарты и рельеф
SCT
Многоразовые секции карт, из которых сшивают карты .tnt
.sctTNT
Полная карта для игры (сетка тайлов + карта высот + миникарта + список объектов)
.tntКарты TA:K
Как устроены карты TA: Kingdoms — рельеф с наложенными текстурами + отрисовка миникарты, а также сопутствующий файл сценария .crt (расставленные юниты, правила, триггеры)
.tnt .ota .crt .kmpЮниты, скрипты, конфигурации
3DO
Иерархическая 3D-сетка юнита или объекта с гранями в индексированных цветах палитры
.3doCOB / BOS
Стековый байткод анимации и скриптов, который управляет каждым юнитом
.cob .bosTDF / FBI / OTA
Конфигурационные деревья в стиле INI — характеристики юнитов, оружие, метаданные карт. Включает полный словарь полей FBI.
.tdf .fbi .otaTDF в gamedata
Классы передвижения, данные сторон, привязки звуков, справка по оружию
gamedata/*.tdfПрофили ИИ
Текстовые веса ИИ и лимиты юнитов по уровням сложности (в профилях TAK нет plan, см. примечание о TAK)
ai/*.txtИнтерфейс TA: Kingdoms
Руководства и справка
Быстрый старт
Пять команд для начала.
Моддинг юнита
Сквозное руководство: извлечь → изменить → перепаковать → проверить (TA).
Подводные камни
Шпаргалка на одну страницу со всеми подводными камнями из документации по форматам.
Форматы TA и TA:K
Таблица на одну страницу: что общее, что похоже, а что есть только в одной игре.
Глоссарий
Распространённые термины (piece, axis, sealevel, signal mask, …).
Набор инструментов kbotодна командная строка для всех форматовkbot на GitHub ›
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Моддинг ›
Open Annihilation запускает карты и моды, которые вы делаете. Набор карт — это один файл .oamap, мод — один .oamod, мутатор — один .oamut, а компьютерный игрок — один .oabrain: zip-архив с манифестом в корне, который игра сама проверяет и устанавливает. Руководство по моддингу разбирает каждый из них, глава за главой.
Устройство набора карт
Zip-файл .oamap, его манифест oamap.yaml, индекс карт, который пишет упаковщик, и как размер и объекты карты решают, подходит ли она к игре.
02Устройство мода
Zip-файл .oamod и профиль oamod.yaml: идентификация, структура, лимиты, ключи данных, расширения скриптов и стандартные доработки, которые включает мод.
03Сделать мутатор
Небольшой .oamut поверх основной игры или любого мода: папка, манифест, план, который возвращает mutate, параметры, песочница и порядок применения стека.
04Примеры на Lua
Шесть рабочих скриптов из настоящих пакетов: одно правило, масштаб с ограничениями, одна сторона, хук units с отказом от игры, хук features и план files со слоями папок.
05Перенос старого мутатора
KroggyComm 1.1 из исходных архивов в пакет, а также файл правил TA: Mutation, оставленный через sm или переписанный на Lua.
06Проверка, упаковка и публикация
oa-tool mutator check и pack, пробный прогон, что показывает страница каталога, значок и как предложить пакет Core Prime.
07Сделать мозг
Пакет .oabrain для одного места компьютера: папка, все ключи манифеста, теги, уровни, полный обзор, где выполняется скрипт, бюджеты и что бывает, когда он останавливается.
08Lua мозга
Манифест и скрипт Steady Commander, хуки, что мозг может знать и делать, числа, случайные значения, таймеры и чат.
09Classic: разбор примера
Встроенный компьютерный игрок на Lua: файлы, таблица задач, одна задача, заметки о причудах, что остаётся в движке и как доказано, что приказы совпадают.
10Обученные сети
Зачем мозгу поставлять .oann, целочисленная арифметика, слои, запуск сети, oa-tool brain net, лимиты и что показывает Библиотека.
11Проверка, упаковка и публикация мозга
oa-tool brain pack и check, матч без графики и трассировка, проверка в Библиотеке и журнал места, тип oabrain в каталоге и как предложить пакет Core Prime.
12Стандартные доработки
Задокументированные правила, которые может включить профиль: ключ, значения и исходное поведение каждого. Доработки симуляции должны совпадать у всех игроков.
13Расширения скриптов
Значения, которые профиль может передать скриптам юнитов мода, например число убийств юнита или союзы его владельца, и как скрипт COB читает каждое из них.
14Версии и выпуски
Версия — произвольный текст без порядка. packaging.revision растёт с каждой переупаковкой, каталог нумерует выпуски. Не выпускайте одну версию и ревизию с разными байтами.
15Публикация в Core Prime
Проверка пакета, отправка в библиотеку контента, как выпуск появляется в каталоге и в Библиотеке у каждого игрока и как запустить собственный реестр.