俄羅斯鐵路模擬器(RRS):首次公開發布

我一直在等待的那一天終於到來了,我終於可以展示這一進展了。 該計畫至少在一年前,即1年2018月XNUMX日開始的 Gtihub 上的 RRS 儲存庫 第一次提交正是這個日期。

羅斯托夫總站的客運列車(可點擊)

俄羅斯鐵路模擬器(RRS):首次公開發布

什麼是 RRS? 這是 1520 毫米軌距機車車輛的開放式跨平台模擬器。 讀者自然會問:“請問,如果有足夠數量的商業和開放的鐵路模擬器,這個項目是做什麼用的?” 對於這個問題的答案,我建議看看貓下面

專案歷史

從前,2001年,它出版了 微軟火車模擬器(MSTS),這在我國催生了一個巨大的鐵路沸騰社區。 在這個項目存在的幾年裡(直到微軟放棄它,轉向更有趣的事情,例如諾基亞的破產等),該項目獲得了為其創建的大量附加內容:路線、機車車輛、場景。

基於MSTS,隨後創建了許多其他項目,例如 開放式鐵路, RTrainSim (RTS) 以及其他添加物和衍生物。 商業項目也出現了,例如著名的 火車茲。 一切都會好起來的,但許多鐵路運輸愛好者出於相當客觀的原因對這些產品不滿意——它們根本沒有反映後蘇聯時期運營和開發的國內機車車輛的具體情況。 當考慮如何實施火車煞車時,這一點尤其嚴重 - 列出的項目都沒有或不會正常實施 Matrosov 系統的自動煞車。

在不遠的2008年,另一個項目出現了—— ZD模擬器,由維亞切斯拉夫·烏索夫開發。 該項目的非凡之處在於它考慮並糾正了上述缺點,同時最初專注於俄羅斯軌距機車車輛。 但有一個很大的“但是”——該項目是專有且封閉的,從架構上不允許引入自己的機車車輛。

我自己是在 2007 年開始接觸鐵路話題的。 韋爾尼股份公司,研究員,2008年博士論文答辯後,晉升資深研究員。 也就是在那個時候,我了解到了當時鐵路模擬遊戲領域的最新成果。 我不喜歡我所看到的,而且當時 ZDSimulator 專案還不存在。 後來,我對機車車輛的動態著迷,來到了羅斯托夫國立交通大學(RGUPS),其博士論文的主題是貨運列車的煞車動力學。 如今,我領導我們大學鐵路運輸培訓中心的開發,並在牽引機車車輛系教授專業學科。

與上述所有相關,產生了創建模擬器的想法,該模擬器將允許其附加組件的開發人員完全控制機車車輛中發生的物理過程。 與 Orbiter 太空模擬器類似,我曾經為其開發過一個基於 R-7 的運載火箭系列的附加組件。 一年前,我開始了這項工作,全心投入其中。 26年2018月XNUMX日在這裡看到了光明 該技術演示.

我的作品受到了愛好者的關注,並在鐵路模擬圈中廣為人知,ZDsimulator 的視覺內容創作者 比留科夫 (Romych Russian Railways) 為我該計畫的進一步發展提供了幫助和合作。 後來另一位開發者加入了我們—— 亞歷山大‧米先科 (Ulovskii2017),ZDsimulator 的路線創建器。 我們的合作使我們發布了第一個版本。 該影片展示了遊戲首次發佈時的一些概述

RRS模擬器的特點

首先,它是一個開放的軟體架構。 更不用說模擬器程式碼是開放的,還有針對第三方插件開發人員的 API 和 SDK。 入門門檻相當高——需要基本的 C++ 開發技能。 模擬器是在其中編寫的,使用 GCC 編譯器及其適用於 Windows 作業系統的 MinGW 變體。 此外,建議開發人員熟悉 Qt 框架,因為它的許多概念都是遊戲架構的基礎。

然而,透過盡職調查和願望,該專案為附加開發人員提供了巨大的機會。 機車車輛以基於動態庫的模組形式實現。 模擬器中的主要結構元素 是機車車輛的單位或移動單元 (MU) - 一輛汽車(非自走式或作為動車組的一部分)或機車的一部分。 API 可以回應接收輪對的角速度以及接觸網路中的電壓和電流類型等外部參數,設定施加到 PE 輪對的扭矩。 模擬器不知道任何其他事情,也不想知道,這將內部設備的物理特性留給了特定機車或汽車的開發人員的良心。

不難猜測,這種相對低級的方法使得實現機車電路的最小細微差別成為可能。 此外,模擬器套件還包括一套安裝在國內機車車輛上的標準配備:駕駛員列車起重機轉換器。 395號,空氣分配器狀況。 242號,輔助煞車閥狀況。 254號等煞車設備元件。 附加組件的開發人員只需將這些元件連接到特定機車或汽車的氣動迴路。 此外,還有一個用於建立您自己的硬體單元的 API。

從架構上來說,RRS 建立在兩個主要流程的互動之上

  • 模擬器 — 物理列車動力學引擎 TrainEngine 2. 實現列車運動的物理原理,考慮許多外部因素,考慮移動單元通過耦合裝置的相互作用,處理來自實現機車車輛設備操作物理原理的外部模組的數據
  • 觀眾 — 基於圖形引擎建構的可視化列車運動的圖形子系統 開放場景圖

這些子系統透過共享記憶體相互交互,基於Qt框架的QSharedMemory類別實作。 第一個演示使用了基於套接字的IPC,考慮到模擬器某些部分的細化和著眼於未來的需求,並計劃在未來回歸這項技術。 向共享記憶體的過渡在某種程度上是一種強制措施,但已經失去了作用。

我不會描述細微差別 - 該項目發展的許多變化已經在我的資源出版物中概述,特別是,我有相當廣泛的 OpenSceneGraph 引擎的一系列教學課程,它源自於該專案的工作實踐。

專案中的一切並非都如我們所希望的那樣順利。 特別是,圖形子系統在渲染品質方面還遠未達到完美,而且模擬卡的效能還有很多不足之處。 此版本有一個目標 - 向鐵路運輸愛好者社區介紹該項目,概述其功能,並最終為附加開發人員創建一個帶有高級 API 的開放式跨平台鐵路模擬器。

前途

前景取決於您,我們親愛的未來用戶和開發人員。 該項目已開放並存在 官方網站您可以從哪裡下載模擬器 文檔,其成分會不斷補充。 存在 論壇 項目, VK集團YouTube 上的,您可以在這裡獲得最詳細的建議和協助。

謝謝你的關注!

來源: www.habr.com

添加評論