Alt-F4 #45 - Satisfactorio  06-08-2021

Написали Niet, отредактировали stringweasel, Nanogamer7, Conor_, Therenas, Firerazer,
перевели KRS

Содержание

Для #45 выпуска, Alt-F4 у нас есть очередной новый мод! И знаешь что? Мод настолько новый что РЕЛИЗИТСЯ прямо вот сейчас! Сюрприз! (наслаждайтесь) Niet вдумчиво проработал вопрос механик Satisfactory’s на почве Factorio, и знаешь, там не просто адаптация рецептов. Там реально основные механики сатиса. Пост в кратце расскажет каким был путь создания мода внутри факторки который должен отражать игру созданную на другом движке но по виду факторки, но с механиками факторки, отражающими механики той игры, сделанной по факторке. И это не рекурсия, а рабочий мод. Добро пожаловать под кат.

Satisfactorio! Мы открылись! Niet

What?

Уже с год я собираю мод “Satisfactorio”. Это полный ребаланс, где можно вспомнить (почти) всё из Satisfactory но прямо в Factorio! Вообще всё, from Milestones to Drones (от научныхъ эпохъ до дронычей-самолётиков) (а так-то и всё остальное тоже), было бережно воссоздано внутри Factorio.

Зачем?

Мододелье это не про “а зачем”. Мододелье – это когда “а почему бы и… да?” внезапно превращается в рабочий мод. Лично мне понравились и Factorio, и Satisfactory. А для Satisfactory так и вообще завалялся мод где даже собрали Факторку внтури Satisfactory. Причём с манипуляторами, древом технологий и даже с финальным запуском ракеты. Мне идея понравилась. Я подумал, а давайте завернём кусочек Satisfactory в Факторку. Ну, как мы видим попытки были и до этого, но что-то там пошло не так и мод умер без особых достижений.

Одна чудесная особенность Satisfactory в том, что местные конвейеры цепляются напрямую к машинам без вот этих вот рукастых посредников. Это применимо и к рельсовой системе. Поезд просто грузится прямо со станции (или обратно в неё), которая уже цепляется прямо к конвейеру. И вот вспоминаешь таки “хаотичные” группы манипуляторов на своей любимой макаронной фабрике и чувствуешь разницу.

А кто Я вообще?

Ну для справочки, в модах я скорее новичок. То есть, кроме парочки мелких модов (один для расчёта соотношения солнечных панелей, и ещё один чтобы сохранять активные сигналы вот прямо со столба в постоянный комбинатор копипастой), я особо в мододелье до этого не погружался.

Конечно, я немного разработчик. Я занимаюсь одной fan-игрой (free-to-play, с Pokémon-ами и охренительной графикой из 2009), кстати уже вот как 12 лет. Но даже так, там почти всё на PHP и JavaScript. Lua, язык модов Факторки, был для меня не знаком. К счастью, мои общие IT навыки пригодились, да и вообще хорошо зашли. Пришлось только выучить синтаксис Lua и разобраться как накатать Lua скриптик. Factorio API внезапно очень хорошо описан офф. документацией, а Факторский форум мне тоже чудесно подсобил.

Что было дальше?

Первым делом, я решил прицепить конвейер напрямую к автоматам производства. Я поковырял loader-ы (погрузчики), но быстро понял что у них всегда в приоритете грузить сначала на одну половину конвейера. При неполной загрузке они сначала заполняют правую линию конвейера. Но если та уже полная они начинают класть на вторую, а тогда есть шанс получить на выходе две линии материала. Но только если перед этим была пауза в потреблении… (то есть двойной выход но только на время после перегруза…) В общем сложно и неудобно. Ребята из Satisfactory не осилили не поняли зачем всё это и запилили всего одну линию на конвейер. Как вы понимаете, в Factorio их уже 2 и это базовая часть игры, прийдётся адаптироваться.

Руда поступает только на половину конвейера, а хочется использовать весь.

Я поискал готовые примеры (моды Miniloader и Editor Extensions, например) чтобы глянуть как они наполняют обе половины. Выяснилось, что там парочка невидимых манипчиков, каждый для своей половины конвейера.

Ещё секунда (коротенькое такое приключеньице минут на 20, да?) и я уже имел демку с буром, заполняющим конв, который едет в плавку которая плавит слитки, которые едут в constructor чтобы стать пластинами, которые тем же способом едут в ящик на полежать кучкой. Чудесно!

Копаем руду, плавим слитки, и катаем в пластины. Одним конвейером.

