Russian Railway Simulator (RRS): primer lanzamiento público

Ha llegado el día que estaba esperando en el que por fin puedo presentar este desarrollo. El proyecto se inició hace exactamente un año, el 1 de septiembre de 2018, al menos Repositorios RRS en Gtihub la primera confirmación tiene exactamente esta fecha.

Tren de pasajeros en la estación principal de Rostov (se puede hacer clic)

Russian Railway Simulator (RRS): primer lanzamiento público

¿Qué es el RRS? Se trata de un simulador abierto multiplataforma de material rodante de ancho de 1520 mm. Naturalmente, el lector se preguntará: "Disculpe, ¿para qué sirve este proyecto si hay un número suficiente de simuladores ferroviarios, tanto comerciales como abiertos?" Para responder a esta pregunta, sugiero mirar debajo del gato.

Historia del Proyecto

Había una vez, en 2001, que se publicó Simulador de trenes de Microsoft (MSTS), lo que dio origen a una enorme comunidad de cocineros ferroviarios en nuestro país. Durante los varios años que existió este proyecto (hasta que Microsoft lo abandonó, pasando a cosas más interesantes para él, como la quiebra de Nokia, etc.), el proyecto adquirió una gran cantidad de complementos creados para él: rutas, material rodante, escenarios.

Sobre la base de MSTS se crearon posteriormente varios otros proyectos, como por ejemplo OpenRails, RTrainSim (RTS) y otras adiciones y derivadas. También aparecieron proyectos comerciales, como el famoso trenz. Y todo estaría bien, pero muchos aficionados al transporte ferroviario no están satisfechos con estos productos por razones bastante objetivas: de ninguna manera reflejan las características específicas del material rodante nacional operado y desarrollado en el espacio postsoviético. Esto es especialmente grave cuando se observa cómo se implementan los frenos de los trenes: ninguno de los proyectos enumerados tiene ni tendrá una implementación normal de los frenos automáticos del sistema Matrosov.

En un año no muy lejano, 2008, apareció otro proyecto: Simulador ZDS, desarrollado por Vyacheslav Usov. El proyecto destaca porque tiene en cuenta y corrige las deficiencias antes mencionadas, centrándose inicialmente en el material rodante de ancho ruso. Pero hay un gran "pero": el proyecto es propietario y cerrado, y desde el punto de vista arquitectónico no permite la introducción de su propio material rodante.

Yo mismo llegué al tema ferroviario en 2007, cuando comencé a trabajar en JSC VELNII, como investigador, y tras defender su tesis doctoral en 2008, como investigador senior. Fue entonces cuando conocí los últimos logros en el campo de los juegos de simulación ferroviaria en ese momento. Y no me gustó lo que vi, y el proyecto ZDSimulator no existía en ese momento. Más tarde, fascinado por la dinámica del material rodante, llegué a la Universidad Estatal de Transporte de Rostov (RGUPS) con el tema de una tesis doctoral sobre la dinámica de frenado de un tren de mercancías. Hoy dirijo el desarrollo de complejos educativos en transporte ferroviario para nuestra universidad y enseño disciplinas especializadas en el Departamento de Material Rodante de Tracción.

En relación con todo lo anterior, surgió la idea de crear un simulador que permitiera al desarrollador de un complemento obtener un control total sobre los procesos físicos que ocurren en el material rodante. Similar al simulador espacial Orbiter, para el cual una vez desarrollé una adición en forma de una familia de vehículos de lanzamiento basados ​​​​en el R-7. Hace un año retomé este trabajo y me lancé a ello. El 26 de diciembre de 2018 vio la luz aquí. esta demostración de tecnología.

Mi trabajo fue notado por entusiastas y muy conocido en los círculos de los simuladores de ferrocarriles, el creador de contenido visual para ZDsimulator. Roman Biryukov (Ferrocarriles Rusos Romych) me ofreció ayuda y cooperación para el desarrollo posterior del proyecto. Más tarde se nos unió otro desarrollador: Alexander Mishchenko (Ulovskii2017)), creador de rutas para ZDsimulator. Nuestra colaboración nos llevó a nuestro primer lanzamiento. El vídeo muestra una descripción general de cómo se ve el juego en su primer lanzamiento.

