Russian Railway Simulator (RRS) — свободный проект железнодорожного симулятора с открытым исходным кодом. RRS написан на языке С++ и является кроссплатформенным проектом, то есть может работать в разных операционных системах. В настоящее время гарантируется работа симулятора в операционных системах Windows 7/8/10 а так же ОС на базе ядра Linux.
Особенности симулятора RRS
Прежде всего это — открытая программная архитектура. Не говоря даже о том, что код симулятора открыт, существует API и SDK, ориентированный на разработчиков сторонних дополнений к нему. Порог вхождения довольно высок — требуются базовые навыки разработки на языке C++. Симулятор написан именно на нем, с применением компилятора GCC и его варианта MinGW для операционной системы Windows. Кроме того, желательно знакомство разработчика с фреймворком Qt, так как многие концепции из него лежат в основе архитектуры игры.
Однако, при должном усердии и желании, данный проект открывает для разработчика дополнений огромные возможности. Подвижной состав реализуется в виде модулей на базе динамических библиотек. Основным структурным элементом в симуляторе является единица подвижного состава, или подвижная единица (ПЕ) — вагон (несамоходный или в составе моторвагонного поезда) или секция локомотива. API дает возможность задавать крутящий момент, приложенный к колесным парам ПЕ, в ответ получая угловую скорость колесных пар, а так же внешние параметры, вроде напряжения и рода тока в контактной сети. Больше симулятор ни о чем не знает и знать не хочет, что оставляет физику работы внутреннего оборудования на совести разработчика конкретного локомотива или вагона.
Нетрудно догадаться, что такой относительно низкоуровневый подход дает возможность реализовать мельчайшие нюансы схемы локомотива. Кроме того, в комплект симулятора входит набор стандартного оборудования, устанавливаемого на отечественный подвижной состав: поездной кран машиниста усл. №395, воздухораспределитель усл. №242, кран вспомогательного тормоза усл. №254 и прочие элементы. Разработчику дополнения достаточно лишь соединить эти элементы в пневматическую схему конкретного локомотива или вагона. Кроме того, имеется API для создания собственных блоков оборудования.
Архитектурно RRS построен на взаимодействии трех главных процессов:
- simulator — физический движок динамики поезда TrainEngine 3. Реализует физику движения поезда с учетом множества внешних факторов, учитывая взаимодействие подвижных единиц через сцепные приборы, занимается обработкой данных, поступающих из внешних модулей, реализующих физику работы оборудования подвижного состава;
- viewer — графическая подсистема, выполняющая визуализацию движения поезда, построенная на базе графического движка VulkanSceneGraph.
- route-map — карта маршрута, позволяющая управлять стрелочными переводами и сигнализацией на железнодорожных станциях.
Эти подсистемы взаимодействуют между собой по протоколу TCP/IP, обеспечивая полную независимость реализаций физического движка игры и мультимедийной подсистемы, включающей в себя трехмерную графику и звук. Такая архитектура уже сегодня обеспечивает возможность как одиночной игры, так и сетевой многопользовательской, где каждый участник может выступать в роли машиниста поезда, помощника машиниста, а также поездного диспетчера.
Данный проект имеет одну цель — создать открытый, кроссплатформенный железнодорожный симулятор с продвинутым API для разработчика дополнений.
Перспективы
Перспективы зависят от вас, наши дорогие будущие пользователи и разработчики. В сравнении с другими железнодорожными симуляторами, RRS предоставляет пользователю гибкую модульную архитектуру, позволяя расширять функциональные возможности программы.
Добро пожаловать в RRS, уважаемые коллеги!