Симулятор жд диспетчера: Игра Диспетчер на Железной Дороге

первый публичный релиз / Хабр

Наступил тот долгожданный мной день, когда я наконец могу представить эту разработку. Проект был начат ровно год назад, 1 сентября 2018 года, по крайней мере в репозитории RRS на Gtihub первый коммит имеет именно такую дату.

Пассажирский поезд на станции Ростов Главный (кликабельно)

Что такое RRS? Это открытый кроссплатформенный симулятор подвижного состава колеи 1520 мм. Читатель закономерно задаст вопрос: «Позвольте, а для чего нужен этот проект, если симуляторов железнодорожной тематики, как коммерческих, так и открытых, достаточное количество?» За ответом на этот вопрос я и предлагаю заглянуть под кат


Когда-то давным давно, в 2001 году, увидел свет Microsoft Train Simulator (MSTS), породивший в нашей стране огромное сообщество ж/д-симмеров. За несколько лет, которые просуществовал этот проект (пока Майкрософт не забросила его, занявшись более интересными для неё вещами, типа обанкрочивания Нокии и т. п.) проект оброс массой созданных для него дополнений: маршрутов, подвижного состава, сценариев.

На основе MSTS, в последствии, был создан ряд других проектов, такие как OpenRails, RTrainSim (RTS) и прочие дополнения и производные. Появились и коммерческие проекты, такие как знаменитейший Trainz. И все бы хорошо, но многих любителей ж/д транспорта эти продукты не устраивают по вполне объективным причинам — они никак не отражают специфику отечественного подвижного состава, эксплуатируемого и разрабатываемого на постсоветском пространстве. Особенно остро это проявляется при взгляде на то, как реализуются тормоза поезда — ни в одном из перечисленных проектов нет и не будет нормальной реализации автоматических тормозов системы Матросова.

В неблизком уже, 2008 году появился другой проект — ZDSimulator, разработанный Вячеславом Усовым. Проект замечателен тем, что вышеперечисленные недостатки он учитывает и исправляет, при этом изначально ориентирован на подвижной состав русской колеи. Но есть одно большое «но» — проект проприетарный и закрытый, архитектурно не допускающий внедрение в него собственного подвижного состава.

Сам я пришел к железнодорожной тематике в 2007 году, когда стал работать в ОАО ВЭлНИИ, в должности научного сотрудника, а после защиты кандидатской диссертации в 2008 году — старшего научного сотрудника. Тогда же я и познакомился с последними на тот момент достижениями в области железнодорожных игр-симуляторов. И то что я увидел, мне не понравилось, а проекта ZDSimulator на тот момент еще не было. В дальнейшем я, увлеченный динамикой подвижного состава, пришел в Ростовский государственный университет путей сообщения (РГУПС) с темой докторской диссертации по динамике торможения грузового поезда. На сегодняшний день я руковожу разработкой тренажерных комплексов ж/д транспорта для нашего вуза и преподаю профильные дисциплины на кафедре «Тяговый подвижной состав».

В связи со всем вышеперечисленным возникла идея создания симулятора, который позволял бы разработчику дополнения для него получить полный контроль над физическими процессами, протекающими в подвижном составе. Сродни космическому симулятору Orbiter, для которого я разработал в свое время дополнение в виде семейства ракет носителей на базе Р-7. Год назад я взялся за эту работу и ушел в нее с головой. 26 декабря 2018 года увидела свет вот эта технологическая демка.

Моя работа была замечена энтузиастами, и известный в кругах ж/д-симмеров, создатель визуального контента для ZDsimulator Роман Бирюков (Ромыч РЖДУЗ) предложил мне помощь и сотрудничество в дальнейшем развитии проекта. Позже к нам присоединился еще один разработчик — Александр Мищенко (Ulovskii2017), создатель маршрутов для ZDsimulator. Наша совместная работа привела нас к первому релизу. На видео — некоторый обзор того, как игра выглядит к своему первому релизу


Прежде всего это — открытая программная архитектура. Не говоря даже о том, что код симулятора открыт, существует API и SDK, ориентированный на разработчиков сторонних дополнений к нему. Порог вхождения довольно высок — требуются базовые навыки разработки на языке C++. Симулятор написан именно на нем, с применением компилятора GCC и его варианта MinGW для операционной системы Windows. Кроме того, желательно знакомство разработчика с фреймворком Qt, так как многие концепции из него лежат в основе архитектуры игры.

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

