Simulator Kereta Api Rusia (RRS): keluaran awam pertama

Hari yang saya tunggu telah tiba apabila saya akhirnya dapat membentangkan perkembangan ini. Projek ini telah dimulakan tepat setahun yang lalu, pada 1 September 2018, sekurang-kurangnya Repositori RRS pada Gtihub komitmen pertama mempunyai tarikh ini tepat.

Kereta api penumpang di stesen Utama Rostov (boleh diklik)

Simulator Kereta Api Rusia (RRS): keluaran awam pertama

Apakah RRS? Ini ialah simulator rentas platform terbuka bagi tolok gelek 1520 mm. Pembaca secara semula jadi akan bertanya soalan: "Maaf, untuk apa projek ini, jika terdapat bilangan simulator kereta api yang mencukupi, baik komersial dan terbuka?" Untuk jawapan kepada soalan ini, saya cadangkan melihat di bawah kucing

Sejarah projek

Suatu ketika dahulu, pada tahun 2001, ia diterbitkan Simulator Kereta Api Microsoft (MSTS), yang menimbulkan komuniti kereta api yang besar di negara kita. Sepanjang beberapa tahun projek ini wujud (sehingga Microsoft meninggalkannya, beralih kepada perkara yang lebih menarik untuknya, seperti kebankrapan Nokia, dll.), projek itu memperoleh banyak penambahan yang dibuat untuknya: laluan, stok, senario.

Berdasarkan MSTS, beberapa projek lain telah diwujudkan kemudiannya, seperti OpenRails, RTrainSim (RTS) dan tambahan dan terbitan lain. Projek komersial juga muncul, seperti yang terkenal trainz. Dan segala-galanya akan baik-baik saja, tetapi ramai peminat pengangkutan kereta api tidak berpuas hati dengan produk ini atas sebab-sebab yang agak objektif - mereka sama sekali tidak mencerminkan spesifikasi kereta api domestik yang dikendalikan dan dibangunkan di ruang pasca-Soviet. Ini amat akut apabila melihat cara brek kereta api dilaksanakan - tiada projek yang disenaraikan mempunyai atau akan mempunyai pelaksanaan brek automatik sistem Matrosov yang normal.

Pada tahun 2008 yang tidak begitu jauh, projek lain muncul - ZDSimulator, dibangunkan oleh Vyacheslav Usov. Projek ini adalah luar biasa kerana ia mengambil kira dan membetulkan kekurangan yang disebutkan di atas, sementara pada mulanya memberi tumpuan kepada stok rolling tolok Rusia. Tetapi ada satu "tetapi" yang besar - projek itu adalah proprietari dan tertutup, dari segi seni bina tidak membenarkan pengenalan rolling stocknya sendiri.

Saya sendiri datang ke topik kereta api pada tahun 2007, apabila saya mula bekerja JSC VELNII, sebagai felo penyelidik, dan selepas mempertahankan tesis Ph.D. pada 2008, sebagai felo penyelidik kanan. Ketika itu barulah saya berkenalan dengan pencapaian terkini dalam bidang permainan simulasi kereta api ketika itu. Dan saya tidak menyukai apa yang saya lihat, dan projek ZDSimulator tidak wujud pada masa itu. Kemudian, terpesona dengan dinamik rolling stock, saya datang ke Universiti Pengangkutan Negeri Rostov (RGUPS) dengan topik disertasi kedoktoran mengenai dinamik brek kereta api barang. Hari ini saya mengetuai pembangunan kompleks latihan pengangkutan kereta api untuk universiti kami dan mengajar disiplin khusus di Jabatan Traction Rolling Stock.

Sehubungan dengan semua perkara di atas, timbul idea untuk mencipta simulator yang membolehkan pembangun alat tambah untuknya mendapat kawalan penuh ke atas proses fizikal yang berlaku dalam stok rolling. Sama seperti simulator angkasa Orbiter, yang mana saya pernah membangunkan tambahan dalam bentuk keluarga kenderaan pelancar berdasarkan R-7. Setahun yang lalu saya mengambil kerja ini dan mencurahkan diri saya ke dalamnya. 26 Disember 2018 melihat cahaya di sini demo teknologi ini.

Kerja saya telah diperhatikan oleh peminat, dan terkenal dalam kalangan pengembara kereta api, pencipta kandungan visual untuk ZDsimulator Roman Biryukov (Kereta api Romych Rusia) menawarkan bantuan dan kerjasama kepada saya dalam pembangunan projek selanjutnya. Kemudian pemaju lain menyertai kami - Alexander Mishchenko (Ulovskii2017), pencipta laluan untuk ZDsimulator. Kerjasama kami membawa kami ke keluaran pertama kami. Video ini menunjukkan beberapa gambaran keseluruhan tentang bagaimana permainan ini kelihatan untuk keluaran pertamanya

