محاكي السكك الحديدية الروسية (RRS): الإصدار العام الأول

لقد وصل اليوم الذي كنت أنتظره عندما أتمكن أخيرًا من تقديم هذا التطور. بدأ المشروع منذ عام بالضبط، في 1 سبتمبر 2018، على الأقل مستودعات RRS على Gtihub الالتزام الأول له هذا التاريخ بالضبط.

قطار الركاب في محطة روستوف الرئيسية (قابل للنقر)

محاكي السكك الحديدية الروسية (RRS): الإصدار العام الأول

ما هو RRS؟ هذا عبارة عن جهاز محاكاة مفتوح عبر الأنظمة الأساسية لعربة قياس 1520 مم. من الطبيعي أن يطرح القارئ السؤال التالي: "معذرة، ما الهدف من هذا المشروع، إذا كان هناك عدد كافٍ من محاكيات السكك الحديدية، التجارية والمفتوحة؟" للإجابة على هذا السؤال أقترح النظر تحت القطة

تاريخ المشروع

ذات مرة، في عام 2001، تم نشره محاكي قطار مايكروسوفت (MSTS)مما أدى إلى ظهور مجتمع ضخم من السكك الحديدية في بلادنا. على مدار عدة سنوات من وجود هذا المشروع (إلى أن تخلت عنه شركة Microsoft، وانتقلت إلى أشياء أكثر إثارة للاهتمام بالنسبة له، مثل إفلاس شركة Nokia، وما إلى ذلك)، اكتسب المشروع عددًا كبيرًا من الإضافات التي تم إنشاؤها له: الطرق، والعربات المتحركة، سيناريوهات.

بناءً على MSTS، تم إنشاء عدد من المشاريع الأخرى لاحقًا، مثل أوبن ريلز, ار ترين سيم (RTS) وغيرها من الإضافات والمشتقات. كما ظهرت مشاريع تجارية مثل المشروع الشهير ترينز. وسيكون كل شيء على ما يرام، لكن العديد من محبي النقل بالسكك الحديدية غير راضين عن هذه المنتجات لأسباب موضوعية تمامًا - فهي لا تعكس بأي حال من الأحوال تفاصيل المعدات الدارجة المحلية التي يتم تشغيلها وتطويرها في منطقة ما بعد الاتحاد السوفيتي. يكون هذا حادًا بشكل خاص عند النظر في كيفية تنفيذ مكابح القطار - لم يكن لدى أي من المشاريع المدرجة ولن يكون لها تطبيق عادي للمكابح الأوتوماتيكية لنظام ماتروسوف.

وفي عام 2008 غير البعيد، ظهر مشروع آخر - محاكي ZDSتم تطويره بواسطة فياتشيسلاف أوسوف. المشروع رائع لأنه يأخذ في الاعتبار ويصحح أوجه القصور المذكورة أعلاه، مع التركيز في البداية على المعدات الدارجة الروسية. ولكن هناك "لكن" واحد كبير - المشروع مملوك ومغلق ولا يسمح من الناحية المعمارية بإدخال المعدات الدارجة الخاصة به.

لقد جئت بنفسي إلى موضوع السكك الحديدية في عام 2007، عندما بدأت العمل فيه هيئة الأوراق المالية فيلنيكزميل باحث، وبعد مناقشة رسالة الدكتوراه في عام 2008، كزميل باحث أول. عندها تعرفت على آخر الإنجازات في مجال ألعاب محاكاة السكك الحديدية في ذلك الوقت. ولم يعجبني ما رأيته، ولم يكن مشروع ZDSimulator موجودًا في ذلك الوقت. في وقت لاحق، مفتونًا بديناميكيات المعدات الدارجة، جئت إلى جامعة ولاية روستوف للنقل (RGUPS) بموضوع أطروحة دكتوراه عن ديناميكيات الكبح في قطار الشحن. أقود اليوم عملية تطوير مجمعات التدريب على النقل بالسكك الحديدية لجامعتنا وأقوم بتدريس التخصصات المتخصصة في قسم عربات الجر.

فيما يتعلق بكل ما سبق، نشأت فكرة إنشاء جهاز محاكاة يسمح لمطور الوظيفة الإضافية بالتحكم الكامل في العمليات المادية التي تحدث في المعدات الدارجة. على غرار جهاز محاكاة الفضاء Orbiter، الذي طورت له ذات مرة إضافة على شكل عائلة من مركبات الإطلاق تعتمد على R-7. قبل عام بدأت هذا العمل وألقيت بنفسي فيه. لقد رأى يوم 26 ديسمبر 2018 النور هنا هذا العرض التكنولوجي.

لقد نال عملي إعجاب المتحمسين، ومعروفًا في دوائر السكك الحديدية، وهو منشئ المحتوى المرئي لـ ZDsimulator رومان بيريوكوف (شركة روميتش للسكك الحديدية الروسية) عرضت علي المساعدة والتعاون في مواصلة تطوير المشروع. لاحقًا انضم إلينا مطور آخر - ألكسندر ميشينكو (أولوفسكي 2017)، منشئ المسار لـ ZDsimulator. قادنا تعاوننا إلى إصدارنا الأول. يُظهر الفيديو نظرة عامة حول كيفية ظهور اللعبة في إصدارها الأول

ميزات محاكي RRS