Нетрудно догадаться, что такой относительно низкоуровневый подход дает возможность реализовать мельчайшие нюансы схемы локомотива. Кроме того, в комплект симулятора входит набор стандартного оборудования, устанавливаемого на отечественный подвижной состав: поездной кран машиниста усл. №395, воздухораспределитель усл. №242, кран вспомогательного тормоза усл. №254 и прочие элементы тормозного оборудования. Разработчику дополнения достаточно лишь соединить эти элементы в пневматическую схему конкретного локомотива или вагона. Кроме того, имеется API для создания собственных блоков оборудования.

Архитектурно RRS построен на взаимодействии двух главных процессов

  • simulator — физический движок динамики поезда TrainEngine 2. Реализует физику движения поезда с учетом множества внешних факторов, учитывая взаимодействие подвижных единиц через сцепные приборы, занимается обработкой данных, поступающих из внешних модулей, реализующих физику работы оборудования подвижного состава
  • viewer — графическая подсистема, выполняющая визуализацию движения поезда, построенная на базе графического движка OpenSceneGraph


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

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

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


Перспективы зависят от вас, наши дорогие будущие пользователи и разработчики. Проект открыт, существует официальный сайт, где можно скачать симулятор, с документацией, состав которой будет непрерывно пополнятся. Существует форум проекта, группа ВК, и канал на YouTube, где можно получить самую подробную консультацию и помощь.

Спасибо за внимание!

Симулятор рабочего места авиадиспетчера — 2: af1461 — LiveJournal

     Предыдущий пост про диспетчерские симуляторы принес в одном из комментов (от уважаемого himpudent) совершенно замечательную ссылку:

http://atc-sim.com/

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

Как это работает:

В правой части экрана есть поле для ввода команд. Команды привязаны к рейсу, (их нельзя задать сразу всем).
Первая часть команды — номер рейса, которой она адресована. Например — SWR333. Далее следует тип команды и параметры (которых может не быть).

Команда изменения высоты — SWR333 C 2
Здесь мы видим номер рейса, командную литеру С и собственно высоту в тысячах футов (1000 фт = 305 м). Обратите внимание — высота должна быть одной цифрой или двузначным числом. Если оно трехзначное — команда будет работать как определяющая курс.

Команда указания магнитного курса — SWR333 C 090
Данный вариант указывает магнитный курс, которым должен следовать самолет. Курс здесь — всегда трехзначное число!

Команда указания курса на навигационную точку — SWR333 C WATFO
Самолет будет лететь на эту точку. Команда помогает строить схемы и не заморачиваться с векторением по магнитным курсам.

Команда на посадку — SWR333 L 27R
Разрешение ВС совершить посадку на полосу 27R. Работает только в случае если ВС находится на предпосадочной прямой на высоте 2000 фт. или ниже.

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

Команда на уход на второй круг — SWR333 A
А вдруг вы случайно разрешили взлет когда другое ВС уже на глиссаде?

Команда на установку скорости полета — SWR333 S 200
Установить скорость 200 миль/в час. Полезно для обеспечения необходимого интервала, когда можно не снижать или поднимать один из самолетов, а просто замедлить или ускорить его. Но не забывайте что реальные пределы скорости довольно узкие — примерно от 180 до 400 миль в час.

============

Обратите внимание: следует четко соблюдать правила эшелонирования — 1000 фт. по высоте или 3 мили по удалению (это не касается заходов на параллельные полосы). Если это правило нарушено — отметки на «локаторе» становятся красными и надо срочно разрешать ситуацию — давать команду на изменение высоты и/или курса.

В правой части экрана находится линейка со списком рейсов, находящихся у вас на обслуживании:

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

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

Еще надо обращать внимание на ветер. Зеленая точка показывает откуда он дует. Самолеты должны садиться и взлетать против ветра!

Примеры команд:

============

Для вылетающего:
SWR334 C 8 — назначаем подписанный эшелон 8000 фт.
SWR334 T — разрешаем взлет
SWR334 C BKY25 — следовать на точку BKY25, где самолет возьмет другой диспетчер. Имя нужной точки берем из желтой полоски этого рейса.
Нюанс: к этой точке он должен быть на высоте 4000 фт. или выше.

