Endlich ist der Tag gekommen, auf den ich so lange gewartet habe, an dem ich diese Entwicklung präsentieren kann. Das Projekt wurde genau vor einem Jahr, am 1. September 2018, ins Leben gerufen, zumindest in , wobei der erste Commit tatsächlich dieses Datum trägt.
Der Personenzug am Hauptbahnhof Rostow (klickbar)
Was ist RRS? Es handelt sich um einen plattformübergreifenden, offenen Simulator für Schienenfahrzeuge der Spurweite 1520 mm. Der Leser wird sich zu Recht fragen: „Wozu brauchen wir dieses Projekt, wenn es bereits eine Vielzahl von kommerziellen und kostenlosen Bahnsimulatoren gibt?“ Um diese Frage zu beantworten, lade ich Sie ein, weiterzulesen.
Die Geschichte des Projekts
Vor vielen, vielen Jahren, 2001, wurde veröffentlicht, was in unserem Land eine riesige Community von Eisenbahnsimulationsbegeisterten hervorgebracht hat. In den wenigen Jahren, in denen dieses Projekt aktiv war (bis Microsoft es fallen ließ, um sich interessanteren Dingen zu widmen, wie etwa der Insolvenz von Nokia usw.), wuchs das Projekt durch eine Vielzahl von hinzugefügten Inhalten: Strecken, Fahrzeuge, Szenarien.
Auf der Grundlage von MSTS wurde später eine Reihe anderer Projekte ins Leben gerufen, wie zum Beispiel , und andere Ergänzungen und Ableitungen. Es gab auch kommerzielle Projekte, wie das berühmteste . Und alles wäre gut, aber viele Liebhaber des Schienenverkehrs sind mit diesen Produkten aus ganz objektiven Gründen unzufrieden – sie spiegeln nicht die Spezifik der einheimischen Fahrzeuge wider, die im postsowjetischen Raum betrieben und entwickelt werden. Dies zeigt sich besonders deutlich bei der Betrachtung, wie die Bremsen des Zuges umgesetzt werden – in keinem der genannten Projekte gibt es eine ordentliche Umsetzung der automatischen Bremsen des Matrosov-Systems, und es wird sie auch nicht geben.
Im bereits entfernten Jahr 2008 erschien ein anderes Projekt – , das von Wjatscheslaw Usow entwickelt wurde. Das Projekt ist bemerkenswert, da es die oben genannten Mängel berücksichtigt und behoben hat, wobei es sich zunächst auf die Fahrzeuge der russischen Spur konzentriert. Doch es gibt ein großes „Aber“ – das Projekt ist proprietär und geschlossen, wodurch die Integration eigener Fahrzeuge nicht möglich ist.
Ich selbst kam 2007 zum Thema Eisenbahnen, als ich zu arbeiten begann bei , in der Position als wissenschaftlicher Mitarbeiter, und nach der Verteidigung meiner Doktorarbeit im Jahr 2008 – als leitender wissenschaftlicher Mitarbeiter. Zu diesem Zeitpunkt habe ich die damaligen neuesten Entwicklungen im Bereich der Eisenbahn-Simulationen kennengelernt. Was ich sah, gefiel mir nicht, und das Projekt ZDSimulator existierte damals noch nicht. Später, begeistert von der Dynamik des Schienenverkehrs, trat ich an die Staatliche Universität für Verkehr in Rostow () mit dem Thema meiner Doktorarbeit zur Dynamik des Bremsens von Güterzügen. Heute leite ich die Entwicklung von Simulationskomplexen für den Eisenbahntransport an unserer Universität und unterrichte Fachdisziplinen am Lehrstuhl für „Triebfahrzeuge“.
Vor dem Hintergrund all dessen entstand die Idee, einen Simulator zu erstellen, der es Entwicklern von Erweiterungen ermöglicht, vollständigen Zugriff auf die physikalischen Prozesse im beweglichen Bestand zu erhalten. Ähnlich dem Weltraumsimulator Orbiter, für den ich einmal eine Erweiterung in Form einer Familie von Trägerraketen auf Basis der R-7 entwickelt habe. Vor einem Jahr begann ich mit dieser Arbeit und tauchte vollständig ein. Am 26. Dezember 2018 erblickte dies das Licht der Welt. .
Meine Arbeit wurde von Enthusiasten bemerkt, und ein bekannter Name in den Zirkeln der Eisenbahn-Simulator-Enthusiasten, der Schöpfer von visuellem Inhalt für ZDsimulator, bot mir seine Unterstützung und Zusammenarbeit für die weitere Entwicklung des Projekts an. Später gesellte sich ein weiterer Entwickler zu uns — ), der Routen für ZDsimulator erstellt hat. Unsere gemeinsame Arbeit führte uns zur ersten Veröffentlichung. Im Video — eine Übersicht darüber, wie das Spiel zu seiner ersten Veröffentlichung aussieht.

Eigenschaften des Simulators RRS
Zunächst einmal ist dies eine offene Softwarearchitektur. Abgesehen davon, dass der Simulator-Code offen ist, gibt es ein API und ein SDK, das auf Entwickler von Drittanbieter-Erweiterungen ausgerichtet ist. Die Einstiegshürde ist ziemlich hoch – grundlegende Entwicklungskenntnisse in C++ sind erforderlich. Der Simulator ist in dieser Sprache geschrieben und nutzt den GCC-Compiler sowie dessen Variante MinGW für das Betriebssystem Windows. Zudem ist es wünschenswert, dass der Entwickler mit dem Qt-Framework vertraut ist, da viele Konzepte davon der Architektur des Spiels zugrunde liegen.
Dennoch eröffnet dieses Projekt bei entsprechender Mühe und Interesse den Entwicklern von Erweiterungen enorme Möglichkeiten. Der Fahrzeugpark wird in Form von Modulen basierend auf dynamischen Bibliotheken realisiert. Das wichtigste strukturelle Element im Simulator ist die Einheit des Fahrzeugparks., oder eine bewegliche Einheit (BEin) – ein Waggon (nicht motorisiert oder in einem Triebwagenzug) oder ein Lokomotivabschnitt. Die API ermöglicht es, das Drehmoment, das auf die Radsätze der BEin angewendet wird, zu bestimmen, und erhält im Gegenzug die Drehgeschwindigkeit der Radsätze sowie äußere Parameter wie Spannung und Art des Stroms im Oberleitungsnetz. mehr weiß der Simulator nicht und möchte es nicht wissen, was die Physik des Betriebs der internen Ausrüstung in die Verantwortung des Entwicklers der jeweiligen Lokomotive oder des Waggons stellt.
Es ist nicht schwer zu erraten, dass ein relativ niedrigschwelliger Ansatz die Möglichkeit bietet, feinste Nuancen des Lokomotivschaltplans umzusetzen. Außerdem umfasst das Simulatormodul ein Set von Standardgeräten, die auf dem heimischen Rollmaterial installiert sind: der Fahrkran des Lokführers Nr. 395, der Luftverteiler Nr. 242, das Ventil für die Hilfsbremse Nr. 254 und andere Elemente der Bremsausrüstung. Der Entwickler des Plugins muss lediglich diese Elemente in das pneumatische Schema der jeweiligen Lokomotive oder des Waggons verbinden. Außerdem gibt es eine API zur Erstellung eigener Geräteblöcke.
Die RRS-Architektur basiert auf der Interaktion von zwei Hauptprozessen.
- Simulator — der physikalische Zugdynamikmotor TrainEngine 2. Dieser implementiert die Physik der Zugbewegung unter Berücksichtigung vieler externer Faktoren, behandelt die Interaktion der Fahrzeuge über Kupplungseinrichtungen und verarbeitet Daten von externen Modulen, die die Physik der Funktionsweise der Zugausstattung realisieren.
- Viewer — das grafische Subsystem, das die Bewegung des Zuges visualisiert, und auf einem Grafikengine basiert.
Diese Subsysteme interagieren über einen gemeinsamen Speicher, der auf der QSharedMemory-Klasse des Qt-Frameworks basiert. Die ersten Demoversionen nutzten IPC auf Basis von Sockets, und künftig ist eine Rückkehr zu dieser Technologie geplant, da einige Teile des Simulators überarbeitet werden müssen und auch zukunftsorientierte Anforderungen berücksichtigen. Der Übergang zu gemeinsamem Speicher war teilweise eine erzwungene Maßnahme, die sich überlebt hat.
Ich werde die Details nicht im Einzelnen beschreiben — viele der Herausforderungen in der Entwicklung dieses Projekts sind bereits in meinen Publikationen auf der Website behandelt worden, insbesondere habe ich einen recht umfangreichen , die genau aus der praktischen Arbeit an diesem Projekt entstanden ist.
Im Projekt läuft nicht alles so reibungslos, wie wir uns wünschen würden. Insbesondere ist das grafische System weit von der Perfektion entfernt, sowohl in Bezug auf die Rendering-Qualität als auch hinsichtlich der Leistung des Simulators. Dieses Release hat ein Ziel — die Community der Eisenbahnliebhaber mit dem Projekt vertraut zu machen, seine Möglichkeiten aufzuzeigen und schließlich einen offenen, plattformübergreifenden Eisenbahnsimulator mit einem fortschrittlichen API für Entwickler von Erweiterungen zu schaffen.
Perspektiven
Die Perspektiven hängen von Ihnen ab, unseren geschätzten zukünftigen Nutzern und Entwicklern. Das Projekt ist offen und es gibt , auf der der Simulator heruntergeladen werden kann, mit , deren Inhalt kontinuierlich erweitert wird. Es gibt ein Projekt, , und , wo Sie die ausführlichsten Beratungen und Unterstützung erhalten können.
Vielen Dank für Ihre Aufmerksamkeit!
Quelle: habr.com