بادئ ذي بدء، إنها بنية برمجية مفتوحة. ناهيك عن حقيقة أن رمز المحاكاة مفتوح، فهناك API و SDK يستهدف مطوري الوظائف الإضافية التابعة لجهات خارجية. حاجز الدخول مرتفع جدًا - مهارات تطوير C++ الأساسية مطلوبة. تمت كتابة جهاز المحاكاة فيه باستخدام المترجم الخليجي ومتغير MinGW الخاص به لنظام التشغيل Windows. بالإضافة إلى ذلك، من المستحسن أن يكون المطور على دراية بإطار عمل Qt، نظرًا لأن العديد من مفاهيمه تكمن وراء بنية اللعبة.

ومع ذلك، مع بذل العناية الواجبة والرغبة، يفتح هذا المشروع فرصًا هائلة لمطور الإضافات. يتم تنفيذ المخزون المتداول في شكل وحدات تعتمد على المكتبات الديناميكية. العنصر الهيكلي الرئيسي في جهاز المحاكاة هي وحدة من المخزون المتداولأو وحدة متنقلة (MU) - سيارة (غير ذاتية الدفع أو كجزء من قطار متعدد الوحدات) أو جزء من قاطرة. تتيح واجهة برمجة التطبيقات (API) ضبط عزم الدوران المطبق على مجموعات عجلات PE، استجابةً لاستقبال السرعة الزاوية لمجموعات العجلات، بالإضافة إلى المعلمات الخارجية، مثل الجهد الكهربي ونوع التيار في شبكة الاتصال. لا يعرف جهاز المحاكاة أي شيء آخر ولا يريد أن يعرف، مما يترك فيزياء كيفية عمل المعدات الداخلية على ضمير مطور قاطرة أو سيارة معينة.

ليس من الصعب تخمين أن مثل هذا النهج المنخفض المستوى نسبيًا يجعل من الممكن تنفيذ أصغر الفروق الدقيقة في دائرة القاطرة. بالإضافة إلى ذلك، تشتمل مجموعة أدوات المحاكاة على مجموعة من المعدات القياسية المثبتة على عربات السكك الحديدية المحلية: رافعة قطار السائق. رقم 395 مكيف موزع هواء. رقم 242 حالة صمام الفرامل المساعد. رقم 254 وعناصر أخرى من معدات الفرامل. يحتاج مطور الوظيفة الإضافية فقط إلى توصيل هذه العناصر بالدائرة الهوائية لقاطرة أو سيارة معينة. بالإضافة إلى ذلك، هناك واجهة برمجة التطبيقات (API) لإنشاء وحدات الأجهزة الخاصة بك.

من الناحية المعمارية، تم بناء RRS على التفاعل بين عمليتين رئيسيتين

  • محاكاة - محرك ديناميكيات القطار المادي TrainEngine 2. ينفذ فيزياء حركة القطار، مع مراعاة العديد من العوامل الخارجية، مع مراعاة تفاعل الوحدات المتحركة من خلال أجهزة التوصيل، ومعالجة البيانات الواردة من الوحدات الخارجية التي تنفذ فيزياء تشغيل المعدات الدارجة
  • مشاهد — نظام فرعي رسومي يصور حركة القطار، مبني على أساس محرك رسومي أوبنسينغراف

تتفاعل هذه الأنظمة الفرعية مع بعضها البعض من خلال الذاكرة المشتركة، والتي يتم تنفيذها بناءً على فئة QSharedMemory في إطار عمل Qt. استخدمت العروض التوضيحية الأولى IPC القائم على المقبس، وهناك خطط للعودة إلى هذه التقنية في المستقبل، مع مراعاة تحسين بعض أجزاء جهاز المحاكاة واحتياجاته مع التطلع إلى المستقبل. كان الانتقال إلى الذاكرة المشتركة إلى حد ما إجراءً قسريًا تجاوزت فائدته.

لن أصف الفروق الدقيقة - تم بالفعل تحديد العديد من تقلبات تطوير هذا المشروع في منشوراتي حول المورد، على وجه الخصوص، لدي نطاق واسع إلى حد ما سلسلة من الدروس حول محرك OpenSceneGraph، والتي نشأت من ممارسة العمل في هذا المشروع.

ليس كل شيء في المشروع سلسًا كما نرغب. على وجه الخصوص، النظام الفرعي للرسومات بعيد عن الكمال من حيث جودة العرض، وأداء سيم يترك الكثير مما هو مرغوب فيه. هذا الإصدار له هدف واحد - تعريف مجتمع عشاق النقل بالسكك الحديدية بالمشروع، وتحديد إمكانياته، وأخيرًا إنشاء محاكي سكك حديدية مفتوح ومتعدد المنصات مع واجهة برمجة تطبيقات متقدمة لمطوري الإضافات.

آفاق

تعتمد الآفاق عليك، أيها المستخدمون والمطورون الأعزاء في المستقبل. المشروع مفتوح وموجود الموقع الرسميحيث يمكنك تنزيل جهاز المحاكاة من توثيق، والتي سيتم تجديد تكوينها بشكل مستمر. موجود форум مشروع، مجموعة VKو قناة يوتيوب، حيث يمكنك الحصول على النصائح والمساعدة الأكثر تفصيلاً.

شكرا لك!

المصدر: www.habr.com

إضافة تعليق