Russian Railway Simulator (RRS): első nyilvános kiadás

Elérkezett a várva várt nap, amikor végre bemutathatom ezt a fejlesztést. A projekt pontosan egy éve indult, legalábbis 1. szeptember 2018-jén RRS-tárolók a Gtihubon az első commit pontosan ez a dátum.

Személyvonat a rosztovi főpályaudvaron (kattintható)

Russian Railway Simulator (RRS): első nyilvános kiadás

Mi az RRS? Ez egy 1520 mm-es nyomtávú gördülőállomány nyitott keresztplatformos szimulátora. Az olvasó természetesen felteszi a kérdést: "Elnézést, mire való ez a projekt, ha van elegendő számú vasúti szimulátor, kereskedelmi és nyitott is?" A kérdés megválaszolásához azt javaslom, hogy nézzen a macska alá

A projekt története

Egyszer régen, 2001-ben jelent meg Microsoft Train Simulator (MSTS), amely a vasutasok hatalmas közösségét szülte hazánkban. A projekt fennállása alatt több év alatt (amíg a Microsoft fel nem hagyta, és a számára érdekesebb dolgokra tért át, mint például a Nokia csődje stb.), a projekt rengeteg kiegészítést kapott a számára: útvonalak, gördülőállomány, forgatókönyvek.

Az MSTS alapján később számos más projekt is született, mint pl OpenRails, RTrainSim (RTS) és egyéb kiegészítések és származékok. Kereskedelmi projektek is megjelentek, mint például a híres trainz. És minden rendben is lenne, de a vasúti közlekedés sok rajongója egészen objektív okokból nem elégedett ezekkel a termékekkel - semmiképpen sem tükrözik a posztszovjet térben üzemeltetett és fejlesztett hazai gördülőállomány sajátosságait. Ez különösen éles, ha azt nézzük, hogyan valósítják meg a vonatfékeket - a felsorolt ​​projektek egyikében sem működik vagy lesz a Matrosov-rendszer automatikus fékrendszere.

A nem is olyan távoli 2008-ban egy újabb projekt jelent meg - ZDSimulator, amelyet Vjacseszlav Usov fejlesztett ki. A projekt figyelemre méltó abban, hogy figyelembe veszi és kijavítja a fent említett hiányosságokat, miközben kezdetben az orosz nyomtávú járművekre összpontosít. De van egy nagy „de” - a projekt védett és zárt, építészetileg nem teszi lehetővé saját gördülőállomány bevezetését.

Jómagam 2007-ben jutottam el a vasúti témához, amikor elkezdtem dolgozni JSC VELNII, tudományos munkatársként, majd Ph.D. disszertációjának 2008-as megvédése után tudományos főmunkatársként. Ekkor ismerkedtem meg az akkori vasúti szimulációs játékok legújabb vívmányaival. És nem tetszett, amit láttam, és a ZDSimulator projekt akkoriban nem létezett. Később, lenyűgözött a gördülőállomány dinamikája, a Rosztovi Állami Közlekedési Egyetemre kerültem (RGUPS) egy tehervonat fékezési dinamikájáról szóló doktori értekezés témájával. Ma egyetemünk vasúti közlekedési képzési komplexumainak fejlesztését vezetem, és a Vontatási Gördülőállomány Tanszéken szaktudományokat tanítok.

Mindezek kapcsán felmerült egy olyan szimulátor létrehozásának ötlete, amely lehetővé teszi a hozzá tartozó kiegészítő fejlesztőjének, hogy teljes ellenőrzést szerezzen a gördülőállományban végbemenő fizikai folyamatok felett. Hasonlóan az Orbiter űrszimulátorhoz, amelyhez egykor egy kiegészítést fejlesztettem ki egy R-7-es hordozórakéta-család formájában. Egy évvel ezelőtt elvállaltam ezt a munkát, és belevetettem magam. 26. december 2018-a itt látta meg a fényt ezt a technológiai bemutatót.

Munkámra felfigyeltek a lelkesek, a vasúti simmerek köreiben jól ismert, a ZDsimulator vizuális tartalom alkotója. Roman Birjukov (Romych Orosz Vasutak) segítséget és együttműködést ajánlott fel a projekt továbbfejlesztésében. Később egy másik fejlesztő csatlakozott hozzánk - Alekszandr Miscsenko (Ulovskii 2017), útvonal-készítő a ZDsimulator számára. Együttműködésünk vezetett el az első kiadásunkhoz. A videó áttekintést ad arról, hogyan néz ki a játék első kiadásakor

Az RRS szimulátor jellemzői

