Доброго времени суток, дзенчане! Сегодня я научу Вас делать моды для Doom. А именно для портов, основанных на ZDoom, такие как LZDoom, GZDoom и Zandronum.
Что-ж, приступим.
Для начала, Вам потребуется скачать набор инструментария, а точнее, несколько разных программ, но они все нужны для моддинга:
1. Профессиональный текстовый редактор, например Notepad++ либо Microsoft Visual Code. Я остановился на первом.
https://notepad-plus-plus.org/
https://code.visualstudio.com/
2. Архиватор 7-zip для запаковки/распаковки архивов pk3/pk7, дальше мы все это рассмотрим.
https://www.7-zip.org/
3. Редактор WAD файлов и многих лампов игры SLADE 3.
https://slade.mancubus.net/index.php?page=downloads
4. Естественно, сам порт для проверки:
https://zdoom.org/downloads
Либо https://zandronum.com/
К сожалению, в плане функционала Zandronum ощутимо устарел.
В этой статье я постараюсь затронуть фичи, которые все ещё поддерживает Zandronum.
5. IWAD игры.
Либо достаем из купленной игры (например, DOOM2.WAD)
Steam или GOG... Не суть важна.
Либо скачиваем FreeDoom. Больше подробностей по ним здесь:
https://zdoom.org/wiki/IWAD
Теперь, как все скачали, нужно подготовить рабочую директорию.
1. Создаем папку с модами там, где Вам удобнее.
2. Создаем две папки, например Tutorial1 и Tutorial1_Builds
3. Заходим в Tutorial1. Это Ваша папка с модом. В Tutorial1_Builds будем помещать сборки нашего мода, послужат как бэкапы, так и как релизы.
4. Запоминаем структуру, названия папок как в данной статье.
https://zdoom.org/wiki/Using_ZIPs_as_WAD_replacement
Там много всего конечно, но в данной статье постараемся выделить самые важные критерии, где что и как, где будут храниться ресурсы.
Ну тут все просто, корень вашей папки - основные лампы (файлы).
Тут могут помещаться также и WAD файлы (в корне)
И папки:
1. acs - для скомпилированных скриптов ACS
2. filter - папка для определения типа игры, удобно для создания модификации для множества IWAD игр сразу. Например, чтобы в DOOM были одни данные, а в другой игре, например в Hexen, совсем другие.
3. flats - здесь хранятся текстуры пола и потолка для карт.
4. graphics - графика меню и интерфейса.
5. hires - папка, в которой можно поместить HD реплейсеры спрайтов, текстур или графики, которые заменяют с плохого качество на хорошее. Можно также использовать для замены множества обычных ресурсов, при этом сохраняя размеры и не разбираясь с координатами и так далее.
6. maps - здесь хранятся WAD файлы с данными игровых уровней.
(Как-нибудь постараюсь сделать статью про маппинг)
7. music - здесь храниться музыка из игры © Кэп.
Со списком поддерживаемых форматов музыки можете ознакомится тут:
https://zdoom.org/wiki/Music_format
8. patches - здесь хранятся текстуры стен и прочих подобных текстур.
9. sounds - здесь хранятся звуки из игры © Кэп.
Со списком поддерживаемых форматов звуков можете ознакомится тут:
https://zdoom.org/wiki/Sound_format
10. sprites - Здесь хранятся спрайты оружия, монстров, эффектов, предметов и прочий контент.
11. textures - Папка с текстурами, здесь можно хранить тоже текстуры стен, полов, потолка, скайбоксы и прочее.
Структура файлов может быть даже сделана с идентичными названиями лампов из IWAD или других модов. Отлично подходит для простого патчинга. Тоже самое с "Акторами" из DECORATE и номерами скриптов из ACS.
Теперь создаем файл DECORATE.txt
Также создаем папку под код, например, ACTORS. Создание папки не обязательно, но желательно, если задумали большой проект, и не хотите запутаться.
Открываем через редактор Notepad++.
Сейчас напишем просто монстра, а также разберем синтаксис и важные элементы кода.
Теперь давайте приступим к тестированию.
Для начала, нужно запаковать содержимое папки с проектом.
Используя 7-zip, выберите вот такие настройки упаковки:
Не забываем, что нужно будет сразу поменять архив с 7z на pk7 в названии. Если забыли, не страшно, можно будет поменять.
Теперь запустим игру. Методом Drag & Drop суем pk7 на исполняемый порта.
Вот в общем-то все :-)
F.A.Q. // Вопрос-ответ.
Q: Что такое LUMP/Ламп?
A: Это файл внутри WAD, либо в архиве/папке.
Q: Что такое WAD?
A: https://ru.wikipedia.org/wiki/.WAD
Q: PK3 это архив или что?
A: Да, самый обыкновенный ZIP файл, ZDoom поддерживает стандартный Deflate и более сильный LZMA алгоритмы.
Также есть и PK7 архивы. Это уже 7z, в основном со сжатием LZMA2. Самое плотное сжатие, но и самое медленное, особенно для загрузки портом. Разница в скорости загрузки не ощутимая.
Так-же советую взглянуть ещё на дополнительные обучающие ресурсы по моддингу:
1. Мое старое видео по моддингу, в принципе актуальности не потеряло: https://www.youtube.com/watch?v=zvKnRBaI4aw
Постараюсь почаще здесь выпускать статьи по моддингу, может быть, даже видео смогу наконец сделать.
2. Мой гайд, который я пытался написать давно, актуальность средняя.
https://github.com/dpteam/DPT-eBook.ZDooM-Education
3. Перезалив вполне интересного руководства по DECORATE от Kenon: http://kenonserver.narod.ru/decorate.htm
Автор "Jekyll Grim Payne aka Ashigaru aka zer0"
4. Руководство по языку ACS
https://c4tnt.ucoz.ru/x/ACS.pdf
Так-же советую посмотреть ещё и данные ресурсы, программы и примеры. Будут крайне важны при разработке модов:
1. Редактор карт Ultimate Doom Builder.
https://forum.zdoom.org/viewtopic.php?f=232&t=66745
2. Крупная вики, полностью посвящена ZDoom порту. Есть много документации и описания тех или иных функций. https://zdoom.org/wiki/Main_Page
3. Сайт, где можно скачать ночные сборки различных редакторов и портов. В том числе свежие сборки SLADE 3 и Ultimate Doom Builder, где реализованы ещё не готовые и новые функции.
https://devbuilds.drdteam.org/
4. Сайт с тонной готовых ресурсов и примеров для маппинга и моддинга. Монстры, оружия, эффекты, звуки, предметы и многое другое.
https://realm667.com/index.php/en/
Спасибо большое за прочтение! Особенно мне очень важно Ваше мнение, так что поделитесь им в комментариях, прошу :-)