俄罗斯铁路模拟器(RRS):首次公开发布

期待已久的日子已经来临,我终于可以提出这一进展。 该项目恰好在一年前启动,至少在Gtihub的RRS存储库中于 2018年9月1日启动,首次提交的日期是这样。

罗斯托夫格拉夫尼车站的旅客列车(可点击)



什么是RRS? 这是一个1520毫米规格机车车辆的开放式跨平台模拟器。 读者自然会问一个问题:“对不起,如果有足够的商用和开放式铁路模拟器,为什么需要这个项目?” 为了回答这个问题,我建议在猫下看

项目历史


曾几何时,在2001年, Microsoft Train Simulator(MSTS)看到了曙光,在我们的国家催生了庞大的铁路沸腾社区。 在这个项目持续了数年的时间里(直到微软放弃了它,为它做更多有趣的事情,例如诺基亚破产等),该项目才发展成为它带来的大量附加项目:路线,机车车辆,方案。

随后,基于MSTS,创建了许多其他项目,例如OpenRailsRTrainSim(RTS)和其他附加组件和派生类。 商业项目也已经出现,例如著名的Trainz 。 一切都会好起来的,但出于相当客观的原因,许多铁路运输爱好者对这些产品并不满意-它们根本无法反映出在后苏联时期运营和发展的国内机车车辆的具体情况。 在查看火车制动器的实施方式时,这一点尤其严重-在列出的所有项目中,没有并且也不会正常实施Matrosov系统的自动制动器。

由Vyacheslav Usov开发的ZDSimulator已于 2008年关闭。 该项目的显着之处在于,它首先考虑了俄罗斯的轨距,然后考虑并纠正了上述缺陷。 但是有一个很大的“但是”-该项目是专有的并且是封闭的,在架构上不允许引入自己的机车车辆。

我本人是2007年进入铁路话题的,当时我开始担任VELNII OJSC的研究员,在2008年为论文辩护后,我成为了高级研究员。 然后我熟悉了当时在铁路模拟游戏领域的最新成就。 而且我所看到的,我不喜欢,当时的ZDSimulator项目不存在。 后来,我着迷于机车车辆的动力学,来到罗斯托夫州立交通大学( RGUPS )攻读了有关货运列车制动动力学的博士学位论文。 迄今为止,我领导着我们大学的铁路运输火车模拟器的开发,并在机车车辆系教授轮廓学科。

结合以上所有内容,出现了创建一个模拟器的想法,该模拟器将使附加产品的开发人员能够完全控制机车车辆中发生的物理过程。 类似于Orbiter空间模拟器,我曾经为此开发了一种基于P-7的运载火箭系列的附加装置。 一年前,我开始从事这项工作,并一头扎进去。 该技术演示于 2018年12月26日发布

我的作品受到发烧友的关注, ZDsimulator视觉内容的创建者Roman Biryukov(Romich RZDUZ)在铁路斜领域广为人知,为我在项目的进一步发展中提供了帮助和合作。 后来,另一位开发人员加入了我们-ZDsimulator的路线创建者Alexander Mishchenko(Ulovskii2017 )。 我们的合作使我们发布了第一版。 在视频上-游戏首次发布时的外观概述


RRS模拟器功能


首先,它是一个开放的软件体系结构。 更不用说模拟器代码是开放的,还有一个针对第三方插件开发人员的API和SDK。 入门门槛很高-您需要基本的C ++开发技能。 该模拟器是使用GCC编译器及其Windows操作系统的MinGW版本专门编写的。 另外,由于Qt框架中的许多概念是游戏体系结构的核心,因此希望将开发人员介绍给Qt框架。

但是,由于尽职调查和渴望,该项目为附加开发人员带来了巨大的机会。 机车车辆以基于动态库的模块形式实现。 模拟器中的主要结构元素是机车车辆或移动单元(PE)-轿厢(非自行式或作为火车车厢的一部分)或机车部分。 API使得可以响应于接收到车​​轮对的角速度以及外部参数(例如电压和接触网络中的电流类型)来设置施加到PE车轮对的扭矩。 模拟器一无所知,也不想知道,这使内部设备的运行物理学取决于特定的机车或汽车的开发商。

很容易猜到,这种相对较低级别的方法可以实现机车电路的最小细微差别。 此外,仿真器套件还包括一套安装在家用机车车辆上的标准设备:驾驶员转换设备的火车起重机。 395号,空气分配器转换 242号,辅助制动阀 254号及其他制动设备要素。 附加开发人员只需要将这些元件连接到特定机车或汽车的气动回路中即可。 此外,还有一个用于创建自己的设备块的API。

在体系结构上,RRS建立在两个主要过程的交互基础上

  • 仿真器是TrainEngine 2火车动力学的物理引擎,它在考虑到许多外部因素的情况下实现了火车运动的物理过程,并考虑了通过耦合器的移动单元之间的相互作用,处理了来自实现机车车辆设备物理过程的外部模块的数据
  • 查看器 -基于图形引擎OpenSceneGraph构建的可视化子系统,用于实现列车运行的可视化

这些子系统通过基于Qt框架的QSharedMemory类实现的共享内存相互交互。 第一个演示使用基于套接字的IPC,并且由于模拟器的某些部分已经完成并且着眼于未来,因此计划在将来返回到该技术。 向共享内存的过渡在某种程度上是一种过时的强制措施。

我不会描述细微差别-我在资源上的出版物中已经描述了该项目开发的许多起伏,特别是我有一系列关于OpenSceneGraph引擎的教程 ,这些教程只是从从事该项目的实践中发展而来的。

在项目中,并非所有事情都像我们想要的那样顺利。 特别是,图形子系统在渲染质量上还远远不够完美,而SIM卡的性能还有很多不足之处。 此版本的目标是-使铁路运输爱好者社区熟悉该项目,概述其功能,并最终为附加开发人员创建具有高级API的开放式,跨平台的铁路模拟器。

前景展望


前景取决于您,我们亲爱的未来用户和开发人员。 该项目是开放的,有一个官方站点可在其中下载模拟器以及相关文档 ,其文档将不断更新。 有一个项目论坛一个VK组一个YouTube频道 ,您可以在其中获得最详细的建议和帮助。

感谢您的关注!

Source: https://habr.com/ru/post/zh-CN465689/


All Articles