我一直在等待的那一天終於到來了,我終於可以展示這一進展了。 該計畫至少在一年前,即1年2018月XNUMX日開始的
羅斯托夫總站的客運列車(可點擊)
什麼是 RRS? 這是 1520 毫米軌距機車車輛的開放式跨平台模擬器。 讀者自然會問:“請問,如果有足夠數量的商業和開放的鐵路模擬器,這個項目是做什麼用的?” 對於這個問題的答案,我建議看看貓下面
專案歷史
從前,2001年,它出版了
基於MSTS,隨後創建了許多其他項目,例如
在不遠的2008年,另一個項目出現了——
我自己是在 2007 年開始接觸鐵路話題的。
與上述所有相關,產生了創建模擬器的想法,該模擬器將允許其附加組件的開發人員完全控制機車車輛中發生的物理過程。 與 Orbiter 太空模擬器類似,我曾經為其開發過一個基於 R-7 的運載火箭系列的附加組件。 一年前,我開始了這項工作,全心投入其中。 26年2018月XNUMX日在這裡看到了光明
我的作品受到了愛好者的關注,並在鐵路模擬圈中廣為人知,ZDsimulator 的視覺內容創作者
RRS模擬器的特點
首先,它是一個開放的軟體架構。 更不用說模擬器程式碼是開放的,還有針對第三方插件開發人員的 API 和 SDK。 入門門檻相當高——需要基本的 C++ 開發技能。 模擬器是在其中編寫的,使用 GCC 編譯器及其適用於 Windows 作業系統的 MinGW 變體。 此外,建議開發人員熟悉 Qt 框架,因為它的許多概念都是遊戲架構的基礎。
然而,透過盡職調查和願望,該專案為附加開發人員提供了巨大的機會。 機車車輛以基於動態庫的模組形式實現。 模擬器中的主要結構元素 是機車車輛的單位或移動單元 (MU) - 一輛汽車(非自走式或作為動車組的一部分)或機車的一部分。 API 可以回應接收輪對的角速度以及接觸網路中的電壓和電流類型等外部參數,設定施加到 PE 輪對的扭矩。 模擬器不知道任何其他事情,也不想知道,這將內部設備的物理特性留給了特定機車或汽車的開發人員的良心。
不難猜測,這種相對低級的方法使得實現機車電路的最小細微差別成為可能。 此外,模擬器套件還包括一套安裝在國內機車車輛上的標準配備:駕駛員列車起重機轉換器。 395號,空氣分配器狀況。 242號,輔助煞車閥狀況。 254號等煞車設備元件。 附加組件的開發人員只需將這些元件連接到特定機車或汽車的氣動迴路。 此外,還有一個用於建立您自己的硬體單元的 API。
從架構上來說,RRS 建立在兩個主要流程的互動之上
- 模擬器 — 物理列車動力學引擎 TrainEngine 2. 實現列車運動的物理原理,考慮許多外部因素,考慮移動單元通過耦合裝置的相互作用,處理來自實現機車車輛設備操作物理原理的外部模組的數據
- 觀眾 — 基於圖形引擎建構的可視化列車運動的圖形子系統
開放場景圖
這些子系統透過共享記憶體相互交互,基於Qt框架的QSharedMemory類別實作。 第一個演示使用了基於套接字的IPC,考慮到模擬器某些部分的細化和著眼於未來的需求,並計劃在未來回歸這項技術。 向共享記憶體的過渡在某種程度上是一種強制措施,但已經失去了作用。
我不會描述細微差別 - 該項目發展的許多變化已經在我的資源出版物中概述,特別是,我有相當廣泛的
專案中的一切並非都如我們所希望的那樣順利。 特別是,圖形子系統在渲染品質方面還遠未達到完美,而且模擬卡的效能還有很多不足之處。 此版本有一個目標 - 向鐵路運輸愛好者社區介紹該項目,概述其功能,並最終為附加開發人員創建一個帶有高級 API 的開放式跨平台鐵路模擬器。
前途
前景取決於您,我們親愛的未來用戶和開發人員。 該項目已開放並存在
謝謝你的關注!
來源: www.habr.com