Russian Railway Simulator (RRS): eerste openbare vrystelling

Die langverwagte dag het aangebreek dat ek uiteindelik hierdie ontwikkeling kan aanbied. Die projek is presies 'n jaar gelede, op 1 September 2018, ten minste in RRS-bewaarplekke op Gtihub die eerste commit het presies daardie datum.

Passasiertrein by Rostov Glavny-stasie (klikbaar)

Russian Railway Simulator (RRS): eerste openbare vrystelling

Wat is RRS? Dit is 'n oop kruisplatform-simulator van 1520 mm-afstand rollende materiaal. Die leser sal natuurlik die vraag vra: “Ekskuus, maar hoekom is hierdie projek nodig, as daar genoeg spoorwegsimulators is, beide kommersieel en oop?” Vir 'n antwoord op hierdie vraag, stel ek voor om onder die kat te kyk

Projekgeskiedenis

Eens op 'n tyd, in 2001, het die lig gesien Microsoft Train Simulator (MSTS), wat aanleiding gegee het tot 'n groot gemeenskap van spoorwegsmoei in ons land. Vir 'n paar jaar wat hierdie projek bestaan ​​het (totdat Microsoft dit laat vaar het, meer interessante dinge daarvoor gedoen het, soos die bankrotskap van Nokia, ens.), was die projek oorgroei met 'n massa byvoegings wat daarvoor geskep is: roetes, rollende materiaal , scenario's.

Op grond van MSTS is vervolgens 'n aantal ander projekte geskep, soos ooprelings, RTrainSim (RTS) en ander byvoegings en afgeleides. Daar was ook kommersiële projekte, soos die bekende trainz. En alles sal goed wees, maar baie aanhangers van spoorwegvervoer is om redelik objektiewe redes nie tevrede met hierdie produkte nie - dit weerspieël nie die besonderhede van die binnelandse rollende materiaal wat in die post-Sowjet-ruimte bedryf en ontwikkel word nie. Dit is veral akuut wanneer gekyk word na hoe die treinremme geïmplementeer word - in geen van die gelyste projekte is daar en sal nie 'n normale implementering van outomatiese remme van die Matrosov-stelsel wees nie.

In die verre reeds, 2008, het 'n ander projek verskyn - ZDSimulator, ontwikkel deur Vyacheslav Usov. Die projek is merkwaardig deurdat dit bogenoemde tekortkominge in ag neem en regstel, terwyl dit aanvanklik op Russiese peilrol gefokus word. Maar daar is een groot "maar" - die projek is eie en geslote, wat argitektonies nie die bekendstelling van sy eie rollende materiaal daarin toelaat nie.

Ek het self in 2007 by die spoorwegonderwerp gekom, toe ek begin werk het in OJSC VELNII, as navorser, en nadat hy sy Ph.D.-proefskrif in 2008 verdedig het - 'n senior navorser. Terselfdertyd het ek kennis gemaak met die jongste prestasies op die gebied van spoorwegsimulasiespeletjies op daardie tydstip. En ek het nie gehou van wat ek gesien het nie, en daar was geen ZDSimulator-projek op daardie tydstip nie. In die toekoms het ek, meegevoer deur die dinamika van die rollende materiaal, na die Rostov State University of Communications gekom (RSTU) met die onderwerp van 'n doktorale proefskrif oor die dinamika van rem van 'n goederetrein. Vandag bestuur ek die ontwikkeling van spoorwegvervoersimulators vir ons universiteit en onderrig gespesialiseerde dissiplines by die Departement van Traksie Rollende Materiaal.

In verband met al die bogenoemde het die idee ontstaan ​​om 'n simulator te skep wat die ontwikkelaar van die byvoeging vir hom sal toelaat om volle beheer te verkry oor die fisiese prosesse wat in die rollende materiaal plaasvind. Soortgelyk aan die ruimtesimulator Orbiter, waarvoor ek eenkeer 'n byvoeging ontwikkel het in die vorm van 'n familie lanseervoertuie gebaseer op die R-7. 'n Jaar gelede het ek hierdie werk geneem en myself daarin gegooi. 26 Desember 2018 het hier die lig gesien hierdie tegnologie-demo.

My werk is opgemerk deur entoesiaste, en bekend in die kringe van spoorwegsmutters, die skepper van visuele inhoud vir ZDsimulator Roman Biryukov (Romych RZHDUZ) het my hulp en samewerking gebied in die verdere ontwikkeling van die projek. Later het 'n ander ontwikkelaar by ons aangesluit - Alexander Mishchenko (Ulovskii 2017), roeteskepper vir ZDsimulator. Ons samewerking het ons tot die eerste vrystelling gelei. In die video - 'n bietjie oorsig van hoe die speletjie lyk tot sy eerste vrystelling

RRS simulator kenmerke

Eerstens is dit 'n oop sagteware-argitektuur. Om nie te praat dat die simulatorkode oop is nie, daar is 'n API en SDK wat gemik is op ontwikkelaars van derdeparty-byvoegings daarvoor. Die toegangsdrempel is redelik hoog - basiese C++-ontwikkelingsvaardighede word vereis. Die simulator is daarop geskryf met die GCC-samesteller en sy MinGW-variant vir die Windows-bedryfstelsel. Daarbenewens is vertroudheid van die ontwikkelaar met die Qt-raamwerk wenslik, aangesien baie van die konsepte daaruit die argitektuur van die spel onderlê.

Met omsigtigheid en begeerte bied hierdie projek egter groot geleenthede vir die byvoegingsontwikkelaar. Rollende voorraad word geïmplementeer as modules gebaseer op dinamiese biblioteke. Die belangrikste strukturele element in die simulator is 'n rollende materiaal-eenheid, of mobiele eenheid (PU) - 'n wa (nie-selfaangedrewe of as deel van 'n multi-eenheid trein) of 'n gedeelte van 'n lokomotief. Die API maak dit moontlik om die wringkrag wat op die wielstelle van die PU toegepas word, in te stel, in reaksie op die ontvangs van die hoeksnelheid van die wielstelle, sowel as eksterne parameters, soos spanning en tipe stroom in die kontaknetwerk. Die simulator weet niks meer nie en wil nie weet nie, wat die fisika van die werking van interne toerusting op die gewete van die ontwikkelaar van 'n spesifieke lokomotief of wa laat.

Dit is maklik om te raai dat so 'n relatief lae-vlak benadering dit moontlik maak om die kleinste nuanses van die lokomotiefkring te implementeer. Daarbenewens bevat die simulatorpakket 'n stel standaardtoerusting wat op huishoudelike rollende materiaal geïnstalleer is: 'n treindrywer se hyskraan, oms. No 395, lugverspreider oms. nr 242, hulpremklep oms. No 254 en ander elemente van remtoerusting. Die bykomende ontwikkelaar hoef slegs hierdie elemente in die pneumatiese stroombaan van 'n bepaalde lokomotief of wa te koppel. Daarbenewens is daar 'n API om jou eie toerustingblokke te skep.

Argitektonies is RRS gebou op die interaksie van twee hoofprosesse

  • simulator — die fisiese enjin van treindinamika TrainEngine 2. Implementeer die fisika van treinbeweging, met inagneming van baie eksterne faktore, met inagneming van die interaksie van bewegende eenhede deur koppeltoestelle, verwerk data afkomstig van eksterne modules wat die fisika van die rollende materiaal implementeer toerusting
  • kyker - 'n grafiese substelsel wat visualisering van die beweging van die trein uitvoer, gebou op die basis van 'n grafiese enjin OpenSceneGraph

Hierdie subsisteme is in wisselwerking met mekaar deur 'n gedeelde geheue wat op die basis van die QSharedMemory-klas van die Qt-raamwerk geïmplementeer is. Die eerste demonstrasies het sokgebaseerde IPC gebruik, en 'n terugkeer na hierdie tegnologie word in die toekoms beplan, gegewe die verfyning van sommige dele van die simulator en die behoeftes met die oog op die toekoms. Die oorgang na gedeelde geheue was tot 'n mate 'n gedwonge maatreël wat die bruikbaarheid daarvan oorleef het.

Ek sal nie die nuanses beskryf nie - baie van die ups en downs van die ontwikkeling van hierdie projek is reeds beskryf in my publikasies oor die hulpbron, in die besonder, ek het 'n taamlik uitgebreide 'n reeks tutoriale oor die OpenSceneGraph-enjin, wat gegroei het uit die praktyk om aan hierdie projek te werk.

In die projek is alles nie so glad soos ons sou wou nie. Veral die grafiese substelsel is ver van perfek in terme van lewering kwaliteit, en die Sim se prestasie laat veel te wense oor. Hierdie vrystelling het een doel - om die projek aan die spoorvervoergemeenskap bekend te stel, die vermoëns daarvan uit te stippel en uiteindelik 'n oop, kruisplatform-spoorsimulator met 'n gevorderde API vir die byvoegingsontwikkelaar te skep.

Vooruitsigte

Die toekoms hang van jou af, ons liewe toekomstige gebruikers en ontwikkelaars. Die projek is oop amptelike webwerfwaar jy die simulator kan aflaai, van dokumentasie, waarvan die samestelling voortdurend aangevul sal word. Bestaan форум projek, VK-groepEn YouTube-kanaalwaar jy die mees gedetailleerde advies en bystand kan kry.

Skep 'n nuwe weergawe!

Bron: will.com

Voeg 'n opmerking