Simuluesi i Shkollës Hekurudhore Ruse (RRS): publikimi i parë publik

Ka arritur ai ditë e shumëpritur prej meje, kur më në fund mund ta prezantoj këtë zhvillim. Projekti u nis pikërisht një vit më parë, më 1 Shtator 2018, të paktën në repozitorin RRS në Gtihub komiti i parë ka këtë datë.

Treni pasagjerë në stacionin Rostov Kryesor (kliko këtu)

Simuluesi i Shkollës Hekurudhore Ruse (RRS): publikimi i parë publik

ÇfarĂ« Ă«shtĂ« RRS? ËshtĂ« njĂ« simulator i hapur shumĂ«platformĂ«sh pĂ«r lĂ«vizjen e mjeteve me shina 1520 mm. Lexuesi ndoshta do tĂ« pyesĂ«: "Lejoni, pse Ă«shtĂ« nevoja pĂ«r kĂ«tĂ« projekt, nĂ«se ekzistojnĂ« mjaft simulatorĂ« tĂ« tematikĂ«s hekurudhore, si komercialĂ« ashtu dhe tĂ« hapur?" PĂ«r pĂ«rgjigjen e kĂ«saj pyetje unĂ« propozoj tĂ« hedhim njĂ« vĂ«shtrim mĂ« poshtĂ«.

Historia e projektit

