Как настроить поезда факторио

Гайд по железным дорогам в Factorio

Читайте в этой статье

Для чего нужно это руководство?

Некоторые из вещей, о которых я буду говорить, кажутся мне очевидными, но я регулярно встречаю вопросы вида «Как мне настроить железную дорогу?». Базовый туториал даёт все ответы – но на языке, понятном скорее инженерам, чем простым игрокам. Большинство мануалов в ютубе, к сожалению, просто пересказывают это руководство, и показывают простую схемку из пары станций, рельс и поезда или двух. Несколько хороших мануалов с углублением в особенности ЖД в фактории есть в англоязычном ютубе, но они, опять же, недоступны тек, кто недостаточно знаком с разговорных английским. Я не умею снимать ролики для ютуба, поэтому решил написать небольшой мануал, и рассказать о некоторых особенностях, которые проявляются на больших размерах ЖД сетей, а так же постараться объяснить не «как надо делать» а «почему лучше делать так».

Основы железнодорожной логистической сети

Как только у вас вместо одного поезда начинает ездить два, пять, десять ….. сто – начинают возникать проблемы с пропускной способностью. Опыт использования конвейеров говорит – «просто добавь ещё пару путей!». Это неверно. Пропускная способность пути, как правило, крайне высока, и если у вас поезда не идут непрерывно один за другим – нет смысла делать 4-х или тем более 6-ти путевую линию. Как правило, проблемы находятся в других местах – это развязки, станции, и общая организация ЖД сети. И если развязки вы можете перестроить, а к станциям добавить буферы – общая организация сети с трудом поддаётся переделыванию.

Чтобы минимизировать пробки на развязках, желательно с самого начала строить свою базу и ресурсные модули по цепочке зависимостей. Например, на юге, снизу от базы, у вас добывается руда. Эта руда поездами доставляется на переплавку чуть выше. Оттуда другие поезда везут её дальше вверх – к созданию базовых компонентов. Далее эти базовые компоненты отправляются ещё выше, к местам где они требуются на производствах. Это создаёт некую виртуальную цепочку из добычи – переплавки – производств – продвинутых производств.

Представим её как цепочку A-B-C-D. В этой цепочке поезда ходят по маршрутам A-B, B-C, и C-D. Конечно, производственные линии не такие простые, и будут добавляться маршруты, которым требуется идти по пути B-D, например, однако основная масса поездов уже перестанет мешать друг другу. Просто для примера – если вы об этом не задумались в самом начале, то к середине игры у вас может возникнуть ситуация, когда поезда с рудой едут с южных месторождений, создавая пробки в самом центре базы – потому что едут по маршруту E-A. Старайтесь избегать таких маршрутов, и если зона добычи у вас на противоположной стороне от переплавки – лучше создайте отдельный обходной путь для поездов с рудой.

Помимо разделения зон маршрутов, оптимизация такого рода даст уменьшение среднего времени, которое поезд проводит в пути – что опять же повышает эффективность транспортного потока.

Сигналы – основы

Туториал в игре крайне невнятно объясняет разницу между обычными и проходными сигналами, а самые лучшие туториалы в инете ,вместо объяснения логики сводятся к простой рекомендации – ставьте обычные сигналы за развязками, а проходные – во всех остальных местах. В принципе, этот совет работает. Но почему?

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

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

Когда поезд едет по маршруту, он проверяет сигнал на въезд в следующий сегмент, и если он зелёный – едет дальше. Если красный – ждёт. Это может приводить к дедлокам, но про них чуть позже.

После такого базового объяснения становится понятно, что нужно нарезать свою ЖД на сегменты, но всё ещё непонятно – зачем использовать проходные сигналы. Я придумал конкретный пример, который показывает, какое преимущество они дают при правильном применении.

Проходные сигналы – практическая польза

Итак, давайте представим что у нас есть две станции – «Отправление» и «Прибытие». Между ними есть два пути, путь А и путь Б, причём путь А – короче, поэтому поезда всегда выбирают его. Но у пути А есть одна проблема – на нём есть станция «Бологое», и когда на ней стоит поезд – проезд по этому пути заблокирован. Перед станцией есть несколько сегментов, отделённых обычными сигналами – от развилки путей 3 сегмента.

Поезд отправляется из «Отправление» в «Прибытие», подъезжает к развилке, от которой ведут пути А и Б, и выбирает путь А, как более короткий. Он подъезжает к «Бологое», и видит что станция, по чьему-то недосмотру установленная прямо на путях, занята поездом, и проехать дальше нельзя. Поезд занимает первый свободный сегмент перед «Бологое» и ждёт, пока путь освободится. Та же история повторяется ещё с двумя поездами – пока не заполняются все сегменты от развилки до «Бологое». Четвёртый поезд, подъезжая к развилке, видит что путь А(точнее, первый сегмент этого пути) занят, и принимает решение ехать по маршруту Б. Первые три поезда всё ещё стоят….

