Давно собирался где-нибудь изложить свою концепцию желдор-экономического симулятора, кажется, тут подходящий ресурс для этого. Да и речь в соседней теме зашла.
Попробую систематизировать все то, что приходило в голову по теме создания "идеального железнодорожно-экономического симулятора", как его вижу я.
Графическая часть.
Довольно проста и условна - на главной карте, похожей на топографическую (двумерную, векторную), нанесены населенные пункты, элементы рельефа и ландшафта, промышленности и существующая дорожная сеть, по которой и происходит пассажиро- товарооборот до нашего появления, в каких-то своих масштабах. Графически это никак не отображается, просто при пересчете в каждом учетном периоде (месяц или год) это учитывается на производствах и нас.пунктах и в свойствах появляются соответствующие циферки и графики.
При клике на производстве или н.п. или другом объекте, имеющем меню, показывается окошко со свойствами и цифрами.
Игроку доступны:
1. Прокладка, улучшение и разборка ж/дорог
2. Покупка, продажа, капремонт подвижного состава (экипировки и регулярное ТО происходят в автоматическом режиме)
3. Инвестиции в производства и некоторые объекты в нас. пунктах
4. Взаимодействия с неким условным банком
Игрок не может:
1. Основать новое пр-во или нас.пункт
2. Использовать другие виды транспорта, кроме железной дороги
Прокладка ж/д.
Довольно простая операция (но очень затратная), имеем два вида прокладываемых путей - прямая и кривая (сплейн), во второй мы должны указывать радиус кривой, который будет в дальнейшем влиять на ограничение скорости. Также у нас будут доступны три-четыре подвида путей под разные нормы осевых нагрузок - более легкие рельсы будут стоить дешевле, но по ним не смогут проехать локомотивы и вагоны, рассчитанные на более высокие нагрузки. Повышение осевых нагрузок повлечет реконструкцию путей.
Векторная карта должна содержать информацию о рельефе в виде горизонталей. В зависимости от которых нам надлежит использовать при прокладке тот или иной уклон пути, при этом расчитывается объем земляных работ (насыпи и выемки, а также эстакады, мосты и туннели).
Станции.
Три основных типа: станция, разъезд, о.п.(пассажирский).
У станции можно производить расширения (или сразу задавать при постройке): кол-во путей, пасс. платформ, грузовые дворы, депо, пункты экипировки.
У разъездов только кол-во приемо-отправочных путей и пасс. платформ.
У о.п. только пасс. платформ.
Разумеется, чем больше станция и чем больше в ней элементов, тем дороже она будет стоить и тем дороже будет земля, занятая под ней, особенно если это в населенном пункте.
Сигнализация.
Напрямую зависит от года в игре, так как со временем становятся доступные все более совершенные ее виды, но они будут стоить все дороже (как закупочные цены, так и обслуживание, пересчитываемое раз в месяц).
Виды можно выделить такие:
1. по виду сигналов - семафорная, прожекторная, линзовая, светодиодная
2. по виду блокировки - электрожезловая, полуавтоблокировка, автоблокировка, радиоблокировка.
3. по виду централизации - ручная, электрическая, микропроцессорная.
Все это напрямую влияет на наши возможности по перевозкам, так как ограничивает пропускную способность линий.
К тому же, в зависимости от времени, будет разная стоимость как у путей, так и у сигнализации, и если, скажем, в начале 20-го века повысить пропускную способность можно будет лишь за счет второго (и даже 3-го и 4-го) пути, то после середины 20-го это можно успешно сделать не строя второй путь, за счет автоблокировки и правильных расположений разъездов.
Также примерно с 20-30х годов должна быть доступна электрификация, требующая больших капитальных затрат и затрат на содержание и обслуживание. Оснащение которой должно быть непозволительной роскошью в случае если ваша линия малонагруженная.
Взаимодействие с промышленностью.
Производства двух типов - добывающие и перерабатывающие, цепочка производств - дело отдельного описания.
Под разные грузы - разные вагоны, тут нечего особенно выдумывать - полувагоны и хопперы для сыпучих, цистерны для жидкостей, платформы, крытые, изотермические, итп.
У грузов есть несколько коэффициентов, влияющих на стоимость перевозки - зависимость от скорости доставки, удаленности, потребности в особом типе вагона (например, изотермическом).
Для примера можно рассмотреть небольшую цепочку.
Песчаный карьер (добывающ. тип) - стеклозавод - пивзавод (который также принимает зерно и хмель с ферм или городского склада) - город.
Город принимает множество товаров по принципу склада, часть складирует, часть потребляет за учетный период.
Разумеется, если определенный товар на складе доставлен 100%, то вы не можете доставить туда его еще.
В зависимости от количества определенного товара на складе вырабатывается множитель на его цену - чем меньше товара на складе, тем выше множитель.
На производствах также действует правило склада - есть некоторый потребный запас для производства чего либо, без которого невозможен выпуск продукции. он заполняется обычно процентов на 10 своим ходом, дабы предприятие вообще работало, сверх того - привозится нами по ж/д. Перед каждым рейсом идет проверка принимающего склада и если он заполнен на 100%, то сырье просто не отгрузят (договор на транспортировку принимающая компания не подпишет).
Склад предприятия для приема сырья и для готовой продукции разный, второй пропорционально меньше.
Т.е. сырья надо привозить всегда больше, чем отправлять товаров.
Схема примерно такая (не для игрока, а для самой программы) - производство делает запрос на доставку, в котором указывает максимальное кол-во сырья/товара, которое оно может принять, а перевозчик везет столько, сколько позволит пропускная способность линии. Нет никакой одновременной выработки товара без получения сырья (а ля TF) и нет никакого бесконечного привоза сырья в забитый склад производства (а ля TG). Размеры складов и выработка зависят от уровня производств, которые медленно растут при интенсивном использовании, а так же при вложении инвестиций.
Пассажиры.
С этим все достаточно просто. 3 класса вагонов (для каждого временного периода свои), нормы скоростей (тоже зависят от того, какой год на дворе), жесткая привязка к скорости доставки с очень большим спадом в цене в случае увеличения времени в пути сверх положенного, а также зависимость от дальности.
Коэффициент комфорта будет рубить попытки поехать пассажирам в далекий город в вагонах 3го класса, а в ближайший городок они поедут с большим удовольствием в 3м классе, нежели каком-нибудь другом.
Перевозка пассажиров - дело необязательное (как и перевозка грузов), можно заниматься либо тем, либо тем, подстраивая под определенные нужды свою сеть. К примеру, концентрация на пассажирских заставит раньше электрифицировать дорогу, развивать пути в сторону повышенных скоростей, закупая преимущественно скоростные локомотивы, а грузовое движение может развиваться в сторону повышения массы поезда и осевых нагрузок при относительно низких скоростях движения. Естественно, мало кто может себе позволить сразу успешно развить оба направления из-за большой дороговизны, разве что ближе к поздней стадии.
Время и расстояния.
Склоняюсь к тому, что ничто не мешает брать за основу реальное время и реальные расстояния на картах.
Игра у нас все равно без графики, сложной анимации и прочей красоты, а значит в случае чего можно и ускорить раз в тыщу, при необходимости. Зато можно будет строить почти настоящие графики движения поездов.
Движение.
Раз назвали симулятором, так и движение у нас не должно быть не как попало организовано, а четко и системно. Так как нормы объемов потребляемых грузов на производствах и городах многократно превышают вес отдельного поезда в десятки или сотни раз, нужно будет устраивать регулярное движение на своих линиях. А это значит не обойтись без графиков движения. Прога должна сама мочь нарисовать график для заданного кол-ва пар поездов в сутки, причем с учетом имеющейся ситуации: допустимых скоростей, типа блокировки, кол-ва главных путей, кол-ва разъездов (для однопутных линий), стоянок для смены или экипировки локомотивов. Это все будет задаваться в свойствах, так что вычислить колво пар по формуле, а потом нарисовать нитки проге не составит труда. Также хорошо бы мочь составить график вручную, это необходимо в случае, когда надо больше впихнуть, чем это сделает прога, либо чтоб ставить под обгон менее приоритетные поезда перед более приоритетными.
Ну и последнее на сегодня. Как примерно должно это все выглядеть. На главной карте будет основа и несколько отключаемых слоев. В основе - ландшафт, города, промышленность. В слоях - наши линии, станции с разъездами, промышленность, с которой мы работаем, итп. Всегда понятно по легенде, в какой линии сколько путей и наличие электрификации, сколько путей на станциях и разъездах. Во всплывающих свойствах каждого перегона - руководящий уклон, скоростное ограничение. Идущие (и стоящие) поезда можно всегда увидеть на главной карте (как в яндекс-паровозиках, но с четким указанием направления), при клике на каждом из них открываются свойства, в которых можно узнать тип локомотива, скорость, вес поезда и длину в условных вагонах.
Линии можно делить на участки, для более удобного отображения ситуации. При открытии нужного участка отрисовывается только схема линии со станциями в горизонтальном расположении, но с более информативным видом по самой дороге - помимо уклонов, ограничений скорости и имеющихся поездов там указывается вид блокировки перегонов, количество блок-участков (при наличии автоблокировки), вид централизации на станциях и разъездах, итп.
Кстати о станциях - предполагается, что все диспетчерские работы будут производиться автоматически, но если хочется залезть в микроменеджмент, то можно сделать перевод на ручной режим выбранного участка и переводить стрелки вручную, пока не надоест.
Ну и графики с экономическими показателями, диаграммы и прочее - разумеется тоже, куда без них.
Это все, что хотел сегодня написать, то что придумалось, пока ходил на почту.
За кадром остается самое главное - экономический баланс, но я думаю, его-то продумать и сделать логичным гораздо легче, чем реализовать программно то, о чем я полдня писал выше. Естесственно, никаких иллюзий не питаю, что такое когда-нибудь появится на свет, но если кто-то заинтересуется таким проектом, я мог бы более детально уже разобрать концепцию по винтикам.
п.с. Кто дочитал до конца - тот просто герой. Даже у меня это с первого раза не получилось.