Tags: ttd

404

Трушный стиль игры в TTD

карта 2048х2048, полное отсутствие индустрии на момент начала игры, очень редкие поселения.

Вот в таких условиях начинаешь лучше понимать суть ЖД, у которой вокзалы - это малая часть длины рельсов. И вот тут-то и начинаешь задумываться о том, что две линии можно использовать для многих направлений. И это перестаёт быть идейным фэнсервисом и становится принципиально важным. А выбор места строительства и направления диктуется близостью (всего три экрана) и направлением уже проложенных рельсов (которые на экранов 10-20 тянутся).
404

TTD Съезд со станции

Главной проблемой съезда является синдром затора. Если мы организуем съезд со станции с какими-либо соединениями вида 2:1 (cуждение числа рельсов), то затык поезда на таком съезде тормозит обе платформы.

Куда легче было бы, если бы пути сразу расплетались, обеспечивая отстойник (а лучше, два) до сплетения. Благодаря этому, затык на сплетении не приводил бы к блокировке пути (т.к. был бы альтернативный объезд). А некоторого размера отстойник бы гарантировал, что затык приведёт только к накоплению отстойника, а не предотвратит разгрузку поездов.

Итак, примерная схема съезда:



В принципе, тут можно накручивать больше (увеличивая отстойники и меняя их критичность), но суть не в этом. Суть в том, что каждый выход тут же разделяется на два отстойника. Тут есть одна неловкость - три станции в 6 путей не разветвятся симметрично. Так что в реальности этот выход выглядит так:



UPD: приведённая схема не есть быть очень хорошо из-за поворотов чаще чем раз в 2 тайла.
404

TTD

Снова подсел на OpenTTD. Ощущаю, что ещё сколько-то итераций, и я смогу продумать схему идеальной станции.

В настоящий момент схема гибридного узла выглядит следующим образом: вход - 2 линии, выход - две линии, странция - три линии.

Фокус пока на "входе" (проблему выходной развязки я решу чуть позже). Основная идея: каждая входящая линия имеет эксклюзивный разгрузочный порт, плюс один 'shared', который может обслуживать обе линии. Классическая схема "тройная развязка на три линии" плоха тем, что её может проходить только один поезд в один момент времени. Вместо этого мы строим такое дерево состояний:

1ая линия: либо эксклюзивный порт, либо общий.
2ая линия: либо эксклюзивный порт, либо общий.
Общий порт: (1 выход 2 входа): оба выхода открыты, если свободен вход (выход закрыт, оба входа закрыты).

Итого:

1ая линия: открыто = (ЛИЧНЫЙ_ПОРТ_1 ИЛИ ОБЩИЙ)
2ая линия: открыто = (ЛИЧНЫЙ_ПОРТ_2 ИЛИ ОБЩИЙ)

Основной проблемой является проблема ожидания. Потому важной категорией будет понятие "train length", или TL. TL должен быть таким, чтобы поезд мог заехать в перегон и ждать следующего семафора. Если перегон будет меньше TL, то поезд перегородит два сегмента, включив довольно неприятные блокировки.




Обратите внимание - в этой схеме перед станцией, фактически, отстойник в 4 поезда. Это гарантирует, что на станцию будет гарантированно кто-то заезжать как только открывается свободный порт. Часть поездов будет простаивать в два раза дольше других (кто заехал в общий порт, тому ждать с 50% вероятностью не одного поезда, а два). Однако, задача схемы не fail schedule, а максимальный payout со станции - для этого она должна быть занята практически всегда.

Подробнее: Для порта 1:

Если есть позед в 1ом отстойнике, он заезжает. Если поезда нет в отстойнике, а есть на подъезде ранее - он проезжает прямо. Нет ни там, ни там, порт стоит.

Порт 2:

Если есть поезд в 1ом или 2 отстойнике, он заезжает. (Никакие другие условия не требуются).

Порт 3: аналогично 1.

Отстойник 1: поезд заезжает, если отстойник свободен и свободны рельсы на развязке О1-О2.

Отстойник 2: поезд заезжает, если отстойник 1 занят и развязка О1-О2 свободна.

Отстойник 3: аналогично 2, но О3-О4.

Остройник 4: аналогично 1, но О3-О4.

Развязка О1-О2. Открыта, если пуст хотя бы 1 отстойник. Может быть блокирована сломанным поездом (блокируются О1 и О2).

Развязка О3-О4. Аналогично.

Вот как выглядит это в игре:



Следующая задача: аналогичный вызед.

Основной проблемой является коммутация - каждая развилка, которую проходит поезд, блокирует все пути, в которых зазвилка участвует. Таким образом, развилка на 5 линий будет блокировать все пять линий. Целью скоростной коммутации является сведение схемы к максимальному числу развилок для минимального числа дорог. Минимальное число для существования развилки - 3 (2 входных, 1 выходной или наоборот).