OPENTYRIAN2000 / ENHANCED
RU
Скачать
OpenTyrian2000 Enhanced Edition · для авторов

Моды для Tyrian: корабли, оружие, враги и уровни

Мод представляет собой папку: файл mod.json с описанием того, что вы добавляете или меняете, плюс, при желании, PNG-спрайты и файлы уровней. Ничего не нужно перекомпилировать и не нужно подбирать числовые ID.

На этой странице

Что может изменить мод для Tyrian

Всё перечисленное ниже задаётся обычными данными в mod.json и PNG-файлах. Игра перезагружает моды на лету.

Оружие

Новые передние и задние пушки со своими уровнями мощности, схемами стрельбы, уроном и спрайтами, или копии оригинального оружия. Выстрелы могут пробивать врагов насквозь или самонаводиться на них.

Корабли, сайдкики, щиты, спецоружие

Создаются с нуля или копируются с оригинального предмета, продаются в магазине или входят в стартовое снаряжение.

Враги

Измените любого оригинального врага или создайте новых: траектории полёта задаются данными, есть слежение за игроком и до четырёх турелей.

Оружие врагов

Дайте врагам собственные схемы стрельбы с теми же полями, что и у уровня мощности оружия игрока.

Волны врагов

Добавьте волны врагов в оригинальный уровень или замените весь его список событий. События записываются по именам.

Спрайты

Замените любой оригинальный спрайт по имени, добавьте новые или перекрасьте все изображения мода одним оттенком.

Пока не поддерживаются: карты уровней (тайлы), музыка, звуковые эффекты и палитра.

Наборы модов в комплекте с игрой

В папке mods/ игры лежат пять наборов; все выключены, пока вы не включите их в меню Setup → Mods (настройки → моды). Их корабли и оружие нарисованы в стиле оригинального Tyrian, продаются в каждом магазине и сбалансированы по оригинальным предметам той же цены. Все пять можно включить одновременно.

Одна папка, у всего есть имя

Оружию, кораблям, врагам и спрайтам, которые создаёт мод, имена даёт автор, а оригинальный контент, который мод копирует или меняет, тоже указывается по имени, например "base": "Vulcan Cannon". Все внутренние слоты движок назначает сам: вы никогда не выбираете числовой ID, и два мода никогда не спорят за один и тот же.

my_mod/
  mod.json              required: "format_version": 1 and "name"
  README.md             optional: shown in Setup → Mods (1 KiB at most)
  levels/ep1_09.json    optional: events of a level
  sprites/shots/*.png   optional: images, cited by their file name

Настоящий mod.json

Это эталонный пример Alien Pack без комментариев. В пакет игры он не входит: он лежит в папке rewrite/mods/_retired/alien_pack/ репозитория. Он добавляет корабль и четыре вида оружия, скопированные с оригинальных, перекрашивает все PNG мода в зелёный и задаёт стартовое снаряжение новой игры:

{
  "$schema": "../../mod.schema.json",
  "format_version": 1,
  "name":        "Alien Pack",
  "author":      "OpenTyrian2000 Team",
  "version":     "3.0",
  "description": "Green alien fleet — 4 stock weapons re-skinned via engine tint.",
  "tint":        "green",
  "enabled":     false,
  "ships": [
    { "name": "Xeno Vanguard", "base": "Gencore II", "ship_sprite": "xeno_vanguard", "always_available": true }
  ],
  "weapons": [
    { "name": "Alien Vulcan Cannon", "base": "Vulcan Cannon",          "always_available": true },
    { "name": "Alien Mega Cannon",   "base": "Mega Cannon",            "always_available": true },
    { "name": "Alien Bio Spreader",  "base": "Sonic Wave",             "always_available": true },
    { "name": "Alien Guided Orbs",   "base": "Heavy Missile Launcher", "always_available": true }
  ],
  "starter": {
    "ship":         "Xeno Vanguard",
    "front_weapon": "Alien Vulcan Cannon",
    "rear_weapon":  "Alien Guided Orbs"
  }
}

Рядом с ним в папке sprites/ мода лежат изображение корабля (sprites/ships/xeno_vanguard.png), иконки для магазина и выстрелы; "tint" перекрашивает их все при загрузке мода. "$schema" необязателен: он указывает вашему редактору на опубликованную JSON-схему для автодополнения и проверки ошибок на лету. Любой неизвестный ключ считается ошибкой, так что опечатка никогда не останется незамеченной.

Установка мода из .zip

  1. В игре откройте Setup → Mods (настройки → моды) и выберите Install a mod (.zip) (установить мод) или перетащите .zip в окно игры, пока открыто это меню.
  2. Мод копируется в вашу папку mods/ и появляется в списке. Каждый мод помечен как ON (включён), OFF (выключен) или ERR (ошибка).
  3. Enter включает или выключает выбранный мод; Esc применяет изменения, сразу перезагружает моды и возвращает на титульный экран.

Файл mod.json должен лежать в корне архива или внутри единственной папки верхнего уровня. Архив, который попытался бы записать что-то за пределы своей папки, или мод, папка которого уже существует, отклоняется, а причина показывается в строке мода: чтобы обновить мод, сначала удалите его папку. Пункт Open mods folder (открыть папку модов) открывает эту папку в файловом менеджере, так что туда можно копировать папки модов и вручную.

Сломанный мод показывает ошибку в своей строке, а не обрушивает игру. Ограничения защищают от недоверенных файлов: не более 32 модов, PNG-файлы не больше 4 МиБ и 2048 пикселей по стороне и ещё несколько ограничений, перечисленных на странице ограничений и устранения неполадок (на английском).

Редактор уровней и запуск с любого места

В репозиторий входит редактор уровней, встроенный в редактор Godot. Его панель Tyrian позволяет выбрать стартовую строку на карте уровня, а также содержит кнопки Add an enemy here (добавить врага), Export to the mod (экспорт в мод), Build the .zip package (собрать .zip, чтобы поделиться) и Play from here (играть отсюда). Последняя запускает уровень, перемотанный до выбранной строки, так что встречу с врагами можно проверить за секунды.

Редактор уровней в Godot, открытый на уровне Tyrian, справа панель Tyrian
Редактор уровней · панель Tyrian · запуск с выбранной строки

Редактор работает с исходным кодом: сначала соберите игру (см. docs/build.md, на английском), затем откройте проект Godot. Для создания мода он не обязателен: события уровня можно писать и вручную в levels/epN_NN.json. Этот пример из руководства по моддингу добавляет двух врагов в первый уровень эпизода 1:

{ "episode": 1, "lvl_file_num": 9,
  "add_events": [ { "time": 300, "spawn": "my_drone", "x": 130 },
                  { "time": 300, "spawn": "tech_corridor_32", "x": "random", "link": 3 } ] }

add_events вставляет события в оригинальный список, events заменяет его, а random_enemies заменяет случайных врагов уровня. time задаёт позицию прокрутки, которую показывает редактор. Все типы событий перечислены на странице Level events (на английском).

С чего начать

  • Скопируйте шаблон rewrite/mod_template/ из репозитория в свою папку mods/, переименуйте его и отредактируйте mod.json.
  • Откройте пять наборов модов в папке mods/ игры (они есть и в rewrite/mods/ репозитория): два набора кораблей с пятью нарисованными позами на корабль и три набора оружия с одиннадцатью уровнями мощности и собственными спрайтами выстрелов.
  • Изучите эталонные примеры в rewrite/mods/_retired/ репозитория (в пакет игры они не входят): Alien Pack (скопированные предметы, оттенок и стартовое снаряжение), Example Behaviors (новое вражеское оружие и петляющий зигзагом дрон с турелью, добавленные в уровень) и Nova Weapons (три вида оружия, написанные с нуля).
  • Пройдите учебник: ваш первый уровень примерно за пятнадцать минут, от добавления врага до публикации .zip.

Справочник по моддингу в вики (на английском)

Вопросы, баги, идеи?

Расскажите, что вы думаете об Enhanced Edition: мы читаем каждое сообщение.

Написать нам