Simulator Kereta Api Rusia (RRS): rilis publik pertama

Hari yang saya tunggu-tunggu telah tiba ketika saya akhirnya bisa menyajikan perkembangan ini. Proyek ini dimulai tepat setahun yang lalu, setidaknya pada 1 September 2018 Repositori RRS di Gtihub komit pertama memiliki tanggal persis ini.

Kereta penumpang di stasiun utama Rostov (dapat diklik)

Simulator Kereta Api Rusia (RRS): rilis publik pertama

Apa itu RRS? Ini adalah simulator lintas platform terbuka dengan rolling stock ukuran 1520 mm. Pembaca tentu akan bertanya: β€œMaaf, untuk apa proyek ini, jika simulator kereta api, baik komersial maupun terbuka, tersedia dalam jumlah yang cukup?” Untuk jawaban atas pertanyaan ini, saya sarankan mencari di bawah kucing

Sejarah proyek

Suatu ketika, pada tahun 2001, diterbitkan Simulator Kereta Microsoft (MSTS), yang memunculkan komunitas besar perkeretaapian di negara kita. Selama beberapa tahun proyek ini ada (sampai Microsoft meninggalkannya, beralih ke hal-hal yang lebih menarik, seperti kebangkrutan Nokia, dll.), proyek tersebut memperoleh banyak tambahan yang dibuat untuknya: rute, kereta api, skenario.

Berdasarkan MSTS, sejumlah proyek lain kemudian dibuat, seperti Rel Terbuka, RtrainSim (RTS) dan tambahan dan turunan lainnya. Proyek komersial juga bermunculan, seperti yang terkenal Trainzo. Dan semuanya akan baik-baik saja, tetapi banyak penggemar transportasi kereta api tidak puas dengan produk ini karena alasan yang cukup obyektif - produk tersebut sama sekali tidak mencerminkan spesifikasi kereta api domestik yang dioperasikan dan dikembangkan di ruang pasca-Soviet. Hal ini menjadi sangat akut ketika melihat bagaimana rem kereta api diterapkan - tidak ada proyek yang terdaftar yang memiliki atau akan memiliki penerapan rem otomatis sistem Matrosov secara normal.

Tidak lama lagi di tahun 2008, proyek lain muncul - ZDSimulator, dikembangkan oleh Vyacheslav Usov. Proyek ini luar biasa karena memperhitungkan dan memperbaiki kekurangan yang disebutkan di atas, sementara pada awalnya berfokus pada sarana perkeretaapian Rusia. Namun ada satu "tetapi" yang besar - proyek ini bersifat eksklusif dan tertutup, secara arsitektural tidak mengizinkan pengenalan sarana perkeretaapian sendiri.

Saya sendiri mulai membahas topik perkeretaapian pada tahun 2007, ketika saya mulai bekerja JSC VELNII, sebagai peneliti, dan setelah mempertahankan tesis Ph.D-nya pada tahun 2008, sebagai peneliti senior. Dari situlah saya mengenal prestasi-prestasi terkini di bidang permainan simulasi kereta api saat itu. Dan saya tidak menyukai apa yang saya lihat, dan proyek ZDSimulator belum ada pada saat itu. Belakangan, karena terpesona dengan dinamika kereta api, saya datang ke Universitas Transportasi Negeri Rostov (RGUP) dengan topik disertasi doktor tentang dinamika pengereman kereta barang. Hari ini saya memimpin pengembangan kompleks pelatihan transportasi kereta api untuk universitas kami dan mengajar disiplin ilmu khusus di Departemen Traksi Rolling Stock.

Sehubungan dengan semua hal di atas, muncul ide untuk membuat simulator yang memungkinkan pengembang add-on untuk mendapatkan kendali penuh atas proses fisik yang terjadi di rolling stock. Mirip dengan simulator luar angkasa Orbiter, yang pernah saya kembangkan tambahannya berupa keluarga kendaraan peluncuran berdasarkan R-7. Setahun yang lalu saya mengambil pekerjaan ini dan terjun ke dalamnya. 26 Desember 2018 melihat cahaya di sini demo teknologi ini.

Karya saya diperhatikan oleh para peminat, dan terkenal di kalangan pembuat konten visual untuk ZDsimulator Roman Biryukov (Kereta Api Rusia Romych) menawarkan saya bantuan dan kerja sama dalam pengembangan proyek lebih lanjut. Kemudian pengembang lain bergabung dengan kami - Alexander Mishchenko (Ulovskii2017), pembuat rute untuk ZDsimulator. Kolaborasi kami membawa kami ke rilis pertama kami. Video tersebut menunjukkan beberapa ikhtisar tentang tampilan game untuk rilis pertamanya

Fitur Simulator RRS

Pertama-tama, ini adalah arsitektur perangkat lunak terbuka. Belum lagi fakta bahwa kode simulator terbuka, ada API dan SDK yang ditujukan untuk pengembang add-on pihak ketiga. Hambatan masuknya cukup tinggi - diperlukan keterampilan pengembangan C++ dasar. Simulator ditulis di dalamnya, menggunakan compiler GCC dan varian MinGW-nya untuk sistem operasi Windows. Selain itu, pengembang disarankan untuk memahami kerangka Qt, karena banyak konsepnya yang mendasari arsitektur game.

Namun, dengan uji tuntas dan keinginan, proyek ini membuka peluang besar bagi pengembang add-on. Rolling stock diimplementasikan dalam bentuk modul berdasarkan perpustakaan dinamis. Elemen struktural utama dalam simulator adalah satuan sarana perkeretaapian, atau unit bergerak (MU) - gerbong (tidak bergerak sendiri atau sebagai bagian dari kereta beberapa unit) atau bagian dari lokomotif. API memungkinkan untuk mengatur torsi yang diterapkan pada set roda PE, sebagai respons menerima kecepatan sudut set roda, serta parameter eksternal, seperti tegangan dan jenis arus dalam jaringan kontak. Simulator tidak mengetahui hal lain dan tidak ingin mengetahuinya, sehingga fisika peralatan internal bergantung pada hati nurani pengembang lokomotif atau mobil tertentu.

Tidak sulit untuk menebak bahwa pendekatan tingkat rendah seperti itu memungkinkan penerapan nuansa terkecil pada rangkaian lokomotif. Selain itu, kit simulator mencakup seperangkat perlengkapan standar yang dipasang pada gerbong domestik: konv. derek kereta pengemudi. No 395, kondisi distributor udara. No.242, kondisi katup rem bantu. No 254 dan elemen perlengkapan rem lainnya. Pengembang add-on hanya perlu menghubungkan elemen-elemen ini ke dalam sirkuit pneumatik lokomotif atau mobil tertentu. Selain itu, ada API untuk membuat unit perangkat keras Anda sendiri.

Secara arsitektural, RRS dibangun berdasarkan interaksi dua proses utama

  • simulator β€” mesin dinamika kereta fisik TrainEngine 2. Mengimplementasikan fisika pergerakan kereta api, dengan mempertimbangkan banyak faktor eksternal, dengan mempertimbangkan interaksi unit yang bergerak melalui perangkat kopling, memproses data yang berasal dari modul eksternal yang mengimplementasikan fisika pengoperasian peralatan rolling stock
  • penonton β€” subsistem grafis yang memvisualisasikan pergerakan kereta api, dibangun berdasarkan mesin grafis OpenSceneGraph

Subsistem ini berinteraksi satu sama lain melalui memori bersama, diimplementasikan berdasarkan kelas QSharedMemory dari kerangka Qt. Demo pertama menggunakan IPC berbasis soket, dan ada rencana untuk kembali ke teknologi ini di masa mendatang, dengan mempertimbangkan penyempurnaan beberapa bagian simulator dan kebutuhan dengan pandangan ke masa depan. Transisi ke memori bersama sampai batas tertentu merupakan tindakan paksa yang sudah tidak berguna lagi.

Saya tidak akan menjelaskan nuansanya - banyak perubahan dalam pengembangan proyek ini telah diuraikan dalam publikasi saya di sumber daya, khususnya, saya memiliki cukup luas serangkaian tutorial tentang mesin OpenSceneGraph, yang tumbuh dari praktik mengerjakan proyek ini.

Tidak semua hal dalam proyek ini semulus yang kita inginkan. Secara khusus, subsistem grafis masih jauh dari sempurna dalam hal kualitas rendering, dan kinerja sim masih jauh dari yang diinginkan. Rilis ini memiliki satu tujuan - untuk memperkenalkan proyek ini kepada komunitas penggemar transportasi kereta api, menguraikan kemampuannya, dan akhirnya membuat simulator kereta api lintas platform terbuka dengan API canggih untuk pengembang tambahan.

Prospek

Prospeknya bergantung pada Anda, para pengguna dan pengembang masa depan kami yang terkasih. Proyek ini terbuka dan ada situs resmidari mana Anda dapat mengunduh simulator dokumentasi, yang komposisinya akan terus diperbarui. Ada forum proyek, Grup VKDan Saluran Youtube, di mana Anda bisa mendapatkan saran dan bantuan paling detail.

Terima kasih!

Sumber: www.habr.com

Tambah komentar