Nəhayət, mənim üçün həmin gözlənilən gün gəlib çatdı ki, bu inkişafı təqdim edə bilim. Layihə tam bir il əvvəl, 2018-ci il sentyabrın 1-də başlamışdır, ən azından ilk commit də elə bu tarixə malikdir.
Yük daşınan qatar Rostov Baş stansiyasında (klik edilə bilən)
RRS nədir? Bu 1520 mm dəmir yolu tərkibinin açıq platformalı simulyatorudur. Oxucunun yerinə düşən sualı olacaq: "Baxın, bu layihənin məqsədi nədir, əgər dəmir yolu tematikası ilə bağlı simulyatorlardan, həm kommersiya, həm də açıq olanlar kifayət qədərdir?" Bu sualın cavabını mən dəfələrlə təqdim etməyə çalışıram.
Layihənin tarixi
Bir zamanlar, 2001-ci ildən etibarən, , ölkəmizdə böyük bir dəmir yolu simulyatorlar cəmiyyəti meydana gətirən bir layihə oldu. Bu layihənin həyat müddətində (Microsoft-un onu tərk etdiyi vaxta qədər, daha maraqlı işlərə, məsələn, Nokia-nın müflis edilməsinə yönəldiği dövrdə) bu layihəyə bir çox əlavələr düzəldilmişdir: marşrutlar, tərkiblər, ssenarilər.
MSTS-da, sonradan, bir sıra digər layihələr yaradıldı, məsələn, , və digər əlavə və törəmələr. Tanınmış kimi kommersiya layihələri də ortaya çıxdı. Hər şey yaxşı görünür, amma bir çox dəmir yolu nəqliyyatı həvəskarları üçün bu məhsullar tamamilə obyektiv səbəblərə görə kifayət etmir — onlar heç cür yerli tərkiblərin spesifikasını əks etdirmir, SSRİ sonrası məkanlarda istismar edilən və hazırlanmışdır. Bu, qatarın fren sisteminin necə tətbiq olunması ilə daha qabarıq görünür — qeyd olunan layihələrdə avtomatik Matrosov sistemi frenlərinin düzgün həyata keçirilməsi yoxdur və olmayacaq.
Artıq 2008-ci ildən, ortaya çıxan bir başqa layihə - , Vyacheslav Usov tərəfindən hazırlanmışdır. Bu layihənin özəlliyi, yuxarıda qeyd olunan çatışmazlıqları nəzarət altında saxlamasıdır, həm də yerli tərkibə yönəldilmişdir. Lakin bir böyük "amma" var — bu layihə mülkiyyətlidir və bağlanmışdır, memarlıq baxımından öz tərkibinizin daxil edilməsinə imkan vermir.
Mən 2007-ci ildə dəmir yolu tematikasına yaxınlaşdım, OAO VƏlNİİ-də işləməyə başladığım zaman, elmi işçi vəzifəsində çalışdım, və 2008-ci ildə dissertasiyamı müdafiə etdikdən sonra — baş elmi işçi. O zamana qədər ən son dəmir yolu simulyatora oyunlarında olan nailiyyətlərlə tanış oldum. Amma gördüklərim məni qane etmədi və o zaman ZDSimulator layihəsi hələ mövcud deyildi. Daha sonra tərkiblərin dinamikasına marağım artdıqca Rostov Dövlət Dəmir Yolu Universitetinə ( ) keçdim.) doktorluq dissertasiyasının yük treni tormozlanma dinamikası mövzusu ilə. Hazırda universitetimiz üçün dəmir yolu nəqliyyatına dair məşq komplekslərinin hazırlanmasına rəhbərlik edirəm və "Təhlükəsizlik Nəqliyyat Vasitələri" kafedrasında müvafiq fənlər tədris edirəm.
Bütün yuxarıda qeyd olunanlardan dolayı, əlavə inkişaf etdiricisinə hərəkət vasitələrinin fiziki prosesləri üzərində tam kontrol imkanı verəcək bir simulator yaratmaq ideyası ortaya çıxdı. Bunu əvvəllər R-7 bazasında raket daşıyıcıları ailəsi üçün hazırladığım Orbiter kosmik simulatoruna bənzətmək olar. Bir il əvvəl bu işə başladım və dərindən daxil oldum. 26 dekabr 2018-ci ildə .
işim həvəskarlar tərəfindən diqqət çəkdi və dəmir yolu simulyatorları dairəsində tanınmış, ZDsimulator üçün vizual məzmun yaradıcısı mənə kömək və layihənin gələcək inkişafı üzrə əməkdaşlıq təklif etdi. Sonra bizimlə bir başqa inkişaf etdirici - ) ZDsimulator üçün marşrutların yaradıcısı qatıldı. Birlikdəki işimiz bizi ilk buraxılışa apardı. Videoda - oyunun ilk buraxılışı ilə necə göründüyü barədə bir baxış var.