Первый вкус победы. Вкус мододельства. Я принял волевое решение. Портируем ВСЕ механики Satisfactory, какие там есть.

Весело, конечно, да. Я тут сразу приступил к процессу, но меня вот немного (и быстро) накрыло (Адаптация, eng)(it “nerd sniped” me). Как меня отпустило обратно, я сразу решил выписать общий список того, что и как я буду воссоздавать.

Предсказуемо, механик в общем-то много! Приступил к простым. Подкрутить рецепты и ингредиенты было совсем не сложно, добавить сборщики для новых “типов” рецептов тоже было не трудно.

А вот с остальными механиками сразу стало туго.

Не предусмотренные игрой строения (не сборщики) в Факторку добавить просто нельзя.

Но мы можем организовать “составную сущность”. То есть несколько базовых “простых” строений напихать в одну клетку, ну или все вместе рядом одной структурой, если угодно.

К примеру, мой “исправленный” рудокоп Miner в сатисе вообще-то не кладёт руду на конв; по коду Факторки это бы привело к заполнению половины ленты. Но я хитрый, поставил ему потайной сундучок из которого уже (подобно Miniloader-у) наполняется лента на обе половины. Такой вот композицией сущностей можно прямо вот что угодно наклепать!

Крупные переработки механик

В принципе, и Факторка и Сатис работают по старой схеме времён промышленной революции: “Мы делаем машины, которые делают машины, которы.. ой всё”, но детали того КАК они это делают настолько различны, что было непросто.

Во-первых, в Satisfactory нет ручного крафта. По крайней мере там нельзя закинуть в очередь крафта половину галактики. Там нужно топать к Craft Bench и зависать с ней пока не закончишь. Чтобы процесс был близок и похож, я добавил крафт-станцию, которой не нужно электричество, но работает она ТОЛЬКО пока её экранчик открыт в твоём экранчике. Я добрый, я знаю.

GUI крафт станции с демонтсрацией крафта железных пластин. (jpg)
Крафт Станция (Craft Bench) хочет твоей любви тепла и ласки, чтобы просто работать.

Похожим образом, строения не хранятся в виде заводов в персонаже. Теперь, ты выбираешь построку, а ресурсы к ней уйдут из кармана автоматически на каждую копию постройки прямо когда ты их ставишь. Также, когда сносишь постройки – сразу получаешь исходные запчасти.

Выбери здание, размести! (и всё)

Другое коренной различие связано с “прохождением”. Вместо “спама” колбочками чтобы накормить ненасытные лабы, Satisfactory хочет от вас готовый (небольшой) набор частей в HUB’е аки квест предметы. Ну что, я опять добавил специальный сборщик, но этот, правда, ничего не крафтит. Но он туточки потому, что выставленный рецепт – это очень близкай реплика/аналог вехи/эпохи (Milestone) из сатиса. Дальше больше, с правильным рецептом здание позволяет даже автозагрузку нужных “квестовых” “ингредиентов” текущей эпохи. Положь в “коробочку”, и я нарисую тебе красивую кнопку, открывающую следующую эпоху (Milestone). Круто? А то жь!

Выбери эпоху (Milestone) и поднеси требуемый дар чтобы завершить её.

Электросеть? Тоже переработали. В Factorio, красная зона по питанию просто тормозит скорость производства. “И так сойдет”, (пока слабая углекопалка не опустошит котлы совсем в край, конечно). В Satisfactory напротив, недостаток питания вот сразу вырубает всю фабрику, а чинить и перезапускать надо будет ручками. Было сложно, я пытался, и по итогу каждая электросеть теперь имеет “тайного покупателя”. Если ревизор говорит что не получил электрику в полном объеме, все генераторы сети рубаются в ноль, а игроку мы пожелаем удачи.

Все местные машины отражают нехватку питания значком. (jpg)
Вся фабрика ~~слома...~~ отключилась!

Разделение и слияние лент конвейеров тоже немного другое.

Вместо сплиттера/разделителя/(Splitter) на две клетки, Satisfactory имеет блок разделителя (Conveyor Splitter) и блок смесителя (Conveyor Merger), что распихивают один конвейер в три стороны и наоборот смешивают три штуки в один. Знакомые балансеры внезано больше не работают! (или работают по другому) Satisfactory обычно не особо нуждается в оных, но на всё есть свои ниши, правда?

Балансер 3:3 слвиающий три(!) ленты.

Satisfactory имеет умный разветвитель (Smart Splitter) (и более поздний управляемый разветвитель (Programmable Splitter)) что позволяют ставить фильтры на проходящие предметы:

