Ruski železniški simulator (RRS): prva javna izdaja

Prišel je dan, ki sem ga čakal, ko lahko končno predstavim ta razvoj. Projekt se je začel natanko pred enim letom, vsaj 1. septembra 2018 Repozitoriji RRS na Gtihubu prva potrditev ima točno ta datum.

Potniški vlak na glavni postaji Rostov (klikniti)

Ruski železniški simulator (RRS): prva javna izdaja

Kaj je RRS? To je odprt simulator med platformami tirnih vozil tirne širine 1520 mm. Bralec se bo seveda vprašal: "Oprostite, čemu je ta projekt, če pa obstaja zadostno število železniških simulatorjev, tako komercialnih kot odprtih?" Za odgovor na to vprašanje predlagam pogled pod mačko

Zgodovina projekta

Bilo je nekoč, leta 2001, je izšla Microsoftov simulator vlaka (MSTS), iz katerega je nastala ogromna skupnost železničarskih simerjev pri nas. V nekaj letih, ko je ta projekt obstajal (dokler ga Microsoft ni opustil in se preselil k bolj zanimivim stvarem, kot je bankrot Nokie itd.), je projekt pridobil množico dodatkov, ustvarjenih zanj: poti, vozni park, scenariji.

Na podlagi MSTS je nato nastalo še nekaj drugih projektov, kot npr OpenRails, RTrainSim (RTS) ter drugi dodatki in izpeljanke. Pojavili so se tudi komercialni projekti, kot je slavni trainz. In vse bi bilo v redu, vendar mnogi ljubitelji železniškega prometa niso zadovoljni s temi izdelki iz povsem objektivnih razlogov - nikakor ne odražajo posebnosti domačega voznega parka, ki se upravlja in razvija v postsovjetskem prostoru. To je še posebej pereče, če pogledamo, kako so izvedene vlakovne zavore - noben od naštetih projektov nima in ne bo imel običajne izvedbe avtomatskih zavor sistema Matrosov.

V ne tako oddaljenem letu 2008 se je pojavil še en projekt - ZDSimulator, ki ga je razvil Vjačeslav Usov. Projekt je izjemen v tem, da upošteva in odpravlja zgoraj omenjene pomanjkljivosti, medtem ko se na začetku osredotoča na tirna sredstva ruske širine. Vendar obstaja en velik "ampak" - projekt je lastniški in zaprt, arhitekturno ne dovoljuje uvedbe lastnega voznega parka.

Sam sem na temo železnic prišel leta 2007, ko sem začel delati v JSC VELNII, kot znanstveni sodelavec, po zagovoru doktorske disertacije leta 2008 pa kot višji znanstveni sodelavec. Takrat sem se seznanil z najnovejšimi dosežki na področju takratnih železniških simulacijskih iger. Ni mi bilo všeč, kar sem videl, in projekt ZDSimulator takrat še ni obstajal. Kasneje, navdušen nad dinamiko voznega parka, sem prišel na Rostovsko državno univerzo za promet (RGUPS) s temo doktorske disertacije Zavorna dinamika tovornega vlaka. Danes vodim razvoj izobraževalnih kompleksov za železniški promet za našo univerzo in poučujem specializirane discipline na Oddelku za vlečni vozni park.

V povezavi z vsem naštetim se je porodila ideja o izdelavi simulatorja, ki bi razvijalcu dodatka zanj omogočil popoln nadzor nad fizičnimi procesi, ki se dogajajo v voznem parku. Podobno kot vesoljski simulator Orbiter, za katerega sem nekoč razvil dodatek v obliki družine nosilnih raket na osnovi R-7. Pred letom dni sem se lotil tega dela in se vanj vrgel. 26. december 2018 je ugledal luč pri nas ta demo tehnologije.

Moje delo so opazili entuziasti in v krogih železničarjev znani ustvarjalec vizualnih vsebin za ZDsimulator. Roman Biryukov (Ruske železnice Romych) ponudil pomoč in sodelovanje pri nadaljnjem razvoju projekta. Kasneje se nam je pridružil še en razvijalec - Aleksander Miščenko (Ulovskii 2017), ustvarjalec poti za ZDsimulator. Naše sodelovanje nas je pripeljalo do prve izdaje. Videoposnetek prikazuje nekaj pregleda, kako je igra videti za prvo izdajo

Lastnosti simulatorja RRS

Prvič, to je odprta arhitektura programske opreme. Da ne omenjam dejstva, da je koda simulatorja odprta, obstajata API in SDK, ki sta namenjena razvijalcem dodatkov tretjih oseb. Vstopna ovira je precej visoka – potrebna so osnovna razvojna znanja C++. V njem je napisan simulator z uporabo prevajalnika GCC in njegove različice MinGW za operacijski sistem Windows. Poleg tega je priporočljivo, da razvijalec pozna okvir Qt, saj je veliko njegovih konceptov podlaga za arhitekturo igre.

Vendar pa s skrbnostjo in željo ta projekt razvijalcu dodatkov odpira ogromno priložnosti. Vozni park je implementiran v obliki modulov, ki temeljijo na dinamičnih knjižnicah. Glavni strukturni element v simulatorju je enota voznega parka, ali mobilna enota (MU) - vagon (brez lastnega pogona ali kot del sestavnega vlaka) ali del lokomotive. API omogoča nastavitev navora, ki se uporablja za kolesne dvojice PE, kot odgovor na to prejme kotno hitrost kolesnih dvojic, kot tudi zunanje parametre, kot sta napetost in vrsta toka v kontaktnem omrežju. Drugega simulator ne zna in noče vedeti, zaradi česar je fizika notranje opreme prepuščena na vesti razvijalca določene lokomotive ali avtomobila.

Ni težko uganiti, da tako relativno nizek pristop omogoča izvedbo najmanjših odtenkov lokomotivskega vezja. Poleg tega komplet simulatorja vključuje nabor standardne opreme, nameščene na domačih tirnih vozilih: žerjav za strojevodjo konv. št. 395, stanje razdelilnika zraka. št. 242, stanje ventila pomožne zavore. št. 254 in drugi elementi zavorne opreme. Razvijalec dodatka mora le te elemente povezati v pnevmatski tokokrog določene lokomotive ali vagona. Poleg tega obstaja API za ustvarjanje lastnih enot strojne opreme.

Arhitekturno je RRS zgrajen na interakciji dveh glavnih procesov

  • Simulator — motor za fizično dinamiko vlaka TrainEngine 2. Implementira fiziko gibanja vlaka ob upoštevanju številnih zunanjih dejavnikov, ob upoštevanju interakcije gibajočih se enot prek naprav za spenjanje, obdeluje podatke, ki prihajajo iz zunanjih modulov, ki izvajajo fiziko delovanja opreme tirnih vozil
  • Gledalec — grafični podsistem, ki vizualizira gibanje vlaka, zgrajen na osnovi grafičnega motorja OpenSceneGraph

Ti podsistemi medsebojno delujejo prek skupnega pomnilnika, implementiranega na podlagi razreda QSharedMemory ogrodja Qt. Prve predstavitve so uporabljale IPC, ki temelji na vtičnicah, in obstajajo načrti za vrnitev k tej tehnologiji v prihodnosti, ob upoštevanju izboljšave nekaterih delov simulatorja in potreb s pogledom na prihodnost. Prehod na skupni spomin je bil do neke mere izsiljen ukrep, ki je preživel svoj čas.

Ne bom opisoval nians - številne spremenljivosti razvoja tega projekta so že opisane v mojih publikacijah na viru, zlasti imam precej obsežen serija vadnic o motorju OpenSceneGraph, ki je zrasla iz prakse dela na tem projektu.

V projektu ni vse tako gladko, kot bi si želeli. Zlasti grafični podsistem še zdaleč ni popoln v smislu kakovosti upodabljanja, zmogljivost sim pa pušča veliko želenega. Ta izdaja ima en cilj – seznaniti skupnost ljubiteljev železniškega prometa s projektom, orisati njegove zmogljivosti in končno ustvariti odprt železniški simulator za več platform z naprednim API-jem za razvijalce dodatkov.

Obeti

Obeti so odvisni od vas, naši dragi bodoči uporabniki in razvijalci. Projekt je odprt in obstaja Uradna spletna stranod koder lahko prenesete simulator dokumentacijo, katerega sestava se bo nenehno dopolnjevala. obstaja forum projekt, VK skupinaIn youtube kanal, kjer lahko dobite najbolj podrobne nasvete in pomoč.

Спасибо за внимание!

Vir: www.habr.com

Dodaj komentar