RRS simulatorunun xüsusiyyətləri
Əvvəlcə bu - açıq proqram memarlığıdır. Simulatorun kodunun açıq olmasından əlavə, əlavə modulların inkişaf etdiricilərinə yönəlmiş API və SDK var. Giriş maneəsi olduqca yüksəkdir - C++ dilində baza inkişaf etdirici bacarıqları tələb olunur. Simulator əslində məhz bu dildə yazılıb, Windows əməliyyat sistemi üçün GCC kompilatoru və onun MinGW variantından istifadə edərək. Bununla yanaşı, inkişaf etdiricinin Qt çərçivəsi ilə tanış olması arzu edilir, çünki bir çox konsept bu oyunun memarlığında əsaslıdır.
Amma, kifayət qədər səy və istək göstərildiyi təqdirdə, bu layihə inkişaf etdirici əlavələr üçün böyük imkanlar açır. Hərəkət vasitəsi dinamik kitabxanalar əsasında modullar şəklində həyata keçirilir. Simulatorun əsas struktur elementi hərəkət vahididir, ya da hərəkət vahidi (HV) - vaqon (öz-özünə hərəkət etməyən və ya mühərrik vaqonları tərkibində) və lokomotivin seqmentidir. API, HV-yə tətbiq olunan momenti müəyyən etməyə və qarşılığında təkər cütlərinin açısal sürətini, eləcə də kontakt şəbəkəsindəki gərginlik və cins kimi xarici parametrləri almasına imkan verir. Simulator bundan başqa heç nəyi bilmir və bilmək istəyir ki, bu da lokomotivin və ya vaqonun spesifik inkişaf etdiricisinin məsuliyyətinə buraxılır.
As you might guess, this relatively low-level approach allows for the implementation of the minutest nuances of the locomotive scheme. Additionally, the simulator package includes a set of standard equipment installed on domestic rolling stock: train driver crane No. 395, air distributor No. 242, auxiliary brake crane No. 254, and other brake equipment components. The add-on developer only needs to connect these elements in the pneumatic scheme of a specific locomotive or car. Furthermore, there is an API for creating custom equipment blocks.
Architecturally, RRS is built on the interaction of two main processes.
- simulator — the physical engine of the TrainEngine 2 dynamics. It implements the physics of train movement, considering various external factors, accounting for the interaction of moving units through coupling devices, and processing data from external modules that implement the physics of rolling stock operation.
- viewer — the graphical subsystem performing visualization of train movement, built on the basis of a graphic engine.
These subsystems interact with each other through shared memory, implemented based on the QSharedMemory class from the Qt framework. The first demo versions used IPC based on sockets, and further plans involve returning to this technology, considering the refinement of certain parts of the simulator and future needs. The transition to shared memory was to some extent a forced measure that has outlived its usefulness.
I will not describe the nuances — many of the twists and turns of this project’s development have already been outlined in my publications on the resource; in particular, I have a rather extensive , which grew out of the practical work on this project.
The project is not as smooth as one would wish. In particular, the graphical subsystem is quite far from perfection in terms of rendering quality, and the performance of the simulator leaves much to be desired. This release has one goal — to introduce the community of railway transport enthusiasts to the project, outline its capabilities, and finally create an open, cross-platform railway simulator with an advanced API for add-on developers.
Gələcək perspektivləri
The prospects depend on you, our dear future users and developers. The project is open, there is , where you can download the simulator, with , the content of which will be continuously replenished. There is a layihənin, ilə imzalanmalıdır, , where you can get the most detailed consultation and support.
Diqqətiniz üçün təşəkkür edirəm!
Mənbə: habr.com