Njëherë e një kohë, në vitin 2001, doli në dritë Microsoft Train Simulator (MSTS), i cili krijoi një komunitet të madh pasardhësish të hekurudhave në vendin tonë. Gjatë disa viteve, gjatë ekzistencës së këtij projekti (derisa Microsoft e braktisi atë për t'u marrë me gjëra më interesante për ta, si dështimi i Nokia-s e kështu me radhë) projekti u rrit me shumë plotësime të krijuara për të: rruge, mjete lëvizëse, skenarë.

NĂ« bazĂ« tĂ« MSTS, mĂ« pas u krijuan njĂ« sĂ«rĂ« projektesh tĂ« tjera, si OpenRails, RTrainSim (RTS) dhe plotĂ«sime e derivatĂ« tĂ« tjera. U shfaqĂ«n gjithashtu projekte komerciale, si i famshmi Trainz. Dhe gjithçka do tĂ« ishte mirĂ«, por shumĂ« adhurues tĂ« transportit hekurudhor nuk janĂ« tĂ« kĂ«naqur me kĂ«to produkte pĂ«r arsye mjaft objektive — ato nuk reflektojnĂ« aspak specifikĂ«n e mjeteve hekurudhore tĂ« vendit tonĂ«, qĂ« janĂ« pĂ«rdorur dhe zhvilluar nĂ« hapĂ«sirĂ«n post-sovjetike. Kjo manifeston veçanĂ«risht qartĂ« kur shikojmĂ« se si realizohen frenat e trenit — nĂ« asnjĂ« nga projektet e pĂ«rmendura nuk ka dhe nuk do tĂ« ketĂ« implementim tĂ« duhur tĂ« frenave automatike tĂ« sistemit Matrosov.

NĂ« vitin jo aq tĂ« largĂ«t 2008, u shfaq njĂ« projekt tjetĂ«r — ZDSimulator, i zhvilluar nga Vyacheslav Usov. Projekti Ă«shtĂ« shumĂ« i veçantĂ« sepse merr parasysh dhe korrigjon tĂ« metat e pĂ«rmendura mĂ« lart dhe Ă«shtĂ« fillimisht orientuar pĂ«r mjete hekurudhore tĂ« rrugĂ«s ruse. Por ka njĂ« "por" tĂ« madhe — projekti Ă«shtĂ« pronar i kufizuar dhe i mbyllur, duke mos lejuar inkorporimin e mjeteve tĂ« veta lĂ«vizĂ«se.

Unë vetë kam ardhur në tematikën hekurudhore në vitin 2007, kur fillova të punoj në OAO VELNII, në pozitën e kërkuesit shkencor, dhe pas mbrojtjes së disertacionit të doktoratës në vitin 2008 - kërkues i lartë shkencor. Atëherë, unë u njohëm me arritjet më të fundit në fushën e lojërave-simuluese të hekurudhave. Dhe ajo që pashë, nuk më pëlqeu, ndërsa projekti ZDSimulator nuk ekzistonte ende atëherë. Më vonë, i apasionuar pas dinamikës së mjeteve lëvizëse, erdha në Universitetin Shtetëror të Hekurudhave të Rostovit (RSGUPS) me temën e disertacionit të doktoratës për dinamikën e frenimit të trenit të mallrave. Sot udhëheq zhvillimin e kompleksit të trajnimeve për transportin hekurudhor për universitetin tonë dhe jap lëndët profesionale në katedrën "Mjetet lëvizëse të tërheqjes."

Në lidhje me gjithçka të përmendur më sipër, lindi ideja për krijimin e një simulatori që do t'i lejonte zhvilluesit e shtesave të merrnin kontroll të plotë mbi proceset fizike që ndodhin në mjetet lëvizëse. E ngjashme me simulatorin hapësinor Orbiter, për të cilin unë zhvillova në atë kohë një shtesë në formën e një familjeje raketash bartësish të bazuara në R-7. Një vit më parë, mora përsipër këtë punë dhe u angazhua plotësisht në të. Më 26 dhjetor 2018, doli në dritë kjo demo teknologjike.

Puna ime u vu re nga entuziastët, dhe i njohur në rrethin e simmers hekurudhorë, krijuesi i përmbajtjes vizuale për ZDsimulator Roman Biryukov (Romych RZhDUZ) propozoi ndihmën dhe bashkëpunimin tim në zhvillimin e mëtejshëm të projektit. Më vonë, një zhvillues tjetër iu bashkua ekipit tonë - Alexander Mishchenko (Ulovskii2017), krijuesi i itinerareve për ZDsimulator. Pune e përbashkët na çoi në lëshimin e parë. Në video - një përmbledhje e asaj si duket lojakës në lëshimin e saj të parë.

Luaj videon

Karakteristikat e simulatorit RRS

Para së gjithash, kjo është - një arkitekturë e hapur programore. Pa e përmendur që kodi i simulatorit është i hapur, ekziston një API dhe SDK i orientuar ndaj zhvilluesve të shtesave të jashtme për të. Pragu i hyrjes është mjaft i lartë - kërkohen aftësi bazike të zhvillimit në gjuhën C++. Simulatori është shkruar pikërisht në të, duke përdorur kompilerin GCC dhe variantin e tij MinGW për sistemin operativ Windows. Për më tepër, është e dëshirueshme që zhvilluesi të jetë i njohur me kornizën Qt, pasi shumë koncepte nga ajo janë në themelin e arkitekturës së lojës.

MegjithatĂ«, me pĂ«rpjekje dhe dĂ«shirĂ« tĂ« mjaftueshme, ky projekt ofron mundĂ«si tĂ« mĂ«dha pĂ«r zhvilluesit e shtesave. NjĂ«sitĂ« e lĂ«vizshme janĂ« tĂ« realizuara nĂ« formĂ«n e modulave qĂ« bazohen nĂ« bibliotekat dinamike. Elementi kryesor strukturor nĂ« simulator Ă«shtĂ« njĂ«sia e lĂ«vizshme, ose njĂ«sia lĂ«vizĂ«se (NL) — vagon (jo vetĂ«lĂ«vizĂ«s ose nĂ« pĂ«rbĂ«rje tĂ« trenit me motor) ose seksioni i lokomotivĂ«s. API ofron mundĂ«sinĂ« pĂ«r tĂ« caktuar momentin e rrotullimit tĂ« aplikuar nĂ« çiftet e rrotave tĂ« NL, nĂ« pĂ«rgjigje duke marrĂ« shpejtĂ«sinĂ« kĂ«ndore tĂ« çiftĂ«ve tĂ« rrotave, si dhe parametrat e jashtĂ«m, si tensioni dhe tipi i rrymĂ«s nĂ« rrjetin kontaktues. Simulatori nuk di dhe nuk dĂ«shiron tĂ« dijĂ« asgjĂ« tjetĂ«r, qĂ« i lĂ« fizikĂ«n e funksionit tĂ« pajisjeve tĂ« brendshme nĂ« pĂ«rgjegjĂ«sinĂ« e zhvilluesit tĂ« lokomotivĂ«s ose vagonit tĂ« caktuar.

Nuk është e vështirë të kuptohet se një qasje relativisht e ulët e nivelit ofron mundësinë për të realizuar nuancat më të vogla të skemës së lokomotivës. Për më tepër, në paketën e simulatorit përfshihet një grup pajisjesh standarde që instaluar në njësitë e lëvizshme vendase: krani i ngasësit numri 395, shpërndarësi i ajrit numri 242, krani i frenave ndihmës numri 254 dhe elemente të tjera të pajisjeve të frenave. Zhvilluesi i shtesave vetëm duhet të lidhë këto elemente në skemën pneumatikë të lokomotivës ose vagonit të caktuar. Për më tepër, ekziston një API për krijimin e blloqeve të veta të pajisjeve.

Arkitektura RRS është e ndërtuar mbi bashkëveprimin e dy proceseve kryesore

  • simulator — motori fizik i dinamikĂ«s sĂ« trenit TrainEngine 2. Realizon fizikĂ«n e lĂ«vizjes sĂ« trenit duke marrĂ« parasysh shumĂ« faktorĂ« tĂ« jashtĂ«m, duke konsideruar ndĂ«rveprimin e njĂ«sive tĂ« lĂ«vizshme pĂ«rmes pajisjeve lidhĂ«se, merret me pĂ«rpunimin e tĂ« dhĂ«nave qĂ« vijnĂ« nga modulĂ«t e jashtĂ«m qĂ« realizojnĂ« fizikĂ«n e funksionit tĂ« pajisjeve tĂ« njĂ«sive tĂ« lĂ«vizshme
  • viewer — nĂ«n-sistemi grafik qĂ« realizon vizualizimin e lĂ«vizjes sĂ« trenit, i vendosur mbi motorin grafik OpenSceneGraph

Këto nën-sisteme ndërveprojnë me njëra-tjetrën përmes një memorjeje të përbashkët, e cila realizohet në bazë të klasës QSharedMemory të kornizës Qt. Versionet e para demo përdorën IPC mbi soketë, dhe më vonë planifikohet të kthehemi në këtë teknologji, duke marrë parasysh përfundimin e disa pjesëve të simulimit dhe nevojat me shikim në të ardhmen. Kalimi në memorjen e përbashkët ishte një masë në një farë mënyre e nevojshme, e cila ka qenë e kaluara.

Nuk do tĂ« pĂ«rshkruaj nuancat — shumĂ« nga peripecitĂ« e zhvillimit tĂ« kĂ«tij projekti janĂ« shpjeguar tashmĂ« nĂ« publikimet e mia nĂ« burimin, nĂ« veçanti kam njĂ« cikĂ«l tutorialesh mbi motorin OpenSceneGraph, qĂ« Ă«shtĂ« zhvilluar pikĂ«risht nga praktika e punĂ«s nĂ« kĂ«tĂ« projekt.

NĂ« projekt nuk Ă«shtĂ« gjithçka kaq e qetĂ« sa do tĂ« donim. NĂ« veçanti, nĂ«n-sistemi grafik Ă«shtĂ« shumĂ« larg perfekcionit nĂ« lidhje me cilĂ«sinĂ« e renderimit, dhe gjithashtu performanca e simit lĂ« pĂ«r tĂ« dĂ«shiruar. Ky lĂ«shim ka njĂ« qĂ«llim — tĂ« njohĂ« komunitetin e adhuruesve tĂ« transportit hekurudhor me projektin, tĂ« pĂ«rshkruajĂ« mundĂ«sitĂ« e tij dhe pĂ«rfundimisht tĂ« krijojĂ« njĂ« simulator hekurudhor tĂ« hapur, me platforma tĂ« shumta dhe njĂ« API tĂ« avancuar pĂ«r zhvilluesit e shtesave.

Perspektivat

Perspektivat varen nga ju, përdoruesit dhe zhvilluesit tanë të ardhshëm të dashur. Projekti është i hapur, ekziston faqja zyrtare, ku mund të shkarkoni simulatorin, me dokumentacionin, një përmbajtje që do të plotësohet në mënyrë të vazhdueshme. Ekziston forum projekti, grupi VK, dhe kanalet në YouTube, ku mund të merrni konsultimin dhe ndihmën më të detajuar.

Faleminderit për vëmendjen!

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster