Мир Voxel Tycoon: Сигналы

## Введение

### О чем здесь написано?

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

Многие из вас уже отчасти знакомы из повседневной жизни с такой разновидностью сигналов как светофоры. Железнодорожные сигналы, с другой стороны, работают *немного по-другому*. Как раз об этом, в рамках Voxel Tycoon, тут и пойдет речь.

### Зачем нужны сигналы?

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

### Блоки

Если говорить проще, то **блок** — это пространство пути между сигналами или тупиком, где сам путь заканчивается. В обычных обстоятельствах, механика игры не позволит нескольким поездами одновременно въехать в один блок.

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

## Типы сигналов

Сигнал, разделяя путь на блоки, указывает поезду, свободен ли следующий за этим сигналом блок или нет. Пре-сигнал, в принципе, работает как и обычный сигнал, но при этом он смотрит на следующий за ним сигнал и учитывает его показания. А называется пре-сигнал так, потому что он «заглядывает» за следующий за ним сигнал. Также пре-сигналы можно ставить один за другим, создавая некую сигнальную «цепь», откуда и вариация названия — «цепной сигнал». Надеемся, что к концу этого гайда вам станет понятно, в каких случаях какой тип сигнала использовать.

## Примеры

### Первый путь построен!

Весь путь считается за 1 блок (*красная линия на картинке*), с которым не будет никаких проблем, если пользоваться только 1 поездом, перевозя *драгоценную руду* между двумя станциями. Если мы хотим продолжать захватывать местные пространства с помощью капитализма и железных дорог, нам понадобится **больше путей**.

**Добро пожаловать в New Braunfels!**

### Еще один путь

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

### Первое регулируемое пересечение!

Обратите внимание на то, что сигналы стоят по **обе стороны** от пути на каждой из трех веток пересечения. Это нужно для того, чтобы поезда могли двигаться в обоих направлениях, *но об этом позже*.

### «Дедлок», ну вот, опять

Наши сигналы работали нормально, но теперь поезда застряли, **взаимно** друг друга **заблокировав**. Это называется «**дедлок**». В таких случаях оказываются полезны **пре-сигналы** (*можно посмотреть на следующей картинке*).

## Использование сигналов

Если вы собираетесь повсюду строить 1-блочные пути и игнорировать здравый смысл, то можете *смело пропустить этот раздел*.

#### В одну сторону

Односторонний путь создается размещением сигналов **только** на одной из сторон пути.

Такие пути используются **чаще всего** и хорошо работают в тандеме с кольцевыми или многополосными линиями.

#### В обе стороны

Двухсторонний путь создается размещением сигналов на **обеих** сторонах пути.

Такие пути используются чаще всего в ранней игре, когда средств, достаточных для постройки многополосных линий, еще нет, а также в некоторых *редких случаях*. Такие пути уязвимы к «**дедлоку**».

#### Двухполосные

Из многополосных линий являются самой *простой* их вариацией.

Такие пути являются *предпочтительными* для постройки большей части железнодорожной сети. Рекомендуется оставлять между путями *хотя бы* 4 клетки для будущих пересечений.

#### Многополосные

Используются в случаях, когда двухполосных линий недостаточно:

* Буферизация для станций.
* Как полосы разгона.
* Отдельные полосы для быстроходных поездов.
* Увеличение пропускной способности.
* *Для визуального экстаза* :)

#### Пересечения

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

##### Скрещение

Скрещение — это тип пересечения, при котором один путь **пересекает** другой, без возможности для любого проезжающего поезда занять «чужой» для него путь.

##### Разветвление

Разветвление или разделение — это тип пересечения, при котором путь **разделяется** на два и больше путей.

##### Объединение

Объединение или соединение — это тип пересечения, при котором два или больше путей **сливаются** в один.

##### Сложные пересечения

Сложные пересечения — это пересечения, одновременно использующие сразу **несколько** или **все три** типа пересечений. Являются главным источником «**дедлоков**» и разнообразных проблем с сигналами.

### Эффективный дизайн *vs* Массовая спагеттификация

Во время постройки линий и путей, учитывайте количество создаваемых вами блоков и помните, что их должно быть *больше*, чем самих поездов. Так как от поездов мы хотим максимальной скорости и как можно меньше остановок по пути, *лучше всего* иметь в запасе некоторое количество свободных блоков. В идеале, это значит, что нужно использовать двухполосные линии с множеством сигналов, располагающихся на длинных и, желательно, прямых, путях. Местные горы и равнины могут быть как препятствием, так и помощником в размещении путей, но не стоит забывать сохранять здравость ума и держать уровень *сходства вашей железнодорожной сети со спагетти* на минимуме. Чем проще, тем лучше, но если то, что у вас есть сейчас — работает, то ничего страшного, все придет с опытом :)

### Объединяя мощь пре-сигналов

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

Обратите внимание на то, как меняются сигналы по мере движения поезда: все три пре-сигнала остаются гореть красным, пока первый «*обычный*» сигнал не загорится зеленым. Помните, как сигналы разделяют пути на блоки? *Сколько* блоков можно сосчитать на гифке? ;)

Так как пре-сигналы это не обычные сигналы, они умеют читать ~~мысли~~ следующий за ними сигнал. И получается, что первый пре-сигнал считывает второй, второй — третий, а третий — первый «*нормальный*» сигнал. «Нормальные» сигналы не заглядывают за следующий сигнал, так что «цепь» прерывается здесь, на прилежащем блоке. Именно поэтому, когда поезд покидает этот блок и проезжает *второй* «обычный» сигнал, первый «нормальный» сигнал начинает гореть зеленым вместе со *всеми* пре-сигналами.

А блоков на гифке, кстати, 6. *Хорошая работа*, если угадали :)

## Решение проблем

Если ваши поезда продолжают попадать в «*дедлоки*» или *грустить*, потерявшись, то необходимо *провести диагностику* вашей необъятной железнодорожной сети: существующие маршруты, пересечения и в принципе, каждый из блоков этого пути. Виновником всех проблем запросто может оказаться один единственным упущенный сигнал или въезд или выезд на местное пересечение. Если у вас все еще есть сложности с прокладкой или отладкой ваших сетей, не стесняйтесь приходить в наше *дружелюбное комьюнити* в Discord (*или постучитесь к автору оригинала этого гайда **cileymyrus420#2231** на англ. языке*)

### Заключение

**Что?** Вы уже прочитали *вееесь* гайд? Вас что, *погладить* за это по головке? Вперед, **играть в Voxel Tycoon!**