Rusiya Dəmiryolu Simulyatoru (RRS): ilk ictimai buraxılış

Gözlədiyim gün gəlib çatdı, nəhayət ki, bu inkişafı təqdim edə bilərəm. Layihəyə düz bir il əvvəl, ən azı 1 sentyabr 2018-ci ildə start verilib Gtihub-da RRS depoları ilk öhdəliyin məhz bu tarixi var.

Rostov əsas stansiyasında sərnişin qatarı (tıklanabilir)

Rusiya Dəmiryolu Simulyatoru (RRS): ilk ictimai buraxılış

RRS nədir? Bu, 1520 mm kalibrli vaqonun açıq çarpaz platforma simulyatorudur. Oxucu təbii olaraq sual verəcək: “Bağışlayın, əgər kifayət qədər sayda həm kommersiya, həm də açıq dəmir yolu simulyatorları varsa, bu layihə nə üçündür?” Bu sualın cavabı üçün pişiyin altına baxmağı təklif edirəm

Layihə tarixi

Bir vaxtlar, 2001-ci ildə çap olundu Microsoft Train Simulator (MSTS), bu da ölkəmizdə böyük bir dəmiryolçular cəmiyyətinin yaranmasına səbəb oldu. Bu layihənin mövcud olduğu bir neçə il ərzində (Microsoft onu tərk edənə qədər, Nokia-nın iflası və s. kimi onun üçün daha maraqlı şeylərə keçincəyə qədər) layihə onun üçün yaradılmış çoxlu əlavələr əldə etdi: marşrutlar, vaqonlar, ssenarilər.

MSTS əsasında sonradan bir sıra digər layihələr yaradıldı, məsələn OpenRails, RTrainSim (RTS) və digər əlavələr və törəmələr. Məşhur kimi kommersiya layihələri də ortaya çıxdı trainz. Və hər şey yaxşı olardı, lakin dəmir yolu nəqliyyatının bir çox pərəstişkarları tamamilə obyektiv səbəblərə görə bu məhsullardan razı deyillər - onlar heç bir şəkildə postsovet məkanında idarə olunan və inkişaf etdirilən yerli vaqonların xüsusiyyətlərini əks etdirmir. Bu, qatar əyləclərinin necə həyata keçirildiyinə baxarkən xüsusilə kəskindir - sadalanan layihələrin heç birində Matrosov sisteminin avtomatik əyləclərinin normal tətbiqi yoxdur və ya olmayacaq.

O qədər də uzaq olmayan 2008-ci ildə başqa bir layihə ortaya çıxdı - ZDSimulator, Vyaçeslav Usov tərəfindən hazırlanmışdır. Layihə diqqətəlayiqdir ki, burada qeyd olunan çatışmazlıqlar nəzərə alınır və düzəldilir, eyni zamanda ilkin olaraq Rusiya miqyaslı vaqonlara diqqət yetirilir. Ancaq bir böyük "amma" var - layihə mülkiyyətlidir və qapalıdır, memarlıq baxımından öz vaqonunun tətbiqinə imkan vermir.

Mən özüm dəmir yolu mövzusuna 2007-ci ildə işə başlayanda gəlmişəm ASC VELNII, elmi işçi kimi və 2008-ci ildə namizədlik dissertasiyasını müdafiə etdikdən sonra baş elmi işçi kimi. Mən o zaman dəmiryol simulyasiya oyunları sahəsində ən son nailiyyətlərlə tanış oldum. Gördüklərimi bəyənmədim və ZDSimulator layihəsi o vaxt yox idi. Daha sonra vaqonların dinamikasına heyran qalaraq Rostov Dövlət Nəqliyyat Universitetinə gəldim (RGUPS) yük qatarının əyləc dinamikası mövzusunda doktorluq dissertasiyası mövzusu ilə. Bu gün mən universitetimiz üçün dəmir yolu nəqliyyatı təlim komplekslərinin hazırlanmasına rəhbərlik edirəm və Dartma Vaqonları Kafedrasında ixtisaslaşdırılmış fənlərdən dərs deyirəm.

Yuxarıda göstərilənlərin hamısı ilə əlaqədar olaraq, onun üçün bir əlavə tərtibatçısına vaqonda baş verən fiziki proseslərə tam nəzarət etməyə imkan verən bir simulyator yaratmaq ideyası yarandı. Orbiter kosmik simulyatoruna bənzəyir, bunun üçün bir dəfə R-7 əsasında buraxılış maşınları ailəsi şəklində bir əlavə hazırladım. Bir il əvvəl bu işə başladım və özümü bu işə atdım. 26 dekabr 2018-ci ildə burada işıq göründü bu texnologiya demosu.

İşim həvəskarlar tərəfindən diqqət çəkdi və ZDsimulator üçün vizual məzmunun yaradıcısı olan dəmiryolçuların dairələrində yaxşı tanındı. Roman Biryukov (Romych Rusiya Dəmir Yolları) layihənin gələcək inkişafı üçün mənə kömək və əməkdaşlıq təklif etdi. Daha sonra bizə başqa bir tərtibatçı qoşuldu - Alexander Mishchenko (Ulovskii 2017), ZDsimulator üçün marşrut yaradıcısı. Əməkdaşlığımız bizi ilk buraxılışımıza apardı. Videoda oyunun ilk buraxılışı üçün necə göründüyünə dair bəzi icmallar göstərilir