Características del Simulador RRS

En primer lugar, es una arquitectura de software abierta. Sin mencionar el hecho de que el código del simulador es abierto, hay una API y un SDK dirigidos a desarrolladores de complementos de terceros. La barrera de entrada es bastante alta: se requieren habilidades básicas de desarrollo de C++. En él está escrito el simulador, utilizando el compilador GCC y su variante MinGW para el sistema operativo Windows. Además, es recomendable que el desarrollador esté familiarizado con el marco Qt, ya que muchos de sus conceptos subyacen en la arquitectura del juego.

Sin embargo, con la debida diligencia y deseo, este proyecto abre enormes oportunidades para el desarrollador de complementos. El material rodante se implementa en forma de módulos basados ​​en bibliotecas dinámicas. El principal elemento estructural del simulador. es una unidad de material rodante, o unidad móvil (MU): un vagón (no autopropulsado o como parte de un tren de unidades múltiples) o una sección de una locomotora. La API permite configurar el par aplicado a los juegos de ruedas de PE, recibiendo en respuesta la velocidad angular de los juegos de ruedas, así como parámetros externos, como el voltaje y el tipo de corriente en la red de contactos. El simulador no sabe ni quiere saber nada más, lo que deja la física del equipamiento interno a la conciencia del desarrollador de una locomotora o un vagón en particular.

No es difícil adivinar que un enfoque de nivel relativamente bajo permite implementar los matices más pequeños del circuito locomotor. Además, el kit del simulador incluye un conjunto de equipamiento estándar instalado en el material rodante nacional: grúa de tren del conductor conv. No. 395, condición del distribuidor de aire. No. 242, condición de la válvula del freno auxiliar. No. 254 y demás elementos del equipo de frenos. El desarrollador del complemento sólo necesita conectar estos elementos al circuito neumático de una locomotora o vagón específico. Además, existe una API para crear sus propias unidades de hardware.

Arquitectónicamente, RRS se basa en la interacción de dos procesos principales.

  • simulador — motor de dinámica física del tren TrainEngine 2. Implementa la física del movimiento del tren, teniendo en cuenta muchos factores externos, teniendo en cuenta la interacción de las unidades móviles a través de dispositivos de acoplamiento, procesa datos provenientes de módulos externos que implementan la física de operación de los equipos del material rodante.
  • visualizador — un subsistema gráfico que visualiza el movimiento del tren, construido sobre la base de un motor gráfico OpenSceneGraph

Estos subsistemas interactúan entre sí a través de una memoria compartida, implementada en base a la clase QSharedMemory del marco Qt. Las primeras demostraciones utilizaron IPC basado en sockets y hay planes para volver a esta tecnología en el futuro, teniendo en cuenta el perfeccionamiento de algunas partes del simulador y las necesidades con miras al futuro. La transición a la memoria compartida fue hasta cierto punto una medida forzada que ha dejado de ser útil.

No describiré los matices: muchas de las vicisitudes del desarrollo de este proyecto ya están descritas en mis publicaciones sobre el recurso, en particular, tengo una bastante extensa una serie de tutoriales sobre el motor OpenSceneGraph, que surgió de la práctica de trabajar en este proyecto.

No todo en el proyecto es tan fluido como nos gustaría. En particular, el subsistema de gráficos está lejos de ser perfecto en términos de calidad de renderizado y el rendimiento del simulador deja mucho que desear. Este lanzamiento tiene un objetivo: presentar el proyecto a la comunidad de entusiastas del transporte ferroviario, describir sus capacidades y finalmente crear un simulador ferroviario abierto y multiplataforma con una API avanzada para desarrolladores de complementos.

Perspectivas

Las perspectivas dependen de ustedes, nuestros queridos futuros usuarios y desarrolladores. El proyecto está abierto y existe. sitio web oficialdonde puedes descargar el simulador, desde documentación, cuya composición se irá reponiendo continuamente. existe foro proyecto Grupo VKY Canal de Youtube, donde podrá obtener el asesoramiento y la asistencia más detallados.

Gracias por su atención!

Fuente: habr.com

Añadir un comentario