Ciri-ciri Simulator RRS

Pertama sekali, ia adalah seni bina perisian terbuka. Belum lagi fakta bahawa kod simulator dibuka, terdapat API dan SDK yang ditujukan kepada pembangun alat tambah pihak ketiga kepadanya. Halangan kemasukan agak tinggi - kemahiran pembangunan C++ asas diperlukan. Simulator ditulis di dalamnya, menggunakan pengkompil GCC dan varian MinGWnya untuk sistem pengendalian Windows. Di samping itu, adalah dinasihatkan untuk pembangun membiasakan diri dengan rangka kerja Qt, kerana banyak konsepnya mendasari seni bina permainan.

Walau bagaimanapun, dengan usaha yang wajar dan keinginan, projek ini membuka peluang besar untuk pembangun tambahan. Rolling stock dilaksanakan dalam bentuk modul berdasarkan perpustakaan dinamik. Elemen struktur utama dalam simulator ialah satu unit rolling stock, atau unit mudah alih (MU) - kereta (tidak digerakkan sendiri atau sebagai sebahagian daripada kereta api berbilang unit) atau bahagian lokomotif. API memungkinkan untuk menetapkan tork yang digunakan pada set roda PE, sebagai tindak balas menerima kelajuan sudut set roda, serta parameter luaran, seperti voltan dan jenis arus dalam rangkaian kenalan. Simulator tidak tahu apa-apa lagi dan tidak mahu tahu, yang meninggalkan fizik peralatan dalaman kepada hati nurani pemaju lokomotif atau kereta tertentu.

Tidak sukar untuk meneka bahawa pendekatan tahap yang agak rendah memungkinkan untuk melaksanakan nuansa terkecil litar lokomotif. Selain itu, kit simulator termasuk satu set peralatan standard yang dipasang pada stok kereta api domestik: kren kereta api pemandu penukaran. No. 395, keadaan pengedar udara. No. 242, keadaan injap brek tambahan. No. 254 dan elemen lain peralatan brek. Pembangun alat tambah hanya perlu menyambungkan elemen ini ke dalam litar pneumatik lokomotif atau kereta tertentu. Di samping itu, terdapat API untuk mencipta unit perkakasan anda sendiri.

Dari segi seni bina, RRS dibina atas interaksi dua proses utama

  • simulator β€” enjin dinamik kereta api fizikal TrainEngine 2. Melaksanakan fizik pergerakan kereta api, dengan mengambil kira banyak faktor luaran, dengan mengambil kira interaksi unit bergerak melalui peranti gandingan, memproses data yang datang daripada modul luaran yang melaksanakan fizik operasi peralatan rolling stock
  • penonton β€” subsistem grafik yang menggambarkan pergerakan kereta api, dibina berdasarkan enjin grafik OpenSceneGraph

Subsistem ini berinteraksi antara satu sama lain melalui memori yang dikongsi, dilaksanakan berdasarkan kelas QSharedMemory rangka kerja Qt. Demo pertama menggunakan IPC berasaskan soket, dan terdapat rancangan untuk kembali kepada teknologi ini pada masa hadapan, dengan mengambil kira penghalusan beberapa bahagian simulator dan keperluan dengan melihat masa depan. Peralihan kepada ingatan bersama sedikit sebanyak merupakan langkah terpaksa yang telah melebihi kegunaannya.

Saya tidak akan menerangkan nuansa - banyak perubahan dalam pembangunan projek ini telah digariskan dalam penerbitan saya mengenai sumber, khususnya, saya mempunyai agak luas. satu siri tutorial mengenai enjin OpenSceneGraph, yang berkembang daripada amalan mengusahakan projek ini.

Tidak semua dalam projek itu lancar seperti yang kita inginkan. Khususnya, subsistem grafik adalah jauh dari sempurna dari segi kualiti rendering, dan prestasi sim meninggalkan banyak yang diingini. Keluaran ini mempunyai satu matlamat - untuk memperkenalkan komuniti peminat pengangkutan kereta api kepada projek itu, menggariskan keupayaannya dan akhirnya mencipta simulator kereta api merentas platform terbuka dengan API termaju untuk pembangun tambahan.

Prospek

Prospek bergantung kepada anda, pengguna dan pembangun masa depan kami yang dihormati. Projek ini terbuka dan wujud laman rasmidi mana anda boleh memuat turun simulator, dari dokumentasi, yang komposisinya akan diisi semula secara berterusan. wujud forum projek, Kumpulan VKdan di saluran YouTube, di mana anda boleh mendapatkan nasihat dan bantuan yang paling terperinci.

Thank you!

Sumber: www.habr.com

Tambah komen