Читайте также:  Clickermann не работает нажатие клавиш

А теперь представим, что в сегментах между развилкой и «Бологое» установлены проходные сигналы. Что изменится? Обычный сигнал перед «Бологое» показывает красный, проходной сигнал в предыдущем сегменте считывает его и тоже показывает красный, и так – до развилки. Первый поезд подъедет к развилке, увидит что путь А в данный момент заблокирован, и поедет по пути Б.

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

Сигналы – размер сегментов и длина поезда

Это неинтуитивно, но при планировании важно учитывать этот момент. Если вкратце – сегмент пути должен быть длиннее чем ваш состав. Более того – не только виртуальный сегмент – но и реальный, между развязками! Если вы используете составы из поезда и двух вагонов – сегменты должны вмещать в себя такой состав. Если вы используете длинные поезда – сегменты должны быть длиннее, если вы используете очень большие поезда – планируйте свою ЖД сеть очень тщательно! Почему?

Когда поезд въезжает в сегмент ЖД, он может остановиться на его выезде. Возможно, впереди занята станция, на которую ему нужно свернуть, возможно на развязке прямо перед ним сейчас красный. Что произойдёт если поезд длиннее чем сегмент? Его хвост останется торчать в предыдущем сегменте. Это не вызовет особых проблем в случае если предыдущий сегмент линейный, но что если это развязка? Она будет заблокирована до тех пор пока этот поезд не уедет.

Более того, если у нас, например, квадратная сетка ЖД путей, мы можем теоретически получить дедлок – поезд не может выехать на развязку потому что она заблокирована, другой поезд подъезжает к хвосту первого, и тоже стоит перед развязкой, блокируя уже третий перекрёсток,и это продолжается, пока не замкнётся квадрат. 4 поезда стоят, блокируя друг друга. Вы можете подумать, что это гипотетическая ситуация, для этого должно идеально совпасть время, в которое эти поезда подъедут в место X, но даже если вероятность этого крайне маленькая – однажды это случится. Поездов в вашей системе будет становится всё больше, движение всё насыщеней, и в определённый момент где-то поезда совпадут.

Поэтому просто запомните правило – расстояние между развязками должно быть больше, чем самый длинный поезд который будет ездить по этой ветке!

Развязки – расстановка сигналов

В целом, при проектировании развязок можно руководствоваться тем же правилом – на въезде проходные сигналы, на выезде обычные. Но я хочу разобрать это немного подробней.

Когда поезд въезжает на развязку, он её блокирует для других поездов, частично или полностью. Поскольку это может создать пробки, важно чтобы поезд въезжая на перекрёсток имел возможность выехать с него. Ставим на каждом выезде обычный сигнал, а по всей развязке, и перед въездом – проходные. Если поезду нужно после развязки налево, а тот путь сейчас занят – поезд, при правильной конфигурации сигналов, будет ждать перед развязкой, пока путь не освободится.

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

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

Станции – настройка

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

Как правило, первые эксперименты по настройке сводятся к условиям «Ждать полной загрузки» и «Ждать полной разгрузки», но они не дают достаточной гибкости. Поезд может стоять на станции по добыче руды, и ждать пока в него загрузят руду – а добыча истощилась. Поезд в результате бездействует, непрактично. Или ждёт пока его разгрузят – а на переплавке перепроизводство, продукция никуда не идёт и сундуки с рудой тоже забиты. В это же время, возможно, на другой станции руда требуется.

Для полноценного использования станций нам во первых потребуется хак, о котором многие не знают – если станции названы одинаково, то поезд едет на любую из них – во вторых – логические цепи. Начнём с организации доставки угля, например. Добывается он у нас в одном месте, но планируем добавить ещё добычу. Потребляется в топливном блоке, на переплавке железа\меди\стали, и на производстве гранат. Итого у нас две станции поставки и пять станций потребления.

Читайте также:  Почему не работает фискальное устройство

Для начала, именование. Назовём обе станции на которых мы загружаем уголь – «Добыча угля», а все станции на которых мы хотим выгружать уголь – «Выгрузка угля». Названия можете придумывать свои, главное чтобы они повторялись) Теперь, если мы поставим поезду маршрут «Добыча угля» (Ждать полной погрузки) – «Выгрузка угля (Ждать полной разгрузки), поезд будет ездить к любой из этих станций. Но есть проблема – сначала он поедет к ближайшей добыче а от неё – к ближайшей выгрузке. Давайте это исправим.

Если мы присоединим провод к станции и к сундукам – мы можем настроить условие, по которому станция будет работать. Для станции добычи нам нужно условие, что в сундуках достаточное количество угля для полной загрузки поезда. Я обычно использую двухвагонные поезда, поэтому ставлю условие включения – больше 4000 угля. Сундуки передают по проводам, сколько в них угля, и как только его накопится достаточно – станция заработает. Для станции выгрузки нам нужно условие, что в сундуках осталось мало угля. Например, мы хотим чтобы в них поддерживалось не менее 2000 угля – ставим условие: если угля меньше 2000, включаем станцию.

Что теперь происходит? Поезд едет к ближайшей включённой станции. Сначала он забрал уголь на ближайшей добыче, и отвёз его на ближайшую выгрузку. Например, это оказалась плавка меди. Он вернулся к добыче, загрузился, и едет к ближайшей станции, но на переплавку меди только что выгрузили 4к угля, и она их не успела потребить, поэтому поезд отвёз уголь на другую станцию выгрузки. Далее он опять едет за углём, но первая станция ещё не успела добыть 4к угля, поэтому он едет на дальнюю. Если все станции отключены – поезд стоит на той, на которую приехал последней, и ждёт.

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

Самый сложный момент в данном разделе – это логические условия. Объяснение того, как они работают, выходит за рамки этого туториала, но внизу я оставлю ссылки на интересные ресурсы.

Станции – буферы

Когда у вас на одном маршруте много поездов, они могут приехать к станции одновременно, и выстроится в очередь на путях, блокируя движение другим поездам. Это не очень хорошо, поэтому для таких случаев увеличивают количество принимающих станций, а так же используют «буферы» из путей.

Выглядит это достаточно просто – от путей выходит отнорок в сторону, разделяется на нужное количество линий, каждая из которых в длину позволяет вместить один или два поезда (опять же ,учитывайте, какие поезда у вас будут заезжать в этот буфер!), а в конце эти линии опять сходятся и ведут на станцию.

Кажется, это самый короткий раздел, и достаточно простой – но он тоже поможет вам избежать лишних пробок. 😀

Источник

Обучение: Ж/Д сигналы

Ж/д светофоры нужны для функционирования железнодорожной сети в Factorio. В этом руководстве рассказывается зачем и когда используются ж/д светофоры, что такое затор и в каком случае он получается. Цель руководства состоит в том, чтобы дать сведения читателю, чтобы он мог построить железнодорожную систему, работающую как часы. Показаны примеры часто используемых решений.

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

Contents

Обычные светофоры и блоки

Всякий раз, когда на одном пути появляются два и более поездов, существует вероятность их столкновения. Что бы этого избежать, на перекрестках и вдоль дороги, с некоторым интервалом, устанавливаются светофоры (рис. 1). Обычный ж/д светофор защищает блок путей после него до следующего светофора или конца пути. Светофоры гарантируют, что в одном блоке будет только один поезд. Когда поезд приближается к очередному блоку, который уже занят другим поездом, он остановится и будет ожидать разрешающий сигнал.

Блоки отображаются цветами, когда в руках игрока находится светофор. На рисунке 2 показано отображение 11 блоков.

Ж/д светофор светится зеленым, если за ним блок пустой. Когда поезд заехал в блок, то все пропускающие в него светофоры, переключаются на красный. Когда же поезд только входит в блок, то он на короткое время становится желтым, а после — красным.

Светофоры устанавливаются по правую сторону путей, то есть движение поездов правостороннее. Ввиду этого, в автоматическом режиме поезда не могут передвигаться, если по пути следования светофоры расположены только с левой стороны. Иногда это может вызвать ошибку «нет пути», когда путь есть, но на его части возможно только одностороннее движение.

Проходные светофоры

Использование светофоров предотвращает столкновение поездов, однако, вместе с тем, они приносят иные потенциальные проблемы. Каждый поезд ожидает до тех пор, пока следующий перед ним блок не освободится. Это создает проблему, когда поезд останавливается на перекрестке, из-за чего другие поезда тоже останавливаются, даже если они двигаются в другом направлении. В свою очередь, они останавливают другие поезда, что приводит в конечном счете к замедлению работы всей системы. Необходимо избегать остановок на перекрестках путей. В Factorio, для решения этой проблемы используется проходной светофор.

Наиболее важным правилом для поездов является то, что им нельзя ожидать длительное время в блоке после проходного светофора, тогда как в блоке после обычного — можно. Помимо этого, поездам нельзя ожидать на перекрестках, это правило выражается следующим образом: используйте проходные светофоры на перекрестках и перед ними, а на выходе — обычные светофоры. В общем случае, проходной светофор необходимо использовать, когда возможна ситуация блокировки ожидающим поездом другого поезда, идущего по другому пути.