Смешанная лента разделяется на отдельные.

Довольны? А у нас есть ещё!

Изменения в механиках это хорошо.

Но Сатис имеет целый список механик без прямых аналогов в факторке (нет не третье измерение). Их пришлось встраивать как можно более красиво, где получилось.

Войнушка на ранних стадиях ведётся в рукопашную, где ты обычно затыкиваешь оппонента пока вальсируешь вокруг его попыток причинить тебе радость в стиле лёгкого соулса. Factorio чесно говоря так не умеет.

Но мы знаем, что на пушку можно повесть (knockback и stun)(отбрасывание и “заморозку” движения).

При весьма прямых руках (и некотором запасе времени), с такими вещами теперь можно валить первых врагов даже без урона! Базы врагов вырезаны за скобки, но определённое конечное число граждан-ксеносов охраняет точки игровой важности типа ресурс-нод и всякого лута-коллекционки.

Вообще говоря, тут не вся живность хочет тебя сожрать. В Satisfactory можно найти (и приручить) Lizard Doggos. Кстати за это с них потом понемногу падает случайный лут. В общем, теперь bobenemy, NE с артефактами и прочия, не нужны, а ты можешь собрать маленькую ферму собачатины! Заглядывай к ним чтобы забрать всякую мелочь. Может будет просто кусок угля (Power Slug), а может и термоядерный булыжник! (nuclear waste) Испытай удачу, инженер!

Весёлая ферма! Теперь с ксено-собачками!

Траспорт поставляется с автопилотом. Из коробки.

Запиши маршрут следования и отправь его в путь. Чудесная вещь для ранней эпохи уже на пути к первому паровозику. Транспорт гружаем и выгружаем на грузовых терминалах. Так можно делать органичные распределённые производства.

Вам доставочка с алика! "коробчатыя индустриальныя бимузы"! (encased industrial beams).

Устали чапать на своих двоих? Satisfactory предлагает Zipline (крюбчок/канатная дорога/тарзанка сумасшедшего), позволяет цепляться к проводам чтобы ехать быстро. Ещё (Hyper Tubes) (гипер трубы) тоже позволяют быстро. В стиле “из пушки на луну”, где ты ядро (перемещение человечкой пневмопочтой). А попозже так и вообще собирается Jetpack который грейдится в Hover Pack. Последний легко запитывается от местных протянутых проводов, законом не запрещено, летаю где хочу.

Zipline (крюбчок-тарзанка) позволяет кататься по проводам.

Ещё есть дронычи. Они как логистические дроны но круче! Каждый дроныч умеет таскать аж 9 стаков предметов за полёт, ожидая полной разгрузки на точке сброса, а после, дроныч забирет обратный груз, если есть что. Они очень шустрые, аж до 240kmh! (кмч) шустрые!

Есть нюанс со скоростью загрузки выгрузки. Для дронычей она хуже, а потому на малых дистанциях погрузка-выгрузка составит бОльшую часть времени доставки в разрезе предмета, а потому сделает дронычей не такими эффективными как остальные варианты логистики.

Этот дроныч таскает азот и относит пустые канистры на дозаправку.

Там ещё кое-что есть, но список уже и так длинный, остановимся пока тут.

Нужен графоний!

Как прекрасно видно по скринам выше, я чуть больше программист. Я не художник. Все здания почти что картонка с наклееной иконкой из Satisfactory. По геймплею, игра вполне рабочая, а к “графону” можно и привыкнуть, но, конечно, чувствуется не так красиво. Я точно не откажусь от помощи с графикой. Если у вас есть опыт с текстурками к модам Factorio, шлите весточку! Посмотрим, что тут можно устроить.

Тем временем, а вот и сам мод!, уже доступен на Мод-Портале! Мы релизимся, посоны!

Маленький заводик для алюминиевых корпусов.

Удачи вам. The factory must grow.

Во имя эффективности!

Участие

Как обычно, мы ищем неравнодушных и желающих поучаствовать в деле Alt-F4. Написание хорошей статейки на английском или помощь с переводами? Что угодно. Если у тебя есть идея, которую ты можешь красиво и лаконично выразить годной статейкой, это та самая колекция хороших статей. Дерзай! Если есть, но не уверен, залетай в дискорд. Мы поможем и с вопросами идей, иногда с самим материалом, и даже выправим структуру, если попросишь. Если твой путь пера и клавиатуры зовёт тебя вперёд, дискорд наш вот тут, (eng) милости просим!