我一直在等待的那一天终于到来了,我终于可以展示这一进展了。 该项目至少是在一年前,即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 的开放式跨平台铁路模拟器。
前途
前景取决于您,我们亲爱的未来用户和开发人员。 该项目已开放并存在
谢谢你!
来源: habr.com