Ruski simulator željeznice (RRS): prvo javno izdanje

Došao je dan koji sam čekao kada konačno mogu predstaviti ovaj razvoj. Projekt je započeo prije točno godinu dana, barem 1. rujna 2018 RRS spremišta na Gtihub-u prvi commit ima točno ovaj datum.

Putnički vlak na Glavnom kolodvoru Rostov (na klik)

Ruski simulator željeznice (RRS): prvo javno izdanje

Što je RRS? Ovo je otvoreni višeplatformski simulator željezničkih vozila širine 1520 mm. Čitatelj će se, naravno, zapitati: “Oprostite, čemu ovaj projekt, ako postoji dovoljan broj željezničkih simulatora, komercijalnih i otvorenih?” Za odgovor na ovo pitanje predlažem pogledati pod mačku

Povijest projekta

Jednom davno, 2001. godine, objavljena je Microsoftov simulator vlaka (MSTS), čime je nastala ogromna zajednica željezničkih simera u našoj zemlji. Tijekom nekoliko godina koliko je ovaj projekt postojao (sve dok ga Microsoft nije napustio, prešavši na njemu zanimljivije stvari, poput bankrota Nokie itd.), projekt je stekao masu dodataka stvorenih za njega: rute, vozni park, scenariji.

Na temelju MSTS-a naknadno je nastao niz drugih projekata kao npr OpenRails, RTrainSim (RTS) i drugi dodaci i izvedenice. Pojavili su se i komercijalni projekti, poput poznatog trainz. I sve bi bilo u redu, ali mnogi ljubitelji željezničkog prometa nisu zadovoljni ovim proizvodima iz sasvim objektivnih razloga - oni ni na koji način ne odražavaju specifičnosti domaćih željezničkih vozila koja se koriste i razvijaju na postsovjetskom prostoru. To je posebno akutno kada se pogleda kako su implementirane kočnice vlakova - nijedan od navedenih projekata nema niti će imati normalnu implementaciju automatskih kočnica Matrosovljevog sustava.

U ne tako dalekoj 2008. godini pojavio se još jedan projekt - ZDSimulator, koji je razvio Vjačeslav Usov. Projekt je značajan po tome što uzima u obzir i ispravlja gore navedene nedostatke, dok se u početku usredotočuje na željeznička vozila ruskog kolosijeka. Ali postoji jedno veliko "ali" - projekt je vlasnički i zatvoren, arhitektonski ne dopušta uvođenje vlastitog voznog parka.

I sam sam na temu željeznice došao 2007. godine, kada sam počeo raditi JSC VELNII, kao znanstveni novak, a nakon obrane doktorske disertacije 2008. godine, u zvanje višeg znanstvenog novaka. Tada sam se upoznao s najnovijim dostignućima na području simulacijskih igara željeznice u to vrijeme. I nije mi se svidjelo ono što sam vidio, a projekt ZDSimulator u to vrijeme nije postojao. Kasnije sam, fasciniran dinamikom željezničkog vozila, došao na Rostovsko državno sveučilište za promet (RGUPS) s temom doktorske disertacije Kočna dinamika teretnog vlaka. Danas vodim razvoj kompleksa za obuku željezničkog prometa za naše sveučilište i predajem specijalizirane discipline na Odjelu za vučna željeznička vozila.

U vezi sa svime navedenim javila se ideja o izradi simulatora koji bi razvijaču dodatka za njega omogućio potpunu kontrolu nad fizičkim procesima koji se odvijaju u željezničkom vozilu. Slično svemirskom simulatoru Orbiter, za koji sam svojedobno razvio dodatak u obliku obitelji raketa-nosača temeljenih na R-7. Prije godinu dana prihvatio sam se ovog posla i bacio sam se na njega. Ovdje je svjetlo ugledao 26. prosinca 2018 ovaj demo tehnologije.

Moj rad su primijetili entuzijasti, au krugovima željezničara poznati kreator vizualnog sadržaja za ZDsimulator Roman Biryukov (Ruske željeznice Romych) ponudio mi je pomoć i suradnju u daljnjem razvoju projekta. Kasnije nam se pridružio još jedan programer - Alexander Mishchenko (Ulovskii2017), kreator rute za ZDsimulator. Naša nas je suradnja dovela do našeg prvog izdanja. Video prikazuje pregled kako igra izgleda za svoje prvo izdanje