Для прибывающего:
SWR333 C WOD — следовать в точку WOD
SWR333 C 2 — начать снижение до 2000 фт.
SWR333 C 300 — Курс 300o
SWR333 C 090 — Курс 90o
SWR333 L 9R — разрешаем посадку на полосу 9R

P.S. При старте можно выбрать один из нескольких аэропортов, но для первого опыта рекомендую лондонский Хитроу.

Rail Route — Игра-симулятор диспетчера поездов

перейти к содержанию

Получить Железнодорожный маршрут

Купить Железнодорожный маршрут – Симулятор диспетчера поездовangel2022-09-30T16:54:03+00:00

Получить Rail Route

Доступно для ПК — Win / Linux / Mac

Вы получите ключ Steam для Rail Route непосредственно от разработчиков игры.

❤️ Спасибо за вашу огромную поддержку!

Доступно для ПК — Win/Linux/Mac

Вы получите ключ Steam для Rail Route непосредственно от разработчиков игры.

❤️ Спасибо за вашу огромную поддержку!

О железной дороге

Войдите в мир железнодорожных сетей и станьте диспетчером своей мечты! Rail Route — это игра в жанре управления и магната, основанная на управлении железной дорогой и предлагающая непринужденный, простой для понимания (но сложный для освоения) игровой процесс. Создайте маршрут своей мечты в мире, где вы задаете темп, и отправляйтесь в постоянно расширяющуюся железнодорожную феерию.

Но это еще не все. Железнодорожный маршрут предлагает три уникальных игровых режима : что бы вы ни искали, у нас это есть!

Игровые режимы

Бесконечный режим

Бесконечный режим — основной игровой режим Rail Route. Расширяйте свои железнодорожные технологии, открывайте новые поезда (и типы!), открывайте новые станции (и выгодные контракты) и смотрите, насколько большой может стать ваша сеть!

  • Расписание поездов и убедитесь, что они придерживаются расписания
  • Расширьте свою железнодорожную сеть и постройте новые инновационные компоненты и здания
  • Получайте награды – деньги и очки опыта
  • Разблокируйте обновления — улучшите свои технологии и диспетчерский интерфейс
  • Автоматизируйте — создавайте датчики, автоматические маршрутизаторы и механизируйте свою сеть

Режим расписания

Ищете вызов или что-то более линейное? Карты с очками представляют собой уровни-головоломки с заранее установленным расписанием поездов и расположением путей. У вас есть одна цель, и только одна цель: доставить поезда в пункт назначения вовремя!

  • Динамическая система подсчета очков
  • Расписания, сделанные вручную, включая как знаменитые, так и новаторски придуманные перекрестки и схемы
  • Убедитесь, что ваши поезда прибывают и отправляются вовремя

Вперед, соревнуйтесь за высокий балл!

Режим «Час пик»

Ищете что-то более интенсивное? «Час пик» — это наш ультрасовременный игровой режим, основанный на волнах, разработанный именно для этого.

  • Прокладывайте себе путь через волну за волной поездов, сложность которых возрастает.
  • Используйте ограниченное количество предметов как можно лучше — и убедитесь, что это не займет слишком много времени!
  • О, и не обращайте внимания на старого Милоша… Он просто будет насмехаться над вами всю дорогу!

Карты

У нас есть более 1000 карт, созданных сообществом. Так что, если у вас есть свои грандиозные планы на карту с очками (или если вы хотите подвергнуть сообщество своим безумным махинациям), вы можете это сделать! Rail Route поставляется со встроенным редактором уровней 9.0020 — у вас есть доступ к тем же инструментам, что и у нас! Воссоздайте свою любимую развязку, постройте свой родной город с нуля или спроектируйте собственную железнодорожную сеть. Тебе решать!

Все еще впереди…

Это все? Конечно нет! Есть масса других идей, которые мы разбрасывали для обновлений позже в жизни Rail Route. Большинство наших идей исходит от сообщества, поэтому не стесняйтесь заходить на наш сервер Discord, если у вас есть какие-либо предложения!

Отзывы