Создание собственного варианта стартовой системы. Что получилось и что ещё нет. Часть 1.
Солнечная система или Денеб?
Денеб или солнечная система?
Теорема Эскобара.
Прямо скажем, выбор стартовой системы в стелларисе небогат. Можно, конечно, поразвлечься рандомом, но желаемую звезду или размер планеты можно выбивать долго, особенно сочетание оных. И ничего особенного не получишь.
Поэтому меня посетила идея создать несколько новых стартовых систем на различную тематику. Сразу оговорюсь, что навыками программирования я не владею - я просто вскрыл пару модов, нашёл файлы, отвечающие за генерацию так называемых "prescripted_species_systems", нашёл то же самое в файлах игры и принялся разбираться, что там есть, и что за что отвечает. Делается всё в документе txt, никаких дополнительных ухищрений не надо. Так же помогла одна статейка в интернете:
https://steamcommunity.com/groups/stellarismodders/discussions/1/350533172686178369/
- и всё же, многие вопросы остались нерешёнными, и я надеюсь найти их решения совместными усилиями (тем более, что я не знаю английский на достаточном уровне, чтобы сидеть на англофорумах).
Для начала я решил создать максимально простенькую систему, имитирующую старый красный карлик, поглотивший все планеты, кроме двух карликовых бедных "плутона". Вот что получилось:
1. Какие файлы понадобятся:
1.1) В папке со Стелларисом\Stellaris\common\solar_system_initializers
мы должны создать текстовый документ и назвать его, например, так: Meigui_prescripted_species_systems.txt - хотя я подозреваю, что название вообще не играет роли, главное - чтобы файл был в этой папке. Это ваша будущая система.
1.2) Там же вы найдёте много интересного, в том числе файл prescripted_species_systems.txt, где запрограммированы Солнечная система и Денеб - их можно использовать как образец. Также интересен example.txt.
А если дофига разбираетесь в скриптах, в этой папке можно перевернуть с ног на голову генерацию вообще всего в вашей Галактике.
папка с игрой\Stellaris\common\star_classes\00_star_classes.txt
если есть моды и патчи, добавляющие новые классы, то могут появиться ещё текстовые файлы, или измениться этот - разные моды делают это по-разному
1.4) Аналогично с планетами: папка с игрой\Stellaris\common\planet_classes\00_planet_classes.txt
Кстати, если в них что-нибудь переделать, можно много чего интересного получить. Ну, или испортить игру. Я лично расширил максимальных и минимальных границы размеров планет и лун. Можно сделать доступными для колонизации неколонизируемые типы миров, только плитка у них у всех будет как у континентального (см. скриншоты ниже)
1.5) В ...\common\planet_modifiers вы найдёте файлы с планетарными модификаторами, правда, мне не удалось их присвоить планете либо звезде при генерации.
1.6) ...\common\buildings - здания
и т.д., для создания стартовой системы хватит этого
2. Создание стартовой системы на примере (с косяками):
Открываем наш созданный текстовый документ, и вписываем туда код, копируя с СС или хоть с моей (она попроще), на ходу меняя по своему разумению. Самое главное, что нужно запомнить, каждый отдельный компонент системы вписывается так:
NAME_system = { -просто начало. Назовите как-нибудь - это нигде не отображается
class -класс звезды в системе, отображается на галактической карте при наведении, не определяет звезду на самом деле
asteroids_distance -параметр орбиты астероидного кольца. как расположить несколько - пока не ясно
usage = custom_empire -оставьте так, чтобы можно было присвоить стартовую систему любой вашей империи
planet = { -первая планета. ВНИМАНИЕ - звезда в стелларисе - это тоже планета, только класса звезда и с радиусом орбиты 0. Начать нужно с неё, если вы не геоцентрист. Помните: форпост можно строить только над звездой/чд/пульсаром
name = "NAME"
class = "pc_m_star" -её класс. Смотрите список в 00_star_classes.txt или 00_planet_classes.txt, или альтернативных файлах
orbit_distance -дистанция от орбиты предыдущего тела, НЕ ОТ ЦЕНТРА СИСТЕМЫ!
orbit_angle -положение на орбите, как на циферблате. Если сделать одинаковыми - планеты выстроятся в линию
size -размер планеты/звезды. Для колонизируемых определяет ещё и число клеток
has_ring = no/yes -кольца
modifier -модификаторы
init_effect = { -эффекты (СЛОЖНА)
какой-нибудь эффект
}
} -завершающая скобка. следить за фен-шуем скобок! их должно быть каждой по паре: {...}
Вот как выглядит моя система в виде текстового документа:
(кто-нибудь знает, как сделать спойлер?)
Код | Результат | |
Meigui_system = { class = "sc_m" asteroids_distance = 19 asteroids_distance = 80 asteroids_distance = 95 usage = custom_empire planet = { name = "Meigui A" class = "pc_m_star" orbit_angle = 30 size = 16 orbit_distance = 0 has_ring = no modifier = "High_Metallicity" } planet = { class = random_asteroid orbit_distance = 17 size = 3 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } planet = { class = random_asteroid orbit_distance = 1 orbit_angle = 288 size = 2 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } planet = { class = random_asteroid orbit_distance = 0 orbit_angle = 202 size = 2 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } planet = { class = random_asteroid orbit_distance = 0 orbit_angle = 130 size = 1 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } planet = { class = random_asteroid orbit_distance = 1 size = 1 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } planet = { name = "Hua-Xiwang" class = "pc_barren" orbit_distance = 18 orbit_angle = 350 size = 11 starting_planet = yes has_ring = no modifier = "low_gravity_2" modifier = "Thin_Atmospheres" modifier = "weak_magnetic_field" modifier = "mineral_poor" modifier = "mineral_poor" init_effect = { prevent_anomaly = yes } init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } init_effect = { random_tile = { limit = { has_blocker = no has_building = no num_adjacent_tiles > 2 } set_building = "building_capital_1" add_resource = { resource = energy amount = 1 replace = no } } random_tile = { limit = { has_blocker = no has_building = no } set_building = "building_hydroponics_farm_1" add_resource = { resource = food amount = 1 replace = no } } random_tile = { limit = { has_blocker = no has_building = no } set_building = "building_power_plant_4" add_resource = { resource = energy amount = 1 replace = no } } random_tile = { limit = { has_blocker = no has_building = no } set_blocker = "tech_tb_quicksand_basin" } random_tile = { limit = { has_blocker = no has_building = no } set_blocker = "tech_tb_quicksand_basin" } random_tile = { limit = { has_blocker = no has_building = no } set_blocker = "tech_tb_quicksand_basin" } random_tile = { limit = { has_blocker = no has_building = no } set_blocker = "tech_tb_quicksand_basin" } random_tile = { limit = { has_blocker = no has_building = no } set_blocker = "tech_tb_quicksand_basin" } random_tile = { limit = { has_blocker = no has_building = no } set_blocker = "tech_tb_quicksand_basin" } random_tile = { limit = { has_blocker = no has_building = no } set_blocker = "tech_tb_quicksand_basin" add_resource = { resource = physics_research amount = 1 replace = no } } } } planet = { name = "Yi" class = "pc_frozen" orbit_distance = 26 orbit_angle = 6 size = 3 has_ring = no modifier = "mineral_poor" } } planet = { class = random_asteroid orbit_distance = 14 orbit_angle = 288 size = 2 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } planet = { class = random_asteroid orbit_distance = 0 orbit_angle = 330 size = 2 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } planet = { class = random_asteroid orbit_distance = 15 orbit_angle = 24 size = 1 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } planet = { class = random_asteroid orbit_distance = 0 orbit_angle = 97 size = 3 has_ring = no init_effect = { orbital_deposit_tile = { clear_deposits = yes add_deposit = d_mineral_deposit } } } } |
<---успешно сгенерироваловалось только первое, и то была проблема, т.к. в файле example.txt есть минимальная уладённость кольца, пришлось изменить <---с этим проблем нет звезда сгенерировалась успешно, но признаки вместо "высокой металличности" получаются случайные. Возможно, я неверно задаю астероид сгенерировался успешно даёт 1 ед минералов, как регулировать количество - не ясно то же то же то же и последний астероид. Все 5 сгенерировались нормально, все дают по 1 минералу. Единственное, что астероиды размеров 1,2,3 выглядят много больше положенного, в отличии от планет и лун. Стартовая планета. С неё начинаются проблемы. Генерация мира размером ниже минимума проходит ус- пешно, даже лезть в example.txt не надо. Хоть планету с 1 клетой забабахать. Выше 25 диаметр будет расти, но не число клеток. Нельзя задать неколонизируемый тип планеты, даже если сделать его колонизируемым в planet_classes/ 00_planet_classes.txt (colonizable= с "no" на "yes"). То есть можно, но при старте игры он заменится на одну из списка доступных в меню выбора, а с интерфейсом мне пока не совладать. <--никак не удаётся установить модификаторы, хотя вроде бы запись правильная возможная критическая ошибка должна быть в коде, начиная с этой строки <--Здесь задаются стартовые здания, к сожалению, сгенерировалась только планетарная администрация 1 уровня. <--вот она <-а уже начиная отсюда не работает ничего. В теории, так задаются ресурсы клеткам. На деле не работает. <--и далее ни одно здание не построилось, ресурсы на клетках по-прежнему появляются случайно <--здесь я пытался загадить всю планету зыбучими песками (кроме клеток стартовых зданий). Безрезультатно. Дальше ничего не генерируется, в том числе не появляется вторая планета и ещё несколько астероидов. Это принципиальная вещь: если где-то ошибка, система сгенерируется только до того объекта, в котором она есть. Если ошибка будет на стадии создания солнца - в системе останется один лишь пояс астероидов, а название вашей планеты будет висеть в центре, но её самой не будет, как и всего остального. Я задолбался искать, где ошибка, и как её исправить <--вот это должна была быть вторая планета Размером 3 клетки |
3. Итак, подводим итоги:
-Можно без проблем создать систему с определённой звездой (или иным объектом), или несколькими, с определёнными неколонизируемыми планетами, и определить размер стартовой планеты от 1 до 25 в клетках, и до полного безобразия в диаметре.
-Нельзя с помощью текстового документа поселить своих тараканов на необитаемой планете, хотя это не невозможно в принципе, если как-то добавить тип планеты в меню выбора в начале игры.
-С модификаторами ничерта не выходит, но генерацию это не рушит - может, кто поймёт, как исправить?
-Если начать мудрить с ресурсами, квадратами и прочим, велик шанс напортачить и похерить генерацию системы
-Если поставить обитаемую планету со всеми наворотами в конце системы, то в принципе, плевать.
4. Скриншоты:
1 - Как видите, планета размером 11 клеток, хотя в стандарте игре минимум - 12. |
А вот она же, но уже размером 50. Клеток при этим 25. |
Вот колонизируемая не-стартовая планета класса "Холодная безжизненная", размером 7 клеток. Без всяких изменений пригодность сносная. |
А вот так вот интересно выглядят её клетки. Все без ресурсов, на одной - тот же список, что при добыче с орбиты. |
А вот солнышко размером 300 с гаком, созданное не мной, а из мода, который я распотрошил - из него же портреты расы на остальных скриншотах. Мод хороший, только мужской половине портретов нужен мешок на голову. |
5. Моды
Советую:
1) Planetary Diversity - прекрасный мод, который стоит ставить на стелларис по-умолчанию. Без него уныло. К тому же, в нём в интерфейсе выбора типа предпочитаемого мира есть три свободных места.
2) More Star Classes - один из лучших модов. Добавляет объект класса "барицентр" и заставляет генерироваться двойные/тройные/иногда четверные и пятерные системы, белые/коричневые/чёрные карлики, гиганты и сверхгиганты. Прекрасно вписывается, расширяет возможности для нашего дела.
3) Guilli’s Planet Modifiers - планетарные и звёздные модификаторы
4) Hypothetical Stars - тоже довольно интересный мод. Я как-то знатно повоевал в системе белой дыры, на которую мне всё время нападали. Поскольку БД полностью снимала щиты, я построил флот с одной только бронёй, и регулярно выносил флот мародёров, превосходящий меня числом. Только вот, если вы физико-нази, он вам противопоказан. Ибо у БД не может быть системы, а обитаемые планеты у звезды из тёмной материи - это... странно.
6. По поводу установки модов на стелларис:
Погуглите статьи на эту тему... и бросьте их в мусоропровод, так как там написана полная хрень. Не знаю, как на стимовской версии, но в обычной все файлы моды должны быть ни в какой-то папочке в "моих документах", а по канону - в соответствующих папках игры. Замена файлов, и всё прочее.
В ...\Documents\Paradox Interactive\Stellaris\mod должен остаться только управляющий файл .mod
Удачи с моддингом вашей времяпожиралки!
А за сим у меня пока всё - надеюсь, что найду единомышленников, с кем мы решим все проблемы. Я потратил сегодня большую часть дня, экспериментируя с генерацией системы и параллельно записывая эту простынь для вас и для себя. Устал, как собака. В рунете, по результатам моих изысканий, нет статей со сколько-нибудь исчерпывающей информацией по этой теме, да и поиск всё время норовит выдать что-то левое. Если же мы разберёмся со всеми ошибками, систему мечты сможет сделать себе каждый. А я своими ещё и поделюсь. Если будет отклик - продолжу выкладывать результаты своей деятельности, а там - глядишь - и на целый мод наскребу. По крайней мере, я провёл большую работу, и старался так что прошу не делать мне каку
Жду знатоков в комментариях
Подробнее
9 i# $ 111+5 V / / / / / / I \ ■' • \ .. V V о, t ч ■ V Ч ■\ . с* V * \. ä*~ ” LV-984 \ 4 * ■\ » * Г -» 401 Р LV-394 ' Meigui А J3LVÖoT?n ‘ 1 \ \ 91F-915 Meigui А Звезда класса М Подчиняется империи Аирийский й Союз. Находится в пространстве империи Аирийский Союз. VTR-3PO V 1 <*■ ,1Г | Аири % Аири-Сол Родной мир империи м \ \ X \ \ i / т Планировщик о Планеты 1 Аири Аири-Сол ^Рг Ледниковый мир Й Верфи 1 \ — л Станция в систе ... ^ Верфь Аири-Сол ß -»401 • Флоты 1 Paricnartian Flotilla Аири-Сол А 3/40(3) -»114 Корабли 2 / Строительный ... ISS Tuwib Аири-Сол Научный корабль ISSXedarum Аири-Сол / 7 / /- /........ 4# /ä О , р\ 7 Г , I | Г- П .©• 4vXd!®l@P « *• °° ._О. *_!_ /” i * * * ‘ ~ *• " ' ]ГЖ II р 1рр о oFrf
<£ 123+5 1? 208+2 f| 84-3 ф 107+1 ф 8+2 ычная скорость Meigui А Терраформировать Ледниковый мир Производство ресурсов Пригодность: 100% Размер планеты Размер планеты: 11 Размер планеты определяет, сколько на ней имеется квадратов поверхности. Губернатор Kotor'Yumin vas Тоууа Губернатор основного сектора правит с этой пл ... Производство ресурсов поселениями: +2% Скорость строительства сооружений: +2% Время расчистки непригодных квадратов: -2% Изменить Список указов Планета Поверхность Армии Космопорт Аири-Сол Родной мир империи Планировщик О Планеты 1 г ^ . Аири Ледниковый мир “1 Аири-Сол е j Верфи 1 • . л Станция в систе... ^ Верфь Аири-Сол ß -»401 • Флоты 1 Paricnartian Flotilla Ь А 3/40(3) Аири-Сол -»114 Корабли 2 Строительный ... ISS Tuwib Аири-Сол Научный корабль ISSXedarum Аири-Сол / 1
В? fe:’.9 Ш « 100+4 ^ 200+8 f§100-6 1_ М^-НС; - 0 100+1 О 0+2 4 - (Г > > 1 « > * *• * *f * % л » • л . ^ MeiguiA Х4-937 ф * 2 Г V I Аири ** к 4 +9 +5 О +5 •» i i ($1/15 V 3/24 1/3 I И 2200.01.01 Пауза II + - ►I • * •* . >iE , • * \ ,4 • • ** Ä Планировщик О W * Планеты 1 * < • V ч »• » С »г • * Ä Аири ^Рг Ледниковый мир Аири-Сол Ö /я г Верфи 1 ‘ V < г v , Г ^ •и» л Станция в систе... °°° Верфь Аири-Сол ß -*401 V -* / - < • Флоты 1 / • # Л 9 >* • ^ • г о Claarith Flotilla Л з/40(3) Аири-Сол -»114 Корабли 2 г ^ #■ . * * ^ ✓ • (О Строительный ... Ъ.... ISS Neema Аири-Сол t Í*' • ** (О Научный корабль VX. ISS Tuwib Аири-Сол * • s г' г • W ~ * г - , * -Ö----1- 2 § 3 4 * kl ШЩШ __Пауза____ Аири-Сол Родной мир империи V I 1 =4? Ж © gg * □ li - • Lá* I! <& р | TI ' ^ .
0 493+5 О 383+15 $ +42 © +42 0 +51 ® 3/15 .¿.21/25 4/6 + Безжизненный мир Пригодность: 27% Колониз-вать <©> 7 Ресурсы <£ з(^1 Безжизненный каменистый мир с разреженной или отсутствующей атмосферой. Поверхность изрыта метеоритными кратерами и лишена всяких признаков жизни. Планета Поверхность 1 % 2 ? 4 >$ Пауза Аири-Сол Родной мир империи KI3/4 2240.07.29 ■ * Пауза II ►! Планировщик Планеты О 5 Аири К**- Аири-Сол * а * Лапен Аири-Сол Т ’ Океанический мир ‘ Драген Аири-Сол *7 ' Океанический мир 4. 1 Коловорот 1 Collodor ♦ - ft — Degree Gozam Опустошенный мир Верфи 1 л Станция в систе... *°* Верфь Космичес... Аири-Сол -»455 3 О Станция в сист... Бастион Giedi -»930
Планета Поверхность 1 % 2 $ 4>$ Пауза Аири-Сол Родной мир империи •'* 3/15 /У 21/25 4/6 |>|з/4 + 2240.07.29 Пауза II ►! ==+ Планировщик Планеты О 5 Лири К**- Аири-Сол * а * Лапен Аири-Сол ^ " Океанический мир ‘ Драген Аири-Сол *7 ' Океанический мир 4. 1 Коловорот 1 Collodor ♦ - ft — Degree Gozam Опустошенный мир Верфи 1 л Станция в систе... *°* Верфь Космичес... Аири-Сол -»455 3 «О Станция в сист... Бастион Giedi -»930 z'-—- ®] ж©: * |#1 >о □ l & I и ГрП 71 ■ Г”йвйш””1
Ж9'9" 4^ I (£ 3458+4 ^ 1763+59 #92+2 ф 493+5 ^ 383+15 ® +42 ® +42 О +51 ® 3/15 ,* 21/25 4/6 K|3/4 2240.07.29 + . Пауза • • 0 1 . j# . ' /ffiv • II H s= Exiptla V 1 Планировщик О Планеты 5 Аири • — Аири-Сол Й * Лапен . ’ Океанический мир Аири-Сол * Драген ^ ' Океанический мир Аири-Сол * Коловорот 1 * ' Collodor * Degree Опустошенный мир Gozam Верфи 1 л Станция в систе ... *°* Верфь Аири-Сол -»455 Космичес... 3 Станция в сист... Бастион Giedi -»930 /*■«■•»II» it /** /»■*•» *v\ 4 X X Пауза f\ Аири-Сол Родной мир империи _я ж © г°° □ ! £9 Ф ' Q
Stellaris,Игры,моддинг,Игровые скриншоты,мод,сап реактор,длиннопост
По одной, естественно
там звезды это планеты которые крутятся вокруг центра.
Орбиталка там как обычно
Можно извратиться и сделать вокруг одной из планет-звезд большую орбиталку, где остальные планеты будут ее лунами.
/common/deposits/00_deposits.txt
Например
add_deposit = d_immense_mineral_deposit
Даст +4 минерала
Или
add_deposit = d_immense_mineral_deposit
add_deposit = d_immense_mineral_deposit
Даст +8 минерала
Депозиты еды не работают, кроме комбинированых и в добавок не отображаются. Возможно уже их и нет, я давно не смотрел.
Можно модить депозиты, изменяя или добавляя свои
Знаю лишь, что в теории это возможно.
В интернете о генерации галактик так же мало что полезного написанно. Впрочем, можно найти программу, которая позволяет тот файл открыть с приятной проекцией вместо кода, в теории (у меня она было с кривым интерфейсом по неизвестной мне причине...).
init_effect = {
add_modifier = {
modifier = "low_gravity"
days = -1 # длительность в днях, -1 - это бесконечно
}
К слову, существует событие, прописанное в Stellaris\events\game_start.txt с id game_start.2 - оно удаляет все модификаторы со стартовых планет,
так что, коли хочешь добавить модификаторы на свою столицу, потребуется еще отредактировать этот файл или же создать событие происходящее на следующий день со старта.
К слову, многие баги можно отслеживать в Documents\Paradox Interactive\Stellaris\logs\error.log, в нем просто ищешь название своего файла, будет указана строка ошибки и краткое ее описание. Правда на английском.
name = "Yi"
class = "pc_frozen"
orbit_distance = 26
orbit_angle = 6
size = 3
has_ring = no
modifier = "mineral_poor"
}
}
Вот тут.