RRS Simulyatorunun xüsusiyyətləri

Əvvəla, bu, açıq proqram arxitekturasıdır. Simulyator kodunun açıq olduğunu deməyək, ona üçüncü tərəf əlavələri hazırlayanlara yönəlmiş API və SDK var. Giriş maneəsi olduqca yüksəkdir - əsas C++ inkişaf bacarıqları tələb olunur. Simulyator GCC kompilyatorundan və Windows əməliyyat sistemi üçün onun MinGW variantından istifadə edərək orada yazılmışdır. Bundan əlavə, tərtibatçının Qt çərçivəsi ilə tanış olması məsləhətdir, çünki onun bir çox konsepsiyası oyunun arxitekturasının əsasını təşkil edir.

Bununla belə, lazımi səy və arzu ilə bu layihə əlavə tərtibatçısı üçün böyük imkanlar açır. Vakansiya dinamik kitabxanalara əsaslanan modullar şəklində həyata keçirilir. Simulyatorda əsas struktur elementi vaqonun vahididir, və ya mobil qurğu (MU) - avtomobil (özüyeriyən və ya çox vahid qatarın bir hissəsi kimi) və ya lokomotivin bir hissəsi. API təkər dəstlərinin bucaq sürətini, həmçinin kontakt şəbəkəsindəki gərginlik və cərəyanın növü kimi xarici parametrləri qəbul edərək cavab olaraq PE təkər dəstlərinə tətbiq edilən fırlanma anı təyin etməyə imkan verir. Simulyator başqa bir şey bilmir və bilmək istəmir, bu da daxili avadanlıqların necə işlədiyinin fizikasını müəyyən bir lokomotiv və ya avtomobilin yaradıcısının vicdanına buraxır.

Belə nisbətən aşağı səviyyəli yanaşmanın lokomotiv dövrəsinin ən kiçik nüanslarını həyata keçirməyə imkan verdiyini təxmin etmək çətin deyil. Bundan əlavə, simulyator dəstinə yerli vaqonlarda quraşdırılmış standart avadanlıq dəsti daxildir: maşinist qatarı kranı konv. No 395, konditribyutor vəziyyəti. № 242, köməkçi əyləc klapanının vəziyyəti. 254 nömrəli və əyləc avadanlığının digər elementləri. Əlavənin tərtibatçısı yalnız bu elementləri müəyyən bir lokomotivin və ya avtomobilin pnevmatik dövrəsinə qoşmalıdır. Bundan əlavə, öz aparat vahidlərinizi yaratmaq üçün API mövcuddur.

Arxitektura baxımından RRS iki əsas prosesin qarşılıqlı təsiri üzərində qurulur

  • simulator — fiziki qatar dinamikası mühərriki TrainEngine 2. Bir çox xarici amilləri nəzərə almaqla, hərəkət edən aqreqatların birləşdirici qurğular vasitəsilə qarşılıqlı təsirini nəzərə alaraq qatarın hərəkəti fizikasını həyata keçirir, vaqon avadanlıqlarının iş fizikasını həyata keçirən xarici modullardan gələn məlumatları emal edir.
  • viewer — qrafik mühərriki əsasında qurulmuş qatarların hərəkətini vizuallaşdıran qrafik alt sistem OpenSceneGraph

Bu alt sistemlər Qt çərçivəsinin QSharedMemory sinfi əsasında həyata keçirilən ortaq yaddaş vasitəsilə bir-biri ilə qarşılıqlı əlaqədə olur. İlk demolarda soket əsaslı IPC istifadə edildi və simulyatorun bəzi hissələrinin təkmilləşdirilməsini və gələcəyə nəzər salmaqla ehtiyacları nəzərə alaraq gələcəkdə bu texnologiyaya qayıtmaq planları var. Ortaq yaddaşa keçid müəyyən dərəcədə məcburi tədbir idi ki, bu da öz faydalılığını geridə qoydu.

Mən nüansları təsvir etməyəcəyəm - bu layihənin inkişafının bir çox təzadları resursdakı nəşrlərimdə artıq qeyd edilmişdir, xüsusən də mənim kifayət qədər geniş məlumatım var. OpenSceneGraph mühərriki üzrə bir sıra dərsliklər, bu layihə üzərində işləmək təcrübəsindən yaranıb.

Layihədə hər şey istədiyimiz qədər hamar deyil. Xüsusilə, qrafik alt sistemi göstərmə keyfiyyəti baxımından mükəmməl deyil və sim-in performansı çox arzuolunmazdır. Bu buraxılışın bir məqsədi var - dəmir yolu nəqliyyatı həvəskarları cəmiyyətini layihə ilə tanış etmək, onun imkanlarını təsvir etmək və nəhayət, əlavə tərtibatçılar üçün təkmil API ilə açıq, çarpaz platforma dəmir yolu simulyatoru yaratmaq.

Perspektivləri

Perspektivlər sizdən, əziz gələcək istifadəçilərimizdən və tərtibatçılarımızdan asılıdır. Layihə açıqdır və mövcuddur rəsmi internet səhifəsisimulyatoru haradan yükləyə bilərsiniz sənədlər, tərkibi davamlı olaraq doldurulacaq. Mövcuddur форум layihə, VK qrupuyoutube kanalı, burada ən ətraflı məsləhət və yardım ala bilərsiniz.

Diqqətiniz üçün təşəkkür edirik!

Mənbə: www.habr.com

Добавить комментарий