Читайте также:  Не работает панасоник nn gd576m

Как работают проходные светофоры? Чтобы определить, проедет ли поезд мимо проходного светофора, необходимо рассмотреть следующий за ним путь до первого обычного светофора или станции, в зависимости от того, что будет ближе. Поезд проедет только в том случае, если все блоки на этом отрезке пути будут свободными. Когда же поезд проезжает проходной светофор, то весь этот отрезок резервируется до тех пор, пока поезд не покинет его. Проходной светофор, который ведет к блоку с одним исходящим сигналом, будет того же цвета, что и этот сигнал. При разделении пути, может возникнуть ситуация, когда одна из веток занята (горит красный), а другая напротив — свободна (горит зеленый). В этом случае, проходной светофор будет синим, указывая на то, что какой-то из путей дальше свободный (или несколько), а другие заняты.

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

Затор

Использование сигналов приводит к тому, что одни поезда ждут другие. Ввиду этого, возможна ситуация, когда поезда выстраиваются в цепи, где последний поезд в цепи ждет, когда проедет первый поезд. Эта ситуация называется затором, которая разрешается только в ручную. Необходимо принимать все меры, чтобы не допускать заторов, иначе все поезда, проезжающие через этот участок, застрянут. Наиболее частые причины возникновения заторов:

  1. поезда ожидают посреди перекрестка и
  2. в ж/д сети нет свободного места для поездов.

На рисунке 7, показана ситуация затора, когда внутри перекрестка проходные светофоры заменены обычными, в результате чего поезд ожидает посреди перекрестка. Правильная расстановка светофоров показана на рисунке 5. Все входные и внутренние светофоры перекрестка должны быть заменены проходными светофорами. Такая конфигурация, считается общим случаем перекрестков.

Затор на рисунке 8 произошел ввиду кольцевой структуры самого перекрестка, неспособного пропустить столько поездов. Расстановка светофоров правильная. Чтобы устраниь затор, нужно либо убрать само кольцо, либо уменьшить количество проходящих через него поездов.

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

Интервал между светофорами

На рисунке 10 изображен затор между двумя Т-образными перекрестками. Он случился из-за того, что, при остановке, хвост состава остался на другом блоке. Сами перекрестки по отдельности (хотя кто-то может возразить, что на самом деле это один большой перекресток) построены верно, однако, учитывая длину состава, они расположены слишком близко друг от друга. Есть три возможных способа разрешить затор: обычный светофор между перекрестками можно заменить на проходной; перекрестки расположить друг от друга на большем расстоянии; укоротить поезда.

Расстояние после светофора на выходе из перекрестка и до следующего светофора должно быть не меньше самого длинного поезда в ж/д системе. В общем случае, это правило справедливо для всех обычных светофоров.

Рекомендуется задать максимальную длину состава для всей ж/д системы и придерживаться ее при расстановке светофоров на путях.

Разделение ж/д блоков

Длинные непрерывные участки путей необходимо разбивать на блоки обычными светофорами, чтобы несколько поездов одновременно могли передвигаться по этим участкам, что увеличивает пропускную способность сети. Переходы должны разносится друг от друга на несколько блоков. Внутри перехода, светофоры должны устанавливаться таким образом, чтобы несколько поездов могли его проезжать без снижения скорости — например, поезда идущие в противоположных направлениях, не должны замедляться, для чего им нужно проходить по разным блокам. Примеры приведенные ниже, соответствуют описанным правилам.

Примеры

Наиболее распространенной архитектурой построения ж/д системы, является двухколейная разнонаправленная линия. Все примеры ниже основаны на этом решении. В большинстве случаев, двунаправленный путь не используется в качестве ‘главной’ ж/д линии.

Т-перекресток

На рисунке 11 изображен базовый перекресток трех линий. Схема расстановки светофоров перекрестка, позволяет, в некоторых случаях, пересекать его нескольким поездам одновременно. Например, в случае, когда один поезд движется слева направо, а другой справа налево, они пересекают разные блоки: первый поезд пересекает левый желтый блок — синий — нижний правый желтый блок; второй поезд пересекает верхний правый желтый блок и левый верхний красный блок. Хотя такая возможность не является строго обязательной для перекрестка, она позволяет за меньшую стоимость увеличить его пропускную способность.

Зона ожидания

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

На рисунке 12 изображена зона ожидания размещенная перед станцией. На входе зоны ожидания используются обычные светофоры, т.к. поезда могут задерживаться там на длительное время. На выходе используются проходные светофоры, чтобы путь из зоны ожидания до станции не занимался. Расположение станций в разных блоках позволяет им функционировать одновременно.

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

Источник

Оцените статью