Nihayet bu gelişmeyi sunabileceğim gün beklediğim gün geldi. Proje tam olarak bir yıl önce, en azından 1 Eylül 2018'de başlatıldı. ilk taahhütte tam olarak bu tarih var.
Rostov Ana istasyonundaki yolcu treni (tıklanabilir)
RRS nedir? Bu, 1520 mm ölçülü demiryolu araçlarının açık çapraz platform simülatörüdür. Okuyucu doğal olarak şu soruyu soracaktır: “Affedersiniz, hem ticari hem de açık yeterli sayıda demiryolu simülatörü varsa bu proje ne için?” Bu sorunun cevabı için kedinin altına bakmanızı öneririm
Proje geçmişi
Bir zamanlar, 2001'de yayımlanmıştı. Bu da ülkemizde büyük bir demiryolu kaynama topluluğunun oluşmasına neden oldu. Bu projenin var olduğu birkaç yıl boyunca (Microsoft onu terk edip Nokia'nın iflası gibi daha ilginç şeylere geçene kadar), proje kendisi için yaratılan bir dizi eklemeyi satın aldı: rotalar, demiryolu taşıtları, senaryolar.
MSTS'ye dayanarak daha sonra bir dizi başka proje oluşturuldu: , ve diğer eklemeler ve türevler. Ünlü gibi ticari projeler de ortaya çıktı . Ve her şey yoluna girecek, ancak demiryolu taşımacılığının pek çok hayranı oldukça nesnel nedenlerden dolayı bu ürünlerden memnun değil - bunlar hiçbir şekilde Sovyet sonrası alanda işletilen ve geliştirilen yerli demiryolu taşıtlarının özelliklerini yansıtmıyor. Bu, tren frenlerinin nasıl uygulandığına bakıldığında özellikle akuttur - listelenen projelerin hiçbirinde Matrosov sisteminin otomatik frenlerinin normal bir uygulaması yoktur veya olmayacaktır.
Çok uzak olmayan 2008 yılında başka bir proje ortaya çıktı - Vyacheslav Usov tarafından geliştirilmiştir. Proje, başlangıçta Rus hatlı demiryolu taşıtlarına odaklanırken yukarıda belirtilen eksiklikleri dikkate alması ve düzeltmesi açısından dikkat çekicidir. Ancak büyük bir "ama" var - proje tescilli ve kapalı, mimari olarak kendi demiryolu araçlarının tanıtımına izin vermiyor.
Demiryolu konusuna 2007 yılında çalışmaya başladığımda ben de geldim. , araştırma görevlisi olarak ve 2008 yılında doktora tezini savunduktan sonra kıdemli araştırma görevlisi olarak görev yaptı. O dönemde demiryolu simülasyon oyunları alanındaki en son başarılarla tanışmam o zaman oldu. Ve gördüklerim hoşuma gitmedi ve ZDSimulator projesi o zamanlar mevcut değildi. Daha sonra demiryolu taşıtlarının dinamiklerinden büyülenerek Rostov Devlet Ulaştırma Üniversitesi'ne geldim () bir yük treninin fren dinamiği üzerine doktora tezi konusu ile. Bugün üniversitemiz için demiryolu taşımacılığı eğitim komplekslerinin geliştirilmesine liderlik ediyorum ve Çekişli Demiryolu Araçları Departmanında uzmanlık disiplinleri öğretiyorum.
Yukarıdakilerin tümü ile bağlantılı olarak, eklenti geliştiricisinin demiryolu taşıtlarında meydana gelen fiziksel süreçler üzerinde tam kontrol sahibi olmasını sağlayacak bir simülatör oluşturma fikri ortaya çıktı. Bir zamanlar R-7'yi temel alan fırlatma araçları ailesi şeklinde bir eklenti geliştirdiğim Orbiter uzay simülatörüne benzer. Bir yıl önce bu işe başladım ve kendimi bu işe adadım. 26 Aralık 2018 burada ışığı gördü .
Çalışmalarım meraklılar tarafından fark edildi ve ZDsimulator için görsel içerik yaratıcısı olan demiryolu işletmecileri çevrelerinde iyi tanındı. projenin daha da geliştirilmesi için bana yardım ve işbirliği teklif etti. Daha sonra başka bir geliştirici aramıza katıldı - ), ZDsimulator için rota oluşturucu. İşbirliğimiz bizi ilk yayınımıza yönlendirdi. Video, oyunun ilk sürümü için nasıl göründüğüne dair bazı genel bakışları gösteriyor

RRS Simülatörünün Özellikleri
Her şeyden önce, açık kaynaklı bir yazılım mimarisine sahip. Simülatörün kodu açık kaynaklı olmakla kalmıyor, aynı zamanda üçüncü taraf eklenti geliştiricilerine yönelik bir API ve SDK da bulunuyor. Giriş engeli oldukça yüksek; temel C++ geliştirme becerileri gerekiyor. Simülatör, GCC derleyicisi ve işletim sistemi için MinGW varyantı kullanılarak C++ dilinde yazılmıştır. WindowsAyrıca, geliştiricinin Qt çerçevesine aşina olması tavsiye edilir, çünkü birçok kavramı oyun mimarisinin temelini oluşturmaktadır.
Ancak gerekli özen ve istekle bu proje, eklenti geliştiricisine çok büyük fırsatlar sunuyor. Demiryolu taşıtları, dinamik kütüphanelere dayalı modüller şeklinde uygulanır. Simülatördeki ana yapısal eleman bir demiryolu taşıtı birimidirveya mobil birim (MU) - bir araba (kendinden tahrikli olmayan veya çok birimli bir trenin parçası olarak) veya bir lokomotifin bir bölümü. API, tekerlek setlerinin açısal hızının yanı sıra kontak ağındaki voltaj ve akım türü gibi harici parametrelerin alınmasına yanıt olarak PE tekerlek setlerine uygulanan torkun ayarlanmasını mümkün kılar. Simülatör başka hiçbir şey bilmiyor ve bilmek istemiyor, bu da dahili ekipmanın fiziğini belirli bir lokomotif veya arabanın geliştiricisinin vicdanına bırakıyor.
Bu kadar nispeten düşük seviyeli bir yaklaşımın, lokomotif devresinin en küçük nüanslarının uygulanmasını mümkün kıldığını tahmin etmek zor değil. Ek olarak, simülatör kiti, yerel demiryolu araçlarına monte edilmiş bir dizi standart ekipmanı içerir: sürücü treni vinci dönüşümü. No. 395, hava distribütörü durumu. No. 242, yardımcı fren valfinin durumu. No. 254 ve fren ekipmanının diğer elemanları. Eklentinin geliştiricisinin yalnızca bu elemanları belirli bir lokomotif veya arabanın pnömatik devresine bağlaması gerekir. Ayrıca kendi donanım birimlerinizi oluşturmanız için bir API bulunmaktadır.
Mimari olarak RRS, iki ana sürecin etkileşimi üzerine inşa edilmiştir.
- simülatör — fiziksel tren dinamiği motoru TrainEngine 2. Birçok dış faktörü dikkate alarak tren hareketinin fiziğini uygular, hareketli birimlerin bağlantı cihazları aracılığıyla etkileşimini dikkate alır, demiryolu araçlarının çalışma fiziğini uygulayan harici modüllerden gelen verileri işler.
- izleyici - bir grafik motoru temelinde oluşturulmuş, tren hareketini görselleştiren bir grafik alt sistemi
Bu alt sistemler, Qt çerçevesinin QSharedMemory sınıfına dayalı olarak uygulanan paylaşılan bellek aracılığıyla birbirleriyle etkileşime girer. İlk demolarda soket tabanlı IPC kullanıldı ve simülatörün bazı parçalarının iyileştirilmesi ve geleceğe yönelik ihtiyaçlar dikkate alınarak gelecekte bu teknolojiye geri dönme planları var. Paylaşılan belleğe geçiş, bir dereceye kadar, artık geçerliliğini yitirmiş, zorunlu bir önlemdi.
Nüansları açıklamayacağım - bu projenin gelişimindeki değişimlerin çoğu, kaynak hakkındaki yayınlarımda zaten özetlenmiştir, özellikle oldukça kapsamlı bir bilgim var. Bu proje üzerinde çalışma pratiğinden ortaya çıkan.
Projedeki her şey istediğimiz kadar düzgün değil. Özellikle grafik alt sistemi, görüntü oluşturma kalitesi açısından mükemmel olmaktan uzaktır ve simülasyonun performansı arzu edilenden çok uzaktır. Bu sürümün tek bir amacı var: demiryolu taşımacılığı meraklıları topluluğuna projeyi tanıtmak, yeteneklerini özetlemek ve son olarak eklenti geliştiricileri için gelişmiş bir API ile açık, platformlar arası bir demiryolu simülatörü oluşturmak.
Beklentiler
Beklentiler size, yani sevgili gelecekteki kullanıcılarımıza ve geliştiricilerimize bağlıdır. Proje açık ve mevcut simülatörü nereden indirebilirsiniz bileşimi sürekli olarak yenilenecek. Var proje, ve , en ayrıntılı tavsiye ve yardımı alabileceğiniz yer.
Teşekkürler!
Kaynak: habr.com
