Введение
После того, как я наотрез отказался пользоваться Easy Build, я попал в настоящий ад. Ship designer оказался довольно сложным, не интуитивным и крайне утомительным редактором. Но именно он и является причиной, по которой мы все играем в Starbase, ибо такого уровня гибкости и свободы творчества не дает ни одна игра-конструктор. Балки, провода, болты и информационная сеть - то, что в первые часы взрывает твой мозг. Я не смогу спасти тебя от этого, но могу предоставить свой, пока все еще небогатый, но все же опыт в освоении этой вундервафли.
Немного об инструментах
Сперва поговорим о доступном инструментарии. Об этом очень много сказано в других руководствах и на официальной вики, поэтому я просто оставлю здесь краткую выжимку по всему, что я обычно использую в редакторе.
1 - Инструмент перетаскивания. Вызывает "гизмо" (штука с тремя осями, которые можно тягать туда-сюда, вместе с выделенной деталью). Зажимая shift можно выбрать сразу несколько деталей для перетаскивания. Зажимая shift и потянув деталь, мы создадим её копию, исходная деталь останется на месте.
2 - Инструмент ротации. Тоже вызывает "гизмо", только кгруговое. Тягаем колечки и поворачиваем деталь как нам угодно. Вместо этого инструмента можно использовать кнопки X, Y и Z на клавиатуре, они выполняют такую же функцию. Нажимая клавишу однократно, деталь повернется на 90 градусов вокруг соответствующей оси. Зажимая кнопку и потягивая курсор вправо или влево можно точно повернуть деталь.
3 - Просто курсор, используется для выделения. Нажимая клавишу Esc текущий инструмент вернется именно в курсор.
4 - Ручной болтоверт. Кликай мышкой, чтобы поставить болт.
5 - Трубо- и кабелеукладчик.
6 - "Дюрабилити тул". Показывает прочность каркаса, обнаруживает слабые места, показывает варп класс. Самый полезный инструмент.
7 - "Снап тул". Второй по полезности. Выбери снап тул и выдели деталь/детали. Появятся точки. Выбери точку на детали, которую ты хочешь куда-то прилепить. Точка подсветится зеленым. Затем наведись на место, куда ты хочешь прилепить деталь, там тоже должна появиться точка. Нажми на неё и, если детали ничего не мешает, она встанет ровно на нужное место. Полезно для установки двигателей и прочих устройств на хардпоинты.
8 - Розетка. Просто создает "мост" из провода через балку или другое препятствие.
9 - Покраска. Тут все понятно.
10 - Автоболтер. Просто выбери его и кликни по кораблю. Автоболтер все сделает за тебя и приболтит все что можно приболтить. Учти, алгоритмы болчения пока все еще хреновые, поэтому не забудь после автоболтера проверить структуру дюрабилити тулом (6), а затем доболтить вручную все красные детали болтовертом (4).
11- Выбор материала. Появится палитра цветов, где каждый цвет отвечает за свой материал. Наведи курсор на цвет и контекстная подсказка покажет какому материалу он соответствует. По умолчанию корабль собирается из бастия. Чтобы поменять материал, выбери его в палитре и кистью (размер которой настраивается) пометь нужные балки или пластины.
12 - Сварка. Работает только для балок. Чтобы сварить все балки на корабле сразу, справа снизу в окне "Настройки инструмента" отметь чекбокс "Применить ко всему".
13 - Наклейки. Выбери понравившуюся и налепи её на свое судно.
14 - Видимость. Детали определенной группы можно сделать прозрачными.
15 - Запрет изменения деталей. В комбинации с видимостью - очень мощный инструмент для прокладки труб под уже готовым фюзеляжем. Пока деталь в блоке - ты никак не можешь с ней взаимодействовать, на неё не работает выделение, на неё не приклеятся провода и трубы, они будут приклеиваться и коннектиться на доступную деталь прямо за заблокированной деталью.
16 - Бюджет постройки. Показывает сколько ресурсов и кредитов необходимо на постройку корабля.
17 - Инструмент автоматического наименования двигателей. О нем будем говорить позже.
18 - Управление модулями. Любой набор деталей можно объединить в модуль и сохранить его. Сохраненные модули попадут в папку "Мои модули", откуда их можно вытаскивать при постройке вообще любого корабля.
19 - Тест собранного корабля. Можно просто нажать f5.
20 - Отображение не присоединенных деталей. Все не прикрученные и не приваренные к основной структуре детали подсветятся красным.
21 - Здесь можно включить отображение центра масс и центра тяги. Каждая не присоединенная деталь имеет собственный центр масс. Поэтому если у корабля отображается более одного фиолетового кубика - деталь не прикручена/приварена.
Кстати, не забывай что в редакторе так же, как и в игре, можно переключаться между курсором и управлением от первого лица по нажатию Tab. Крайне полезно при использовании болтоверта и трубоукладчика.
Что есть корабль?
Это самое главное, что необходимо понимать перед тем, как лезть в редактор.
Кораблем считается структура из балок, имеющая хотя бы один присоединенный к ней хардпоинт, на который присоединен любой собранный двигатель. Пояснение. Вот это - не корабль. Это просто какая-то структура
Но стоит только приболтить к этой раме хардпоинт, а на него приболтить маневровый двигатель, как структура чудесным образом превращается в корабль и даже получает свой варп класс.
Очевидно, что такая структура фактически не является кораблем, ведь ей не то что управлять нельзя, она и полететь куда-либо не способна. Но для игры это не важно. Если у структуры есть балки, хардпоинт и хотя бы один двигатель, она воспринимает структуру как корабль и относится к ней соотсветствующе. Насколько я знаю, пока структура считается кораблем, она не пропадет. То есть, чтобы заставить исчезнуть поверженный вражеский корабль - открути у него двигатели.
Что такое варп класс?Не буду врать, я не разобрался до конца в его назначении. Но есть несколько основополагающих вещей, которые о нем надо знать:
У исправного корабля варп класс всегда выше единицы. Если варп класс упадет ниже единицы - в чате ты моментально словишь сообщение "Durability error". Это значит, что твоя структура слишком хлипкая и может развалиться на ходу. Значит пора открывать мультитул (U), искать и исправлять проблемы в структуре. Учти, что если ты просто по приколу приболтишь к кораблю какую-нибудь балку, ты тоже словишь durability error, и варп класс просядет. Но как только она отвалится, все вернется в норму.
Чем больше варп класс - тем быстрее ты перемещаешься в варпе (логично, да?). Варп у нас пока один - гейт на Элизиум. Поэтому, если ты не планируешь прыгать на своем корыте на луну, достаточно поддерживать варп класс больше единицы. Не обращай внимания на варп класс на скриншоте. Две тысячи он имеет только из-за малого количества деталей.
"Летим вперде!" или как в теории сдвинуть с места свою коробку
Что в игре считается кораблем мы разобрались. Теперь, когда у нас есть какая-никакая структура, можно попробовать заставить её лететь. Для этого нам понадобятся две пластиковые бутылки, одна консервная банка, соседский кот и тюбик клея "Момент", чтобы это все соединить вместе.
А если серьезно, то представим, что вместо кота у нас генераторная установка, вместо бутылок - пропеленовые баки, электроника вместо консервной банки и сварка вместо клея, и можно даже нарисовать логическую схему нашего корабля.
Логическая схема
Логическая схема показывает только прохождение сигнала управления. Из рисунка все понятно, но на всякий случай разжую все как семилетнему ребенку:
Органы управления являются своего рода "генераторами сигнала". На деле они просто изменяют глобальные переменные корабля (о них поговорим позже). В конкретном случае - переменные блока управления, отвечающие на определенное действие. В нашем случае мы изменяет значение переменной, отвечающей за движение вперед. Изменяя её значение от 0 до 100, мы определяем мощность ускорения в процентах.
Блок управления обрабатывает свои глобальные переменные, и, в зависимости от их текущих значений, отправляет определенные сигналы бортовому компьютеру.
Бортовой компьютер получает сигнал от блока управления и сам решает какие двигатели должны быть запущены и с какой силой. Он же отвечает и за стабилизацию корабля. То есть, во время полета он будет активно задействовать маневровые двигатели по всему кораблю, чтобы тот сохранял свой курс и не кренил куда-нибудь не туда. Тут очень важен центр масс и центр тяги. Маневровые двигатели тоже жрут пропелент, поэтому если накосячишь с центрами масс и ускорения, расход пропелента будет выше расчетного, и, соответственно, дальность корабля будет меньше.
С логической схемой разобрались, но этих четырех устройств хватит для управления кораблем, но не хватит, чтобы его запустить. Для этого построим физическую схему и разберем её.
Физическая схема
Схема довольно сильно усложнилась. Еще и линии разноцветные. Но тут все просто: синие линии - это провода, а зеленые - трубы.
Как видишь, в Starbase не обязательно вести провод от одного устройства к другому, достаточно объединить их в одну сеть. Кстати, каждое подключенное к сети устройство становится проводником. То есть, кабель, протянутый из другой розетки подключенного к сети устройства, все еще остается в одной сети.
Что интересно - такая же логика касается и труб. И не важно, что генератор обменивается с радиатором охлаждающим веществом, а бак с двигателем - пропелентом. Они подключены к одной трубной сети, а значит они работают, а как - это уже не твоего ума дело :)
Что необходимо понимать в этой схеме:
Батареи обязательны, без них полететь не получится. По крайней мере не сразу. Все дело в том, что генератор раскручивается довольно медленно и поначалу энергии хватит только чтобы подсветить приборную панель. Батареи позволяют стартануть сразу с места не дожидаясь пока генератор раскрутится.
Генератору необходимо охлаждение. Если не отводить тепло от генератора, то он сделает бомбастер. Шутка, он просто остановится, а ты потом будешь недоумевать почему у тебя сдох корабль, ведь ты все собрал правильно и он даже какое-то время полетал.
Кресло пилота подключать к сети стоит только в случае, если к нему присоединена контрольная панель кресла пилота. Если органы управления кораблем расположены на расстоянии не более двух метров, они будут доступны для взаимодействия прямо из кресла и на них можно повесить бинд (по кнопке V).
Сборка тестового макета
То, что мы тут будем собирать, сложно назвать полноценным кораблем. Но описанные здесь действия наглядно покажут основные моменты, необходимые для сборки полноценного корабля.
1. Подготовка рамы.Как мы помним из раздела выше, чтобы корабль получил варп класс, ему нужна рама, хардпоинт и подключенный к нему двигатель. Здесь я буду учить вас плохому и начну пока просто с рамы. Почему - расскажу позже, когда будем вешать двигатели.
2. Установка генератораГенератор - сердце нашего будущего корабля. Для макета используем сборку из топливной камеры Т1, куда мы будем помещать наш Т1 стержень, двух генераторных установок Т1 (можно и одну, это я для симетрии), сокета для проводов и сокета для труб. Все эти штуки можно найти в папке оборудование->электропитание. Собранный генератор в виде модуля есть в папке
'Spaceship Modules'->'Spaceship modules starter kit'->'Генератор малый'. Но я все равно настоятельно рекомендую собрать генератор самостоятельно и затем сохранить его как свой модуль, так как в генераторе из стартер кита охлаждение организовано кулантами (а нам этого не надо) и отсутствует сокет для труб.
Сокет с красным ободом - сокет для проводов. С синим - для труб. Что? Не логично? Отнюдь! Смотреть надо не на обод сокета, а на ободки самих розеток. Они как раз соответствуют цвету кабелей и труб.
Кстати, самые глазастые уже заметили особые точки крепления на генераторах и топливной камере. Они одинаковы, и нет разницы куда вещать сокеты. Структура из генераторов и топливной камеры является единой.
3. Установка баковДвигатели у нас жрут не только электричество, но и пропелент. Без него у нас ничего не пойдет, не поедет. С баками надо знать одну вещь - они тоже являются составной структурой, как генератор. Состоит бак из самого бака и стойки для бака. Провода и кабели подключаются именно к стойке, поэтому баку нужна хотя бы одна стойка из двух. Кстати, на стойке есть место для размещения кнопки или текстовой панели. Мы его не будем использовать в данном гайде, но ты всегда можешь пофантазировать и найти ему применение.
Удлиняем раму, ставим бак, добавляем сокеты с обратной стороны генератора (для удобства) и соединяем бак трубами и проводами. Теперь бак и генератор в одной сети. Вообще, бак с генератором соединять не надо, данная труба здесь совершенно бесполезна, но мы используем её в дальнейшем для подключения радиатора.
И пусть тебя не смущает зеленая точка на баке. Это значит, что я использовал модуль. Нажатие на эту точку выделит весь модуль, что довольно удобно для копирования или перемещения.
И не забывай болтить свои устройства!
4. ОхлаждениеКак я и писал ранее, генератор не проживет долго, если у него не будет охлаждения. Охлаждать нашу установку мы будем радиатором. Не знаю насколько эффективны куланты, но вариант "поставил и забыл" мне нравится больше, чем постоянная замена кулантов. Как понять сколько радиаторов надо? Все просто - генератор Т1 вырабатывает 100 единиц тепла, одна часть радиатора рассеивает 90 единиц тепла. То есть, на две генераторные установки достаточно трех частей радиатора (основание + 2 удлинения). Но я возьму с запасом, потому что могу, да и сам радиатор дешевый
И подключаем его к сети
5. БатареиКак и говорилось ранее, без хранилища энергии наше корыто не полетит. По крайней мере не сразу. Поэтому ставим две батарейки, болтим их, подключаем и радуемся жизни.
6. Блок управления и бортовой компьютерПросто ставим чемодан (бортовой компьютер) и на него блок управления. Здесь из нюансов надо знать только одну вещь: блок управления болжен быть расположен определенным образом. На его корпусе есть треугольники, указывающие как его располагать: треугольники на крышке указывают на направление вперед, треугольники сбоку указывают на потолок корабля. После установки просто соединяем все в одну сеть.
7. Кресло пилотаДля него нам понадобится стойка для кресла пилота, само кресло и контрольная панель кресла пилота. Все собираем вместе, болтим, подключаем к сети.
8. ДвигателиПришло время превратить нашу структуру в корабль! Почему я тянул с двигателями до последнего? Все просто - двигатели ставятся в последний момент, чтобы точно знать массу корабля и рассчитать необходимое количество двигателей для желаемой скорости. Для этого существуют определенные калькуляторы, но о них как-нибудь потом. В нашем случае нам надо просто запустить корабль вперед, не важно с какой скоростью. Поэтому просто берем хардпоинты, вешаем на них маневровые двигатели в качестве маршевых и подключаем их к электросети и трубопроводу.
Как видно из скриншота, мы используем топливный бак как проводник труб и проводов. Двигатели все равно остаются в одной сети с остальными устройствами. Теперь наша структура является кораблем и нам остался самый последний, самый сложный этап.
9. Органы управленияУправление у нас будет представлено только одним рычагом, отвечающим за тягу вперед. Разместим его на контрольной панели кресла пилота.
Далее выделяем рычаг и ищем поле "LeverState". Его следует переименовать на "FCUForward". Это поле из блока управления, отвечающее за тягу корабля.
Теперь нам надо научить наш бортовой чемодан общаться с двигателями. Для этого их надо назвать так, чтобы они совпадали с именами в компьютере.
Для этого используем инструмент автонаименования двигателей (17). Выделяем наши двигатели, вызываем наш инструмент. Отмечаем чекбокс "Вручную" и выбираем "Назначить имена всем полям устройств выбранных двигателей". Почему так - хз, но оно работает.
Все, корабль практически готов.
Шаг последний: Durability ErrorПри попытке зайти в тест и сев в кресло пилота, мы тут же ловим "Durability error". Но как же так?! Мы же все правильно собрали! В целом правильно, и корабль даже полетит, но с характерным таким скрипом. Чтобы от этих проблем избавиться, возвращаемся в редактор и вызываем дюрабилити тул (6).
Как видим, система ругается на топливный сокет. И он даже приболчен! Как же так? В чем смысл? Кто съел мою сосиску? Ответы на эти вопросы не знает никто, поэтому выходим из ситуации хватая болтоверт и добавляя болтов в указанную точку.
Добавляем два болта рядом, получаем хорошую устойчивость структуры и даже варп класс 1.28. Теперь окончательно все, летающая платформа завершена, можно разбить об ней бутылку шампанского и отправить восвояси на свалку таких же первых творений других игроков.
Домашнее заданиеА теперь самостоятельно добавь к своему каркасу маневровые двигатели для остальных видов движения: реверс, крен, тангаж, рыскание, вертикальное и горизонтальное смещение (для последних двух понадобится улучшенный блок управления). Попробуй разобраться самостоятельно как это сделать.
Расширяем управление
...и немного приближаемся к пониманию как работает YOLOL и программирование в Starbase в целом. Не переживай, в этой главе не будет ни строчки кода, но зато мы познакомимся с такой вещью как поля и посмотрим как с ними взаимодействовать.
Еще немного скучной теорииЕсли рубиста или джависта спросить "Что есть объект?", то они в унисон ответят: "Все есть объект!". Примерно такая же ситуация и в Starbase. Любая деталь, которая может выполнять хоть какую-то функцию, является объектом. Для непосвященных в парадигмы ООП и в программирование в целом: не стоит пугаться я и сам ООП не знаю xD . Надо просто понимать что есть объект.
Объектом является какая-либо деталь, способная выполнять какую-либо функцию, и имеющая поля. Их мы могли видеть в предыдущем разделе, когда настраивали рычаг
Как можем видеть, поле имеет свое имя и свое значение. А теперь мозговыносящий для программистов момент:
Имя поля для объекта не имеет никакого значения. Объект читает значения полей по их порядковому номеру, а не по имени. Что это значит и чем это полезно для нас? Ты можешь спокойно переименовать поле устройства и это никак не отразится на его внутренней логике. Имена полей важны только для твоей информационной сети. Здесь логика проста: если в сеть попадает несколько полей с одинаковым названием, то сеть их воспринимает как одно поле. Помнишь момент с рычагом? Мы переименовали поле, отвечающее за позиционирование рычага так, чтобы оно соответствовало полю из блока управления.
Теперь поле блока управления "FcuForward", отвечающее за движение вперед, так же является полем позиционирования рычага. Регистр символов в YOLOL не имеет значения. Если мы изменим позицию рычага, его поле примет значение от 0 до 100, и точно такое же значение примет соответствующее поле блока управления. Единственное требование в этой системе: устройства должны находиться в одной сети. Если совсем просто - соединены кабелем.
Приборная панель и подключение элементов к сетиВообще элементы управления можно крепить куда угодно, но лучше всего для этого подойдут приборные панели. В отличии от других поверхностей, приборная панель может запитать и, соответственно, подключить к сети все элементы, которые на ней расположены. С одной приборной панелью мы уже познакомились в прошлом разделе, она запитывается от кресла и запитывает все, что расположено на её лицевой стороне. Остальные же панели придется запитывать вручную.
Чтобы запитать панель, нужно, к примеру, установить на неё "Разъем для питания генератора" (не спрашивайте меня почему у обычной розетки такое странное название). Для проверки работы панели поставим на неё обычную кнопку, куда-нибудь подальше от розетки. Если панель запитана, на кнопке высветится название её первого поля.
Запитывать панели можно не только этой розеткой, есть множество способов:
От другой панели. Если поставить панель на панель, то нижняя панель будет запитывать верхнюю, но не наоборот. Верхняя часть панели определяется выемками для болтов.
От элементов другой панели. У гибридных кнопок, прогрессбаров и текстовых панелей есть эдакая серебрянная окаемка, которая выступает в качестве проводника. Соприкасаясь с окаемкой другого элемента, они запитывают друг друга и панели, на которой они находятся.
Здесь к верхней панели не идет никаких проводов, но она запитана благодаря контакту двух кнопок, о чем нам говорит подсвеченная кнопка в правом верхнем углу.
Важно понимать, что панель запитывает элементы только если они размещены "по сетке". То есть, элемент должен вписываться в квадратик/квадратики, чтобы панель смогла его запитать
Внезапно, от рычага. Рычаги имеют свои собственные розетки, поэтому их не обязательно располагать на приборной панели. Но если их расположить именно там и подключить, они поделятся питанием со всей приборкой.
Можно использовать панель-основание. Вопреки её названию и тому, как легко она располагается на приборной панели, она не запитывает её. У панели основания сбоку есть контакт, который хорошо контачит с окаемкой кнопок и текстовых панелей, через которые и можно запитать приборную панель. Не смотря на кажущуюся тупость данного решения, панель-основание позволяет использовать элементы управления вне приборной панели.
А теперь быстро пробежимся по полям устройств, которые любезно слизаны с wiki
Указаны только самые основные поля, ибо ограничение символов
Рычаг LeverState Название поля, значение которого меняет рычаг. Изменяется в пределах LeverMinOutput - LeverMaxOutput LeverMinOutput Нижняя граница диапазона изменения рычага (0 по умолчанию) LeverMaxOutput Верхняя граница диапазона изменения рычага (100 по умолчанию) LeverCenterOutput Центрирующая позиция, куда рычаг будет возвращаться LeverCenteringSpeed Скорость возврата рычага в позицию LeverCenterOutput
Гибридная кнопка ButtonState Название поля, значение которого меняет кнопка ButtonOnStateValue Значение поля ButtonState, когда кнопка зажата ButtonOffStateValue Значение поля ButtonState, когда кнопка отпущена ButtonStyle При значении 0 - кнопка зажата, пока её зажимает игрок. При значении 1 кнопка будет зажата, пока игрок снова не нажмет на кнопку
Прогрессбар PanelValue Название поля, значение которого будет отображать прогрессбар PanelMinValue Минимальное значение, условный ноль для шкалы (чаще всего хардкодится в ноль, но можно задать любое число при необходимости) PaneMaxValue Максимальное значение шкалы. Обычно берется поле устройства (большинство устройств, на которые вешают прогрессбар, имеют поле максимального значения)
Текстовая панель PaneValue Поле, которое будет отображаться на текстовой панели. Чаще всего сюда вводят уникальное название, чтобы создать новое поле в информационной сети (своего рода глобальная переменная), чтобы получить доступ к панели через YOLOL скрипт
YOLOL. Великий и ужасный.
Теперь же, когда ты знаешь что такое информационная сеть, что такое поля и как они взаимодействуют друг с другом, пора прикоснуться к прекрасному: местному языку программирования YOLOL.
Сорян, но мне банально не хватит символов в один раздел, чтобы разжевать тебе YOLOL, поэтому сперва изучи официальную документацию[wiki.starbasegame.com] .
Потренироваться в написании кода и пройти маленький туториал можно здесь[yolol.info]
Как это работает?Подключенный к сети чип YOLOL имеет доступ к полям всех подключенных к этой сети устройств. Он может их читать и изменять. Все доступные поля в сети можно увидеть вызвав мультитул (клавиша U), предварительно наведя курсор/прицел на устройство, подключенное к сети.
Если какое-то устройство не работает как надо (например, двигатель), проверь его мультитулом. Если видны только поля самого устройства (белые на сером фоне), а остальных полей в сети не видно (голубые), значит устройство к сети не подключено.
Как это работает?Окей, мы можем изменять и читать поля. А что дальше? А дальше начинается совершенствование корабля, которое практически не имеет границ. И чтобы ты не потерялся в своих гениальных идеях, я предлагаю начать тебе с малого. Скрипт, который должен быть установлен на любом корабле - GURL. Он же GeneratorUnitRateLimit. Данный скрипт автоматически регулирует максимальную выходную мощность генератора, что позволяет понизить расход топливных стержней.
:GeneratorUnitRateLimit=(10000-:Battery)/75 goto 1 Здесь :GeneratorUnitRateLimit - поле генератора, отвечающее за максимальную мощность генератора. :Battery - поле батареи, отвечающее за текущий зарад батареи. 10000 - максимальная емкость батареи. Здесь мы используем одно поле батареи и хардкодим максимальное значение батарейки по одной простой причине - батареи разряжаются и заряжаются синхронно. Складывать значения всех батарей нет смысла.
Остальные скрипты можно подсмотреть в других руководствах, написать самому или нанять штатного YOLOL программиста за тарелку супа.
P.S.
Выражаю благодарность ребятам из [GK] за консультацию в вопросах строительства.
На все неточности, ошибки, опечатки можно указывать при помощи комметариев, получая дополнительный плюсик в свою карму.
Идеи и мысли по дополнению руководства можно высказать в комментарии или напрямую в дискорд verbmaks#0861 .
Source: https://steamcommunity.com/sharedfiles/filedetails/?id=2583605421
More Starbase guilds
- All Guilds
- Importing Blueprints
- How to make your own ore scanner (in 2024)
- Building a Pocket Tank
- New Player Resources (APR2024)
- Starbase Guide 207
- Starbase Guide 197
- Capitals 101: ,
- What to do when the Repair Job does not work
- Starbase Guide 167
- How to Bolt - Beginner to Advanced