Először is, ez egy nyílt szoftverarchitektúra. Arról nem is beszélve, hogy a szimulátor kódja nyitva van, van hozzá egy API és SDK, ami a harmadik féltől származó kiegészítők fejlesztőit célozza meg. A belépési korlát meglehetősen magas - alapvető C++ fejlesztési ismeretek szükségesek. A szimulátor bele van írva, a GCC fordító és annak Windows operációs rendszerhez való MinGW változata segítségével. Ezen túlmenően a fejlesztőnek tanácsos ismernie a Qt keretrendszert, mivel számos koncepciója alapozza meg a játék architektúráját.

Azonban kellő gondossággal és akarattal ez a projekt óriási lehetőségeket nyit meg a kiegészítő fejlesztője számára. A gördülőállomány dinamikus könyvtárakon alapuló modulok formájában valósul meg. A szimulátor fő szerkezeti eleme a gördülőállomány egysége, vagy mobil egység (MU) - személygépkocsi (nem önjáró vagy többegységes vonat részeként) vagy mozdony egy része. Az API lehetővé teszi a PE kerékkészletekre alkalmazott nyomaték beállítását, válaszul a kerékkészletek szögsebességére, valamint külső paraméterekre, mint például a feszültség és az áram típusa az érintkező hálózatban. A szimulátor mást nem tud és nem is akar tudni, ami a belső berendezések fizikáját az adott mozdony vagy autó fejlesztőjének lelkiismeretére bízza.

Nem nehéz kitalálni, hogy egy ilyen viszonylag alacsony szintű megközelítés lehetővé teszi a mozdonyáramkör legkisebb árnyalatainak megvalósítását. Ezenkívül a szimulátorkészlet tartalmaz egy, a hazai gördülőállományra telepített alapfelszereltséget: vezetői vonat daru konv. 395. sz., légelosztó állapot. 242-es, segédfékszelep állapot. 254. sz. és a fékberendezés egyéb elemei. A kiegészítő fejlesztőjének csak be kell kötnie ezeket az elemeket egy adott mozdony vagy kocsi pneumatikus áramkörébe. Ezen kívül van egy API a saját hardveregységek létrehozásához.

Építészetileg az RRS két fő folyamat kölcsönhatására épül

  • szimulátor — fizikai vonatdinamikai motor TrainEngine 2. Megvalósítja a vonat mozgásának fizikáját, figyelembe véve számos külső tényezőt, figyelembe véve a mozgó egységek kölcsönhatásait a kapcsolóeszközökön keresztül, feldolgozza a külső modulokból érkező adatokat, amelyek megvalósítják a gördülőállomány berendezéseinek működési fizikáját
  • néző — a vonatok mozgását megjelenítő grafikus alrendszer, amely grafikus motorra épül OpenSceneGraph

Ezek az alrendszerek a Qt keretrendszer QSharedMemory osztályán alapuló megosztott memórián keresztül lépnek kapcsolatba egymással. Az első demók socket alapú IPC-t használtak, és a tervek szerint a jövőben visszatérnek ehhez a technológiához, figyelembe véve a szimulátor egyes részeinek finomítását és a jövőre vonatkozó igényeket. A megosztott memóriára való áttérés bizonyos mértékig kényszerintézkedés volt, amely már túlélte a hasznát.

Nem fogom leírni az árnyalatokat - a projekt fejlesztésének számos viszontagsága már fel van vázolva az erőforrásról szóló publikációimban, különösen, elég kiterjedt oktatóanyagok sorozata az OpenSceneGraph motorról, amely a projekten való munka gyakorlatából nőtt ki.

A projektben nem minden olyan gördülékeny, mint szeretnénk. Konkrétan a grafikus alrendszer a renderelés minősége szempontjából messze nem tökéletes, a sim teljesítménye pedig sok kívánnivalót hagy maga után. Ennek a kiadásnak egy célja van: bevezetni a vasúti közlekedés szerelmeseinek közösségét a projektbe, felvázolni a képességeit, és végül létrehozni egy nyitott, platformok közötti vasúti szimulátort fejlett API-val a kiegészítő fejlesztők számára.

Kilátások

A kilátások Önökön múlnak, kedves leendő felhasználóink ​​és fejlesztőink. A projekt nyitott és létezik hivatalos honlapjánahonnan letöltheti a szimulátort dokumentáció, melynek összetétele folyamatosan bővül. Létezik a fórum projekt, VK csoportÉs YouTube csatorna, ahol a legrészletesebb tanácsokat és segítséget kaphat.

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

Forrás: will.com

Hozzászólás