Trình mô phỏng Đường sắt Nga (RRS): phát hành công khai đầu tiên

Ngày mà tôi chờ đợi đã đến khi cuối cùng tôi có thể trình bày diễn biến này. Dự án đã được bắt đầu cách đây đúng một năm, ít nhất là vào ngày 1 tháng 2018 năm XNUMX Kho RRS trên Gtihub cam kết đầu tiên có chính xác ngày này.

Tàu chở khách tại ga chính Rostov (có thể nhấp)

Trình mô phỏng Đường sắt Nga (RRS): phát hành công khai đầu tiên

RRS là gì? Đây là một mô phỏng đa nền tảng mở của toa xe khổ 1520 mm. Người đọc đương nhiên sẽ đặt câu hỏi: “Xin lỗi, dự án này dùng để làm gì, nếu có đủ số lượng thiết bị mô phỏng đường sắt, cả thương mại và mở?” Để có câu trả lời cho câu hỏi này, tôi khuyên bạn nên nhìn vào bên dưới con mèo

Lịch sử dự án

Ngày xửa ngày xưa, vào năm 2001, nó đã được xuất bản Trình mô phỏng tàu Microsoft (MSTS), điều này đã tạo nên một cộng đồng lớn những người mô phỏng đường sắt ở nước ta. Trong nhiều năm dự án này tồn tại (cho đến khi Microsoft từ bỏ nó, chuyển sang những điều thú vị hơn cho nó, chẳng hạn như sự phá sản của Nokia, v.v.), dự án đã có được rất nhiều bổ sung được tạo ra cho nó: tuyến đường, đầu máy toa xe, kịch bản.

Dựa trên MSTS, một số dự án khác sau đó đã được tạo ra, chẳng hạn như OpenRails, RTrainSim (RTS) và các bổ sung và dẫn xuất khác. Các dự án thương mại cũng xuất hiện, như dự án nổi tiếng xe lửa. Và mọi thứ sẽ ổn, nhưng nhiều người hâm mộ vận tải đường sắt không hài lòng với những sản phẩm này vì những lý do khá khách quan - chúng không hề phản ánh đặc thù của đầu máy toa xe nội địa được vận hành và phát triển trong không gian hậu Xô Viết. Điều này đặc biệt nghiêm trọng khi xem xét cách triển khai phanh tàu - không có dự án nào trong số các dự án được liệt kê đã hoặc sẽ triển khai bình thường hệ thống phanh tự động của hệ thống Matrosov.

Vào năm 2008 không xa, một dự án khác đã xuất hiện - ZDSimulator, được phát triển bởi Vyacheslav Usov. Dự án đáng chú ý ở chỗ nó đã tính đến và khắc phục những tồn tại nêu trên, đồng thời bước đầu tập trung vào đầu máy toa xe khổ của Nga. Nhưng có một chữ “nhưng” lớn - dự án này là độc quyền và đóng cửa, về mặt kiến ​​trúc không cho phép đưa đầu máy toa xe của riêng mình vào.

Bản thân tôi đến với chủ đề đường sắt vào năm 2007, khi tôi bắt đầu làm việc tại CÔNG TY CỔ PHẦN VELNII, với tư cách là nghiên cứu viên và sau khi bảo vệ luận án Tiến sĩ vào năm 2008, với tư cách là nghiên cứu viên cấp cao. Đó là lúc tôi làm quen với những thành tựu mới nhất trong lĩnh vực game mô phỏng đường sắt lúc bấy giờ. Và tôi không thích những gì tôi thấy và dự án ZDSimulator chưa tồn tại vào thời điểm đó. Sau đó, bị mê hoặc bởi động lực học của đầu máy toa xe, tôi đã đến Đại học Giao thông Vận tải Bang Rostov (RGUPS) với đề tài luận án tiến sĩ về động lực phanh của tàu chở hàng. Hôm nay, tôi lãnh đạo việc phát triển các tổ hợp đào tạo vận tải đường sắt cho trường đại học của chúng tôi và giảng dạy các môn chuyên ngành tại Khoa Đầu máy kéo.

Liên quan đến tất cả những điều trên, nảy sinh ý tưởng tạo ra một trình mô phỏng cho phép nhà phát triển tiện ích bổ sung có toàn quyền kiểm soát các quá trình vật lý xảy ra trong đầu máy toa xe. Tương tự như trình mô phỏng không gian Orbiter, mà tôi đã từng phát triển một phần bổ sung dưới dạng một dòng phương tiện phóng dựa trên R-7. Một năm trước, tôi đã đảm nhận công việc này và cống hiến hết mình cho nó. Ngày 26/2018/XNUMX đã thấy ánh sáng ở đây bản demo công nghệ này.

Công việc của tôi đã được những người đam mê chú ý và nổi tiếng trong giới mô phỏng đường sắt, người tạo nội dung trực quan cho ZDsimulator Roman Biryukov (Romych Đường sắt Nga) đã đề nghị giúp đỡ và hợp tác với tôi để phát triển hơn nữa dự án. Sau đó, một nhà phát triển khác đã tham gia cùng chúng tôi - Alexander Mishchenko (Ulovskii2017), trình tạo tuyến đường cho ZDsimulator. Sự hợp tác của chúng tôi đã đưa chúng tôi đến bản phát hành đầu tiên. Video này hiển thị một số thông tin tổng quan về giao diện của trò chơi trong lần phát hành đầu tiên

Các tính năng của Trình mô phỏng RRS

Trước hết, nó là một kiến ​​trúc phần mềm mở. Chưa kể đến việc mã giả lập là mở, có API và SDK dành cho các nhà phát triển tiện ích bổ sung của bên thứ ba cho nó. Rào cản gia nhập khá cao - cần có kỹ năng phát triển C++ cơ bản. Trình mô phỏng được viết trong đó, sử dụng trình biên dịch GCC và biến thể MinGW của nó dành cho hệ điều hành Windows. Ngoài ra, nhà phát triển nên làm quen với khung Qt vì nhiều khái niệm của nó làm nền tảng cho kiến ​​trúc của trò chơi.

Tuy nhiên, với sự siêng năng và mong muốn, dự án này mở ra cơ hội to lớn cho nhà phát triển tiện ích bổ sung. Đầu máy toa xe được triển khai dưới dạng module dựa trên thư viện động. Thành phần cấu trúc chính trong trình mô phỏng là đơn vị đầu máy toa xe, hoặc thiết bị di động (MU) - một ô tô (không tự hành hoặc là một phần của đoàn tàu nhiều đơn vị) hoặc một bộ phận của đầu máy xe lửa. API cho phép thiết lập mô-men xoắn áp dụng cho bộ bánh xe PE, để đáp ứng việc nhận tốc độ góc của bộ bánh xe, cũng như các thông số bên ngoài, chẳng hạn như điện áp và loại dòng điện trong mạng tiếp xúc. Trình mô phỏng không biết bất cứ điều gì khác và không muốn biết, điều này khiến cho tính chất vật lý của thiết bị bên trong phụ thuộc vào lương tâm của nhà phát triển một đầu máy hoặc ô tô cụ thể.

Không khó để đoán rằng cách tiếp cận ở mức độ tương đối thấp như vậy có thể thực hiện được những sắc thái nhỏ nhất của mạch đầu máy. Ngoài ra, bộ mô phỏng còn bao gồm một bộ thiết bị tiêu chuẩn được lắp đặt trên toa xe trong nước: tàu điều khiển cẩu conv. Số 395, tình trạng bộ phân phối khí. Số 242, tình trạng van phanh phụ. Số 254 và các bộ phận khác của thiết bị phanh. Nhà phát triển tiện ích bổ sung chỉ cần kết nối các phần tử này vào mạch khí nén của đầu máy hoặc ô tô cụ thể. Ngoài ra, còn có API để tạo các đơn vị phần cứng của riêng bạn.

Về mặt kiến ​​trúc, RRS được xây dựng dựa trên sự tương tác của hai quy trình chính

  • mô phỏng — động cơ động lực tàu vật lý TrainEngine 2. Thực hiện tính chất vật lý của chuyển động của tàu, có tính đến nhiều yếu tố bên ngoài, có tính đến sự tương tác của các bộ phận chuyển động thông qua các thiết bị ghép nối, xử lý dữ liệu đến từ các mô-đun bên ngoài thực hiện tính chất vật lý vận hành của thiết bị đầu máy toa xe
  • xem - một hệ thống con đồ họa trực quan hóa chuyển động của tàu, được xây dựng trên cơ sở công cụ đồ họa OpenSceneGraph

Các hệ thống con này tương tác với nhau thông qua bộ nhớ dùng chung, được triển khai dựa trên lớp QSharedMemory của khung Qt. Các bản demo đầu tiên sử dụng IPC dựa trên socket và có kế hoạch quay trở lại công nghệ này trong tương lai, có tính đến việc tinh chỉnh một số bộ phận của trình mô phỏng và cần hướng tới tương lai. Việc chuyển đổi sang bộ nhớ dùng chung ở một mức độ nào đó là một biện pháp bắt buộc đã không còn hữu dụng nữa.

Tôi sẽ không mô tả các sắc thái - nhiều thăng trầm trong quá trình phát triển dự án này đã được nêu trong các ấn phẩm của tôi về tài nguyên, đặc biệt, tôi có một cái nhìn khá sâu rộng một loạt các hướng dẫn về công cụ OpenSceneGraph, phát triển từ thực tiễn làm việc trong dự án này.

Không phải mọi thứ trong dự án đều suôn sẻ như chúng ta mong muốn. Đặc biệt, hệ thống con đồ họa còn lâu mới hoàn hảo về chất lượng hiển thị và hiệu suất của sim còn nhiều điều chưa được mong đợi. Bản phát hành này có một mục tiêu - giới thiệu dự án với cộng đồng những người đam mê vận tải đường sắt, phác thảo các khả năng của nó và cuối cùng tạo ra một trình mô phỏng đường sắt đa nền tảng, mở với API nâng cao dành cho các nhà phát triển tiện ích bổ sung.

Triển vọng

Triển vọng phụ thuộc vào bạn, những người dùng và nhà phát triển tương lai thân yêu của chúng tôi. Dự án đang mở và tồn tại trang web chính thứcnơi bạn có thể tải xuống trình mô phỏng, từ tài liệu, thành phần của nó sẽ được bổ sung liên tục. tồn tại форум dự án, nhóm VKKênh Youtube, nơi bạn có thể nhận được lời khuyên và hỗ trợ chi tiết nhất.

Cảm ơn bạn!

Nguồn: www.habr.com

Thêm một lời nhận xét