Дневник разработчиков № 31: Моддинг (создание аномалий).
Автор: LordMune
Прим.пер: Этот (да и следующий) дневники можно смело пропустить, если вас не интересует создание модов.
Приветствую! Уже некоторое время я работаю над Стелларисом, отвечая за написание скриптов и наполнение игры контентом. Этот дневник является первым из двух, посвященных созданию модов. Он будет максимально функциональным, так что не ждите красивых скриншотов.
Стелларис использует движок Clausewitz, поэтому большая часть функционала была портирована из наших других игр. Однако, использование случайно генерируемых галактик диктует немного другой подход по сравнению со старой-доброй картой Европы ((конечно, если ваш мод не использует статичную карту). Поэтому, если вы делали моды раньше, то обнаружите некоторые изменения, но достаточно быстро разберетесь в них и почувствуете себя снова как дома.
Общий моддинг.
Стелларис, как и другие наши игры, легко поддается моддингу. Загляните в папку \Stellaris\common и увидите сами. Она содержит практически все параметры, определяющие функционирование игры. Эдикты, этики, правила игры, экипировку армий, списки имен, типы стран, классы планет, модификаторы, здания и т.д., и т.п. В \Stellaris\common\defines находится файл с LUA-скриптом, регулирующим большинство базовых настроек игры. Например, базовое количество родных планет ( CORE_SECTOR_PLANET_CAP = 5 ) или угол зрения камеры ( NCamera = { FOV = 35 } ). Большинство значений в файле имеют информативные поясняющие комментарии!
Скриптовые триггеры и эффекты, привязывание целей к событиям.
Недавно мы интегрировали в игру скриптовые триггеры и эффекты и Hearts of Iron IV, которые очень хороши. Одно дополнение к скриптовому языку, введенное в Стелларисе, это привязывание целей к событиям. оно позволяет связывать цели/области действия/сохраненные цели событий вместе более простым способом. Например, раньше мы писали так:
from = {
owner = {
establish_communications = root
}
}
А теперь мы делаем это намного понятней:
from.owner = { establish_communications = root }
Офигительно!
Аномалии.
Переходим к аномалиям, хлебе насущном начального этапа игры. К слову сказать, аномалии весьма похожи на события в других наших играх. Вы можете и должны сделать свою! А я покажу как.
Аномалия состоит как минимум из 4-х компонентов: категория аномалии, аномалия, событие и локализация.
- \Stellaris\common\anomalies\00_anomaly_categories.txt - определяет какие планеты подходят для появления определенных категорий аномалий.
- \Stellaris\common\anomalies\00_anomalies.txt - уточняет выбор категорий и ведет к конкретным событиям.
- \Stellaris\events\00_anomaly_events.txt - описание события, которое делает... что-то.
- \Stellaris\localisation\events_l_english.yml - здесь находится текст события и текст окна категории аномалии.
Я думаю, что одна картина стоит больше тысячи слов. Именно поэтому для достижения максимальной эффективности, я буду пользоваться словами, находящимися в картинке. Попробуйте разобраться сами:
Шаг 1 - 00_anomaly_categories
Шаг 2 - 00_anomalies
Шаг 3 - 00_anomaly_events
Шаг 4 - events_l_english
И конечный результат!
Планета исследована
(Надпись: Это тестовая аномалия. Это окно категории аномалии - оно появляется, когда научный корабль находит аномалию на планете во время исследования.)
Аномалия изучена
На этом все. На следующей неделе наш арт-директор Aerie покажет, как вставлять свой арт в игру. Экспорт данных! Графики! Кораблей!
Изменено: Rinso, 25 Апрель 2016 - 18:08