Značajke RRS simulatora

Prije svega, to je otvorena softverska arhitektura. Da ne spominjemo činjenicu da je kod simulatora otvoren, tu su API i SDK namijenjeni programerima dodataka trećih strana. Ulazna barijera je prilično visoka - potrebne su osnovne C++ razvojne vještine. Simulator je napisan u njemu, koristeći GCC kompajler i njegovu MinGW varijantu za Windows operativni sustav. Osim toga, preporučljivo je da programer bude upoznat s Qt okvirom, budući da su mnogi njegovi koncepti u osnovi arhitekture igre.

Međutim, uz dužnu marljivost i želju, ovaj projekt razvijaču dodataka otvara ogromne mogućnosti. Željezničko vozilo implementirano je u obliku modula temeljenih na dinamičkim bibliotekama. Glavni strukturni element u simulatoru je jedinica voznog parka, ili mobilna jedinica (MU) - vagon (samohodni ili kao dio vlaka sa više vlakova) ili dio lokomotive. API omogućuje postavljanje zakretnog momenta primijenjenog na PE kotače, kao odgovor primajući kutnu brzinu kotača, kao i vanjske parametre, poput napona i vrste struje u kontaktnoj mreži. Simulator ništa drugo ne zna i ne želi znati, što fiziku unutarnje opreme ostavlja na savjesti razvojnog inženjera određene lokomotive ili automobila.

Nije teško pogoditi da takav pristup relativno niske razine omogućuje implementaciju najmanjih nijansi kruga lokomotive. Osim toga, komplet simulatora uključuje skup standardne opreme instalirane na domaćim željezničkim vozilima: dizalicu za vlak vozača konv. Br. 395, stanje razdjelnika zraka. Br. 242, stanje ventila pomoćne kočnice. broj 254 i ostali elementi kočne opreme. Programer dodatka treba samo spojiti ove elemente u pneumatski krug određene lokomotive ili automobila. Osim toga, postoji API za stvaranje vlastitih hardverskih jedinica.

Arhitektonski, RRS je izgrađen na interakciji dva glavna procesa

  • simulator — motor za fizičku dinamiku vlaka TrainEngine 2. Implementira fiziku kretanja vlaka, uzimajući u obzir mnoge vanjske čimbenike, uzimajući u obzir međudjelovanje pokretnih jedinica preko uređaja za spajanje, obrađuje podatke koji dolaze iz vanjskih modula koji provode fiziku rada opreme željezničkih vozila.
  • gledatelj — grafički podsustav koji vizualizira kretanje vlaka, izgrađen na temelju grafičkog motora OpenSceneGraph

Ovi podsustavi međusobno djeluju putem zajedničke memorije, implementirane na temelju QSharedMemory klase Qt okvira. Prvi demo primjeri koristili su IPC temeljen na utičnicama, a planira se povratak ovoj tehnologiji u budućnosti, uzimajući u obzir usavršavanje nekih dijelova simulatora i potrebe s pogledom na budućnost. Prijelaz na zajedničko pamćenje donekle je bila iznuđena mjera koja je nadživjela svoju korisnost.

Neću opisivati ​​nijanse - mnoge peripetije razvoja ovog projekta već su navedene u mojim publikacijama na resursu, posebno imam prilično opsežan niz tutorijala o OpenSceneGraph motoru, koji je proizašao iz prakse rada na ovom projektu.

Nije sve u projektu glatko kako bismo željeli. Konkretno, grafički podsustav je daleko od savršenog u smislu kvalitete renderiranja, a izvedba sim-a ostavlja mnogo za poželjeti. Ovo izdanje ima jedan cilj - upoznati zajednicu entuzijasta željezničkog prometa s projektom, ocrtati njegove mogućnosti i konačno stvoriti otvoreni željeznički simulator za više platformi s naprednim API-jem za programere dodataka.

Planovi

Izgledi ovise o vama, naši dragi budući korisnici i programeri. Projekt je otvoren i postoji Službena web stranicaodakle možete preuzeti simulator dokumentacija, čiji će se sastav kontinuirano nadopunjavati. postoji na forumu projekt, VK grupaI YouTube kanal, gdje možete dobiti najdetaljnije savjete i pomoć.

Hvala vam!

Izvor: www.habr.com

Dodajte komentar