Ваш первый раз. Много информации для самых новичков.
Итак вы открыли workshop, взяли в руки гайды и что? Ничего не понятно.
Как прилепить способность к герою? Стоп… А где вообще герой находится?
Сейчас мы обговорим эти моменты, потому что когда начинал я мне всего этого жуть как не хватало.
Сразу скажу под словом «проект» я подразумеваю полные играбельные исходники вашей карты. То бишь проект это карта либо на стадии разработки, либо уже разработанная.
Краткий словарь, чтобы не путались:
Партикль – эффект в игре. Если для вас будет понятно – спецэффект. Допустим когда Абаддон кидает щит, вокруг тела героя появляется прозрачный щит, это и есть партикль.
Панорама – игровой интерфейс, который картостроитель разрабатывает самостоятельно. Например: магазины способностей, видимые таймеры отсчитывающие время и прочее…
Кастомный – созданный картостроителем с нуля.
Оверрайдить, оверрайднутый – взятый на основе старого и слегка модифицированный. Допустим Миране можно изменить силу атаки и первую способность, мы просто берем старую мирану и переписываем всего 2 строки (атаку, и первую способность) остальное автоматически наследуется.
КВ – система ключ и значение. Например как будет выглядеть на КВ урон способности:
– говорит о том, что ключ это урон, а значение это урон. Здесь у способности 4 уровня, а значит 4 значения.
API – функция в ЛУА коде, которая позволяет совершать действия. Допустим, нанести урон, присудить победу игроку или воспроизвести звук.
1.1 Строение проекта, где что лежит.
Итак, для начала я покажу вам строение проекта. Где лежат все файлы и откуда что брать.
Создавая любой проект в редакторе, а именно действие происходит после нажатия кнопки “Create Empty Addon” (создать пустой проект).
Моментально создаются две папки: обе папки носят название вашего проекта, но пути к ним разные. Одна папка создается в директории content, другая в game, и обе отвечают за разные части нашего проекта.
Краткое мини-отступление: те, кто делает проекты, обычно хранят их на сайте github.com. Этот сайт работает как система контроля версии и снабжен комментариями. Это не только позволяет разрабатывать проект командой, но и откатывать изменения даже на несколько версии назад, чтобы поправить какие-либо незамеченные вами баги.
https://github.com/ZLOY5/LiA - проект жизни на арене на гитхабе. Ориентироваться по нему научитесь, как только дочитаете гайд.
1.1.1 Папка content.
Путь: Steam/steamapps/common/dota 2 beta / content / dota_addons / название проекта.
Здесь хранятся созданные партикли, модели и сам ландшафт карты с расширением vmap.
Имеется в виду когда карта создается, все партикли к которым вы указали путь будут обработаны здесь и затем перенесены в основную папку.
Отступление: Допустим вы создали партикль, изначально он имеет расширение vpcf. С этим расширением вы можете его изменять в редакторе партиклей, однако после пробного запуска карты, он дублируется в папку game с расширением vpcf_c и тут уже его нельзя редактировать, его будет читать непосредственно в игре. С панорамой такой же эффект, разрабатывается она непосредственно в папке content, однако компилируясь переходит в папку game, где приобретает другое расширение файлов.
То есть контент это своего рода подготовочная платформа. Здесь все хранится в сыром виде, а после обработки редактором все переносится в оригинальную папку проекта.
Путь к карте content/maps
Путь к текстуркам content/materials
Путь к кастомным партиклям content/particles
1.1.2 Папка game
Путь: Steam/steamapps/common/dota 2 beta / game /dota_addons/название проекта
Здесь святая святых вашего проекта. Здесь хранятся все ваши скрипты, файлы локализации, иконки и все преобразованные файлы с папки контент.
Начнем с самого сложного, со скриптов.
Папка scripts содержит в себе 3 папки.
Npc – папка содержащая ваших героев, кастомные способности, перезаписанных героев и все что может двигаться и атаковать. Тут в текстовом варианте содержатся ваши юниты, герои, способности.
ФАЙЛЫ ПАПКИ:
herolist – дота имеет предопределенный список героев при начале игры. В этом файле он как раз и редактируется. То есть здесь можно поставить то, что при пике будет доступен, например, только инвокер и мипо. Оставить стандартный распик дотки можно просто не трогая этот файл. Выглядит файл изнутри так: https://github.com/ZLOY5/LiA/blob/master/game/dota_addons/life_in_arena/scripts/npc/herolist.txt .
Зайдите и посмотрите. Напротив имен героев стоит цифра 1, значит он доступен для выбора в игре. Если стоит 0, значит, его не будет видно при выборе героя.
Npc_abilities_custom.txt – файл отвечает за способности. Механика создания – стандартный датадривен и КВ.
Эти способности могут быть у различных юнитов, зданий, призванных существ, героев. Можно сказать, что это все кастомные способности вашей карты в одном файле. В одном файле их держать очень грузно, поэтому я позже подскажу вам, как распределить способности по папкам, и когда вы будете делать своего пятнадцатого героя - вы меня поблагодарите, ибо разбираться в файле, где 24 тысяч строк, мягко говоря, не очень удобно.
Npc_heroes_custom.txt – задумали модифицировать стандартных или сделать нестандартных героев? В таком случае вам придётся очень плотно поработать с этим файлом.
Смотрите файл: https://github.com/ZLOY5/LiA/blob/m...fe_in_arena/scripts/npc/npc_heroes_custom.txt
Допустим вы хотите просто поменять способности миране, выглядеть будет это так:
Теперь мирана будет иметь 4 новые способности, взамен старых.
Абсолютно таким же способом можно редактировать атаку, защиту и все параметры у юнита. Подробнее смотри в ссылке, которая выше.
Npc_items_custom.txt – файл для создания предметов.
https://github.com/ZLOY5/LiA/blob/m...ife_in_arena/scripts/npc/npc_items_custom.txt - сразу смотрим файл и вникаем. Это предметы из жизни на арене.
Делаются почти так же как и способности, разве что им айди надо прописывать и класс предмета. Остальное все абсолютно не изменилось.
Подробный исчерпывающий гайд по предметам от Noya:
https://moddota.com/forums/discussion/4/datadriven-items
Там рассматриваются основные параметры предмета, и даются базовые движки предметов такие как криты, орб, сплеш, лайфстил, блок урона, ауры и прочее. Хотя если вы очень хорошо знаете карту Жизнь на арене и много раз её играли, рекомендую скачать проект с гитхаба и детально рассмотреть файл предметов, способностей и прочего у себя на компьютере. Это очень интересно смотреть как другой автор реализовал ту или иную фичу у себя.
Npc_units_custom.txt – файл, содержащий в себе всех КАСТОМНЫХ юнитов. Это могут быть призванные существа, монстры, боссы и прочая нечисть не геройского типа.
Как создавать юнитов? У нас есть переведенный гайд:
https://customgames.ru/forum/index.php?topic=162.0
Ссылка на всех юнитов с жизни на арене:
github.com/ZLOY5/..._units_custom.txt
Если задумаете читать гайд про юнитов, сразу походу заглядывайте по ссылке и сравнивайте.
Папка npc/vscripts
Здесь хранятся все ваши луа файлы. Это и весь игровой движок, и различные луа способности, которые вы создали.
Здесь скрипты можно распределять как угодно по папкам, поэтому здесь по сути нет архитектуры. Каждый автор упорядочивает по-разному.
Addon_game_mode.lua – тот самый основной файл, с которого все начинается. Он есть всегда и удалять его нельзя. Он отвечает за инициализацию вашего мода.
Настоятельно рекомендую установить проект barebones. Найти его можно в поиске на гитхабе.
Папка npc/shops
Внутри файлы отвечают за то, какие предметы вы будете видеть в магазине непосредственно в игре. Туда вставляются уже готовые кастомные предметы из файла npc_items_custom.txt
Пишите, чего тут не хватает, буду дополнять.
2. Коды, скрипты и их разновидности.
Всего две разновидности скриптов - datadriven и lua.
Луа это достаточно распространенный в разработке игр язык программирования, он очень удобен как раз для доты2.
Datadriven это система "Пемеренная" "Значение". То есть каждой переменной соответствует своё значение.
Датадривен используется исключительно в создании способности, героев, юнитов, предметов.
Луа может использоваться для написании кастомных способностей, предметов и описания игрового процесса.
Луа предоставляет нам широкий спектр возможностей. К тому же Valve любезно предоставили нам свои API-функции.
developer.valvesoftware.com/...from_Lua
Способности и модификаторы могут быть полностью написаны на луа без использования датадривен. В таком случае у картостроителя способности на порядок больше возможностей.
Итак все луа скрипты, как вы знаете, лежат в папке /vscripts
А датадривен в /npc
3. Рекомендуемый софт
Sublime - https://github.com/bhargavrpatel/Dota-2-Sublime-Packages
notepad++ notepad-plus-plus.org/...ad/v6.9.2.html
barebones github.com/bmddota/barebones
Вся работа в скриптах выглядит как работа в sublime. Есть подсветка кода для LUA. Удобство и подсветка синтаксиса – прежде всего.
barebones - уникальный аддон, с изучения которого рекомендуется начинать картостроения. Много здесь уже сделано за вас, и поверьте тут есть всё что вам нужно. Это как фундамент для дома, зайдя на него уже можно создавать готовый продукт. Дополнительным преимуществом этого аддона является наличие библиотек таймера, физики и отображения уведомлений. Для новичков это будет очень дельно.
Итак вы открыли workshop, взяли в руки гайды и что? Ничего не понятно.
Как прилепить способность к герою? Стоп… А где вообще герой находится?
Сейчас мы обговорим эти моменты, потому что когда начинал я мне всего этого жуть как не хватало.
Сразу скажу под словом «проект» я подразумеваю полные играбельные исходники вашей карты. То бишь проект это карта либо на стадии разработки, либо уже разработанная.
Краткий словарь, чтобы не путались:
Партикль – эффект в игре. Если для вас будет понятно – спецэффект. Допустим когда Абаддон кидает щит, вокруг тела героя появляется прозрачный щит, это и есть партикль.
Панорама – игровой интерфейс, который картостроитель разрабатывает самостоятельно. Например: магазины способностей, видимые таймеры отсчитывающие время и прочее…
Кастомный – созданный картостроителем с нуля.
Оверрайдить, оверрайднутый – взятый на основе старого и слегка модифицированный. Допустим Миране можно изменить силу атаки и первую способность, мы просто берем старую мирану и переписываем всего 2 строки (атаку, и первую способность) остальное автоматически наследуется.
КВ – система ключ и значение. Например как будет выглядеть на КВ урон способности:
Код:
“damage” “500 600 700 800”
API – функция в ЛУА коде, которая позволяет совершать действия. Допустим, нанести урон, присудить победу игроку или воспроизвести звук.
1.1 Строение проекта, где что лежит.
Итак, для начала я покажу вам строение проекта. Где лежат все файлы и откуда что брать.
Создавая любой проект в редакторе, а именно действие происходит после нажатия кнопки “Create Empty Addon” (создать пустой проект).
Моментально создаются две папки: обе папки носят название вашего проекта, но пути к ним разные. Одна папка создается в директории content, другая в game, и обе отвечают за разные части нашего проекта.
Краткое мини-отступление: те, кто делает проекты, обычно хранят их на сайте github.com. Этот сайт работает как система контроля версии и снабжен комментариями. Это не только позволяет разрабатывать проект командой, но и откатывать изменения даже на несколько версии назад, чтобы поправить какие-либо незамеченные вами баги.
https://github.com/ZLOY5/LiA - проект жизни на арене на гитхабе. Ориентироваться по нему научитесь, как только дочитаете гайд.
1.1.1 Папка content.
Путь: Steam/steamapps/common/dota 2 beta / content / dota_addons / название проекта.
Здесь хранятся созданные партикли, модели и сам ландшафт карты с расширением vmap.
Имеется в виду когда карта создается, все партикли к которым вы указали путь будут обработаны здесь и затем перенесены в основную папку.
Отступление: Допустим вы создали партикль, изначально он имеет расширение vpcf. С этим расширением вы можете его изменять в редакторе партиклей, однако после пробного запуска карты, он дублируется в папку game с расширением vpcf_c и тут уже его нельзя редактировать, его будет читать непосредственно в игре. С панорамой такой же эффект, разрабатывается она непосредственно в папке content, однако компилируясь переходит в папку game, где приобретает другое расширение файлов.
То есть контент это своего рода подготовочная платформа. Здесь все хранится в сыром виде, а после обработки редактором все переносится в оригинальную папку проекта.
Путь к карте content/maps
Путь к текстуркам content/materials
Путь к кастомным партиклям content/particles
1.1.2 Папка game
Путь: Steam/steamapps/common/dota 2 beta / game /dota_addons/название проекта
Здесь святая святых вашего проекта. Здесь хранятся все ваши скрипты, файлы локализации, иконки и все преобразованные файлы с папки контент.
Начнем с самого сложного, со скриптов.
Папка scripts содержит в себе 3 папки.
Npc – папка содержащая ваших героев, кастомные способности, перезаписанных героев и все что может двигаться и атаковать. Тут в текстовом варианте содержатся ваши юниты, герои, способности.
ФАЙЛЫ ПАПКИ:
herolist – дота имеет предопределенный список героев при начале игры. В этом файле он как раз и редактируется. То есть здесь можно поставить то, что при пике будет доступен, например, только инвокер и мипо. Оставить стандартный распик дотки можно просто не трогая этот файл. Выглядит файл изнутри так: https://github.com/ZLOY5/LiA/blob/master/game/dota_addons/life_in_arena/scripts/npc/herolist.txt .
Зайдите и посмотрите. Напротив имен героев стоит цифра 1, значит он доступен для выбора в игре. Если стоит 0, значит, его не будет видно при выборе героя.
Npc_abilities_custom.txt – файл отвечает за способности. Механика создания – стандартный датадривен и КВ.
Эти способности могут быть у различных юнитов, зданий, призванных существ, героев. Можно сказать, что это все кастомные способности вашей карты в одном файле. В одном файле их держать очень грузно, поэтому я позже подскажу вам, как распределить способности по папкам, и когда вы будете делать своего пятнадцатого героя - вы меня поблагодарите, ибо разбираться в файле, где 24 тысяч строк, мягко говоря, не очень удобно.
Npc_heroes_custom.txt – задумали модифицировать стандартных или сделать нестандартных героев? В таком случае вам придётся очень плотно поработать с этим файлом.
Смотрите файл: https://github.com/ZLOY5/LiA/blob/m...fe_in_arena/scripts/npc/npc_heroes_custom.txt
Допустим вы хотите просто поменять способности миране, выглядеть будет это так:
Код:
"npc_dota_hero_mirana_shooter" //здесь может быть что угодно, это просто имя нового героя, которого мы собираемся оверрайднуть
{
"override_hero" "npc_dota_hero_mirana" //кого будем перезаписывать? Судя по всему, мирану
"Ability1" "ancient_priestess_surge_of_intelligence"
"Ability2" "ancient_priestess_spirit_link"
"Ability3" "ancient_priestess_mana_shield"
"Ability4" "ancient_priestess_ritual_protection"
}
Теперь мирана будет иметь 4 новые способности, взамен старых.
Абсолютно таким же способом можно редактировать атаку, защиту и все параметры у юнита. Подробнее смотри в ссылке, которая выше.
Npc_items_custom.txt – файл для создания предметов.
https://github.com/ZLOY5/LiA/blob/m...ife_in_arena/scripts/npc/npc_items_custom.txt - сразу смотрим файл и вникаем. Это предметы из жизни на арене.
Делаются почти так же как и способности, разве что им айди надо прописывать и класс предмета. Остальное все абсолютно не изменилось.
Подробный исчерпывающий гайд по предметам от Noya:
https://moddota.com/forums/discussion/4/datadriven-items
Там рассматриваются основные параметры предмета, и даются базовые движки предметов такие как криты, орб, сплеш, лайфстил, блок урона, ауры и прочее. Хотя если вы очень хорошо знаете карту Жизнь на арене и много раз её играли, рекомендую скачать проект с гитхаба и детально рассмотреть файл предметов, способностей и прочего у себя на компьютере. Это очень интересно смотреть как другой автор реализовал ту или иную фичу у себя.
Npc_units_custom.txt – файл, содержащий в себе всех КАСТОМНЫХ юнитов. Это могут быть призванные существа, монстры, боссы и прочая нечисть не геройского типа.
Как создавать юнитов? У нас есть переведенный гайд:
https://customgames.ru/forum/index.php?topic=162.0
Ссылка на всех юнитов с жизни на арене:
github.com/ZLOY5/..._units_custom.txt
Если задумаете читать гайд про юнитов, сразу походу заглядывайте по ссылке и сравнивайте.
Папка npc/vscripts
Здесь хранятся все ваши луа файлы. Это и весь игровой движок, и различные луа способности, которые вы создали.
Здесь скрипты можно распределять как угодно по папкам, поэтому здесь по сути нет архитектуры. Каждый автор упорядочивает по-разному.
Addon_game_mode.lua – тот самый основной файл, с которого все начинается. Он есть всегда и удалять его нельзя. Он отвечает за инициализацию вашего мода.
Настоятельно рекомендую установить проект barebones. Найти его можно в поиске на гитхабе.
Папка npc/shops
Внутри файлы отвечают за то, какие предметы вы будете видеть в магазине непосредственно в игре. Туда вставляются уже готовые кастомные предметы из файла npc_items_custom.txt
Пишите, чего тут не хватает, буду дополнять.
2. Коды, скрипты и их разновидности.
Всего две разновидности скриптов - datadriven и lua.
Луа это достаточно распространенный в разработке игр язык программирования, он очень удобен как раз для доты2.
Datadriven это система "Пемеренная" "Значение". То есть каждой переменной соответствует своё значение.
Датадривен используется исключительно в создании способности, героев, юнитов, предметов.
Луа может использоваться для написании кастомных способностей, предметов и описания игрового процесса.
Луа предоставляет нам широкий спектр возможностей. К тому же Valve любезно предоставили нам свои API-функции.
developer.valvesoftware.com/...from_Lua
Способности и модификаторы могут быть полностью написаны на луа без использования датадривен. В таком случае у картостроителя способности на порядок больше возможностей.
Итак все луа скрипты, как вы знаете, лежат в папке /vscripts
А датадривен в /npc
3. Рекомендуемый софт
Sublime - https://github.com/bhargavrpatel/Dota-2-Sublime-Packages
notepad++ notepad-plus-plus.org/...ad/v6.9.2.html
barebones github.com/bmddota/barebones
Вся работа в скриптах выглядит как работа в sublime. Есть подсветка кода для LUA. Удобство и подсветка синтаксиса – прежде всего.
barebones - уникальный аддон, с изучения которого рекомендуется начинать картостроения. Много здесь уже сделано за вас, и поверьте тут есть всё что вам нужно. Это как фундамент для дома, зайдя на него уже можно создавать готовый продукт. Дополнительным преимуществом этого аддона является наличие библиотек таймера, физики и отображения уведомлений. Для новичков это будет очень дельно.
Последнее редактирование модератором: