Перейти к содержанию

Редактор и работа с проектом

TODO

Статья находится в разработке.

Обычно используют редактор Slade, как на данный момент наиболее продвинутый и постоянно обновляющийся. В этой статье, а также в главе "Первый мод", будет рассматриваться именно он, хотя, конечно, можно использовать и любые другие.

В современности основные практики работы с проектом выглядят примерно так:

  • Работать в *.pk3-архиве, всё редактировать через Slade, при необходимости импортировать/экспортировать ресурсы.
  • Располагать проект в отдельной директории и работать через Slade.
  • Располагать проект в отдельной директории и использовать любой редактор файлов и любой файловый менеджер, изредка, для особых задач, запуская Slade.

Редактор Slade

TODO

В принципе файлы кода, в том числе ZScript, можно редактировать в блокноте или привычной IDE. Ресурсы тоже можно класть вручную, но это не всегда неудобно.

Если работа идёт через любой сторонний редактор текста (Блокнот, Notepad++, Visual Studio Code Editor и так далее), то Slade нужен больше для того, чтобы соединять всё в едином проекте. Здесь Slade снова будет предупреждать о том, что часть файлов изменилась, и нужно будет принимать все изменения в проект.

Предварительная настройка Slade

TODO

Настройка путей и выбор Base Resource.

Архив PK3

Современный и подходящий формат под движки семейства *ZDoom. Стандарт де-факто.

На самом деле является *.zip-архивом, то есть поддерживает каталоги, сжатие и другие приятные вещи. Имеет стройную структуру категорий ресурсов.

Работа с проектом

Создание: нажать на "File" → "New" → "Archive" (или комбинацию клавиш Ctrl + Shift + N). Так как *.pk3 — на самом деле *.zip-архив, в открывшемся меню нужно выбрать создания нового *.zip, как показано на рис. 2:

Рисунок 1. Выбор формата *.zip, он же *.pk3

Сохранение проекта производится через "File" → "Save" или через комбинацию клавиш Ctrl + S.

Новый файл в проект добавляется либо через меню "Archive" → "New Entry", либо через комбинацию клавиш Ctrl + N.

Рисунок 2. Создание файла ZScript

Преимущества и недостатки

Плюсы:

  • Хорошо структурированный и документированный формат. Известен всем, кто хотя бы раз запускал современную модификацию в портах (U/G)ZDoom.

Минусы:

  • Требуется внешний редактор вроде Slade.
  • Не приспособлен к работе с возможностями операционной системы и, в частности, с системами контроля версий. Впрочем, обычно без труда конвертируется во вариант с каталогом.
  • Из-за развития движков формат может незначительно поменяться (например, несколько лет назад была заменена часть доступных значений в директории /filter).

Каталог

Структура категорий ресурсов при работе с каталогом будет та же, что и у *.pk3.

Работа с проектом

TODO

Вкратце: создать в Проводнике директорию под проект, открыть в Slade через "File" → "Open Directory".

Для добавления файла через файловую систему:

  • Создать новый файл через Проводник. В этом случае Slade сообщит об изменённых файлах и предложит выбрать те, которые нужно добавить в проект — соглашаемся со всеми;
  • Также, как и в случае с архивом *.pk3, создать новый файл в самом Slade через Ctrl + N (см. рис. 3).

Для добавления файла через Slade действия аналогичны таким же для архива *.pk3.

Преимущества и недостатки

Плюсы:

  • Все преимущества самой операционной системы и её файловой системы. Сюда относятся сортировка по дате добавления/изменения, индексированный поиск, символические ссылки и многое другое.
    • Работа происходит через файловую систему ОС, поэтому в каталоге с проектом удобно применять в системе контроля версий вроде git.
  • В принципе можно обойтись без редакторов вроде Slade.
  • Без труда конвертируется в *.pk3.

Минусы:

  • Если работа происходит через Slade, то изменения при запуске движка будут видны только после сохранения всего проекта. Для этого можно использовать пункт меню "File" → "Save" или комбинацию клавиш Ctrl + S. В некоторых версиях Slade перед редактированием ещё придётся нажать на пункт "View as Text" в верхней-правой части панели просмотра.
  • Все недостатки самой операционной системы и её файловой системы:
    • Не получится создать файлы с одинаковыми названиями (к примеру, название "---" в качестве разделителя).
    • Невозможно поставить элементы в строго заданном пользователем порядке.
    • Доступны не все названия файлов. К примеру, ОС Windows нельзя прямыми методами создать файл с символами /, \, *, ?, ! и некоторыми другими, а также с названием псевдоустройств вроде NUL, COM1 и AUX. Да, в принципе такие файлы возможны, но следует иметь в виду, что кто-то другой после такого не сможет нормально поработать с проектом.

Древовидная структура проекта

Применимо и к архиву *.pk3, и к каталогу.

Все ресурсы игры — звуки, спрайты, 3D-модели, код, различная конфигурация — рассортированы по категориям, подробно ознакомиться с ними можно здесь. Регистр названий не имеет значения. Основные из них:

Каталог Описание
(Корневой) Основная информация о проекте, конфигурация, заголовки исходного кода и другие подобные файлы
Sprites Спрайты акторов
Sounds Звуки
Textures Текстуры (без разделения на текстуры для стен и для поверхности)
Music Музыка
Maps Уровни
Graphics Графика игры, например, заставка, шрифты и некоторые элементы UI
ACS Скомпилированные скрипты ACS, но обычно туда же кладут и исходники


Другие поддерживаемые форматы архивов

Архив WAD

Изначальный и очень известный в мире формат данных. Для проектов, в которых уже есть ZScript, применяется крайне нечасто в силу своих ограничений.

Работа с проектом

Для добавления файла, как и в случае с архивом *.pk3, создать новый файл через Ctrl + N (см. рис. 3). Архив *.wad не поддерживает директорий, поэтому выбора пути не будет.

Преимущества и недостатки

Плюсы:

  • Хорошо известен, была создана масса полезных утилит по работе с ним.
  • При аккуратной работе — абсолютная совместимость со всеми движками, начиная с первого оригинального Doom. Очень редко, но иногда ZScript имеет смысл вставлять и в такие проекты.

Минусы:

  • В больших проектах в нём трудно ориентироваться.
  • Требует Slade, XWE или другой подобный редактор. Хотя, несомненно, менее требователен по сравнению с тем же *.pk3.
  • Не поддерживает сжатие, все данные в нём хранятся в сыром виде.
  • Все утилиты, написанные для *.wad, вполне заменяются современными аналогами, например, скриптами автоматизации в Slade. С другой стороны, свои скрипты ещё сначала надо написать.

Менее известные форматы

  • Архив *.zip игровой движок должен автоматически распаковывать при запуске. В нём можно хранить как другие архивы, так и сразу файлы проекта.
  • *.pk7 — аналог формата *.7z (также, как и *.pk3 на деле является *.zip).
  • *.ipk3 — тот же *.pk3, но движок воспирнимает его как IWAD. То есть, если он находится в известном движку каталоге, то появится в списке выбора IWAD при запуске игры.
  • *.ipk7 — IWAD в формате *.7z.

Также есть форматы вроде *.pke (архив Eternity Engine), но движки семейства *ZDoom их не поддерживают.