روسی ریلوے سمیلیٹر (RRS): پہلی عوامی ریلیز

جس دن کا میں انتظار کر رہا تھا وہ آ گیا ہے جب میں آخر کار اس ترقی کو پیش کر سکوں گا۔ یہ منصوبہ ٹھیک ایک سال پہلے یعنی یکم ستمبر 1 کو شروع ہوا تھا۔ Gtihub پر RRS ذخیرے پہلی کمٹ کی بالکل یہی تاریخ ہے۔

روستوو مین اسٹیشن پر مسافر ٹرین (کلک کے قابل)

روسی ریلوے سمیلیٹر (RRS): پہلی عوامی ریلیز

RRS کیا ہے؟ یہ 1520 ملی میٹر گیج رولنگ اسٹاک کا کھلا کراس پلیٹ فارم سمیلیٹر ہے۔ قارئین فطری طور پر یہ سوال پوچھے گا: "معاف کیجئے گا، یہ پروجیکٹ کس لیے ہے، اگر کافی تعداد میں ریلوے سمیلیٹر ہیں، تجارتی اور کھلے دونوں؟" اس سوال کے جواب کے لیے، میں بلی کے نیچے دیکھنے کا مشورہ دیتا ہوں۔

پروجیکٹ کی تاریخ

ایک دفعہ 2001 میں شائع ہوا۔ مائیکروسافٹ ٹرین سمیلیٹر (MSTS)جس نے ہمارے ملک میں ریلوے سیمروں کی ایک بہت بڑی کمیونٹی کو جنم دیا۔ کئی سالوں میں جب یہ پروجیکٹ موجود تھا (جب تک کہ مائیکروسافٹ نے اسے ترک نہیں کیا، اس کے لیے مزید دلچسپ چیزوں کی طرف بڑھ رہا ہے، جیسے کہ نوکیا کا دیوالیہ ہونا، وغیرہ)، اس پروجیکٹ نے اس کے لیے بنائے گئے بہت سے اضافے حاصل کیے: راستے، رولنگ اسٹاک، منظرنامے

ایم ایس ٹی ایس کی بنیاد پر، بعد میں کئی دوسرے منصوبے بنائے گئے، جیسے اوپن ریلز, RTrainSim (RTS) اور دیگر اضافے اور مشتقات۔ تجارتی منصوبے بھی شائع ہوئے، جیسے کہ مشہور ٹرینز۔. اور سب کچھ ٹھیک ہو جائے گا، لیکن ریلوے ٹرانسپورٹ کے بہت سے شائقین کافی معروضی وجوہات کی بنا پر ان مصنوعات سے مطمئن نہیں ہیں - یہ کسی بھی طرح سے سوویت یونین کے بعد کی جگہ پر چلنے والے اور تیار کیے جانے والے گھریلو رولنگ اسٹاک کی خصوصیات کی عکاسی نہیں کرتے۔ یہ خاص طور پر شدید ہوتا ہے جب یہ دیکھتے ہوئے کہ ٹرین کے بریکوں کو کس طرح لاگو کیا جاتا ہے - درج کردہ منصوبوں میں سے کسی میں بھی میٹروسوو سسٹم کے خودکار بریکوں کا عام نفاذ نہیں ہے اور نہ ہی ہوگا۔

2008 کے اتنے دور نہیں سال میں، ایک اور پروجیکٹ سامنے آیا - ZDSimulator, Vyacheslav Usov کی طرف سے تیار. یہ منصوبہ اس لحاظ سے قابل ذکر ہے کہ یہ اوپر دی گئی خامیوں کو مدنظر رکھتا ہے اور درست کرتا ہے، جبکہ ابتدائی طور پر روسی گیج رولنگ اسٹاک پر توجہ مرکوز کرتا ہے۔ لیکن ایک بڑا "لیکن" ہے - پروجیکٹ ملکیتی اور بند ہے، تعمیراتی طور پر اس کے اپنے رولنگ اسٹاک کو متعارف کرانے کی اجازت نہیں دیتا ہے۔

میں خود 2007 میں ریلوے کے موضوع پر آیا، جب میں نے ریلوے میں کام کرنا شروع کیا۔ جے ایس سی ویلنیایک ریسرچ فیلو کے طور پر، اور 2008 میں اپنے پی ایچ ڈی تھیسس کا دفاع کرنے کے بعد، بطور سینئر ریسرچ فیلو۔ تب ہی میں اس وقت ریلوے سمولیشن گیمز کے میدان میں تازہ ترین کامیابیوں سے واقف ہوا۔ اور مجھے وہ پسند نہیں آیا جو میں نے دیکھا، اور ZDSimulator پروجیکٹ اس وقت موجود نہیں تھا۔ بعد میں، رولنگ اسٹاک کی حرکیات سے متوجہ ہو کر، میں روسٹو سٹیٹ یونیورسٹی آف ٹرانسپورٹ (آر جی یو پی ایس) فریٹ ٹرین کی بریکنگ ڈائنامکس پر ڈاکٹریٹ کے مقالے کے عنوان کے ساتھ۔ آج میں اپنی یونیورسٹی کے لیے ریلوے ٹرانسپورٹ ٹریننگ کمپلیکس کی ترقی کی قیادت کرتا ہوں اور ٹریکشن رولنگ اسٹاک ڈیپارٹمنٹ میں خصوصی مضامین پڑھاتا ہوں۔

مندرجہ بالا سب کے سلسلے میں، ایک سمیلیٹر بنانے کا خیال پیدا ہوا جو اس کے لیے ایک ایڈ آن بنانے والے کو رولنگ اسٹاک میں ہونے والے جسمانی عمل پر مکمل کنٹرول حاصل کرنے کی اجازت دے گا۔ آربیٹر اسپیس سمیلیٹر کی طرح، جس کے لیے میں نے ایک بار R-7 پر مبنی لانچ گاڑیوں کے ایک خاندان کی شکل میں ایک اضافہ تیار کیا تھا۔ ایک سال پہلے میں نے یہ کام لیا اور خود کو اس میں جھونک دیا۔ 26 دسمبر 2018 نے یہاں روشنی دیکھی۔ یہ ٹیکنالوجی ڈیمو.

میرے کام کو شائقین نے دیکھا، اور ZDsimulator کے لیے بصری مواد کے تخلیق کار، ریلوے سمرز کے حلقوں میں معروف رومن بیریوکوف (رومیچ روسی ریلوے) نے مجھے منصوبے کی مزید ترقی میں مدد اور تعاون کی پیشکش کی۔ بعد میں ایک اور ڈویلپر ہمارے ساتھ شامل ہوا۔ الیگزینڈر مشچینکو (Ulovskii2017)، ZDsimulator کے لیے روٹ بنانے والا۔ ہمارے تعاون نے ہمیں اپنی پہلی ریلیز تک پہنچایا۔ ویڈیو میں کچھ جائزہ دکھایا گیا ہے کہ گیم اپنی پہلی ریلیز کے لیے کیسا لگتا ہے۔

آر آر ایس سمیلیٹر کی خصوصیات

سب سے پہلے، یہ ایک کھلا سافٹ ویئر فن تعمیر ہے۔ اس حقیقت کا تذکرہ نہ کرنا کہ سمیلیٹر کوڈ کھلا ہے، ایک API اور SDK ہے جس کا مقصد اس میں تھرڈ پارٹی ایڈ آنز کے ڈویلپرز ہیں۔ داخلے میں رکاوٹ کافی زیادہ ہے - بنیادی C++ ترقی کی مہارتیں درکار ہیں۔ ونڈوز آپریٹنگ سسٹم کے لیے جی سی سی کمپائلر اور اس کے من جی ڈبلیو ویرینٹ کا استعمال کرتے ہوئے اس میں سمیلیٹر لکھا گیا ہے۔ مزید برآں، ڈویلپر کے لیے یہ مشورہ دیا جاتا ہے کہ وہ Qt فریم ورک سے واقف ہوں، کیونکہ اس کے بہت سے تصورات گیم کے فن تعمیر کی بنیاد رکھتے ہیں۔

تاہم، مستعدی اور خواہش کے ساتھ، یہ پروجیکٹ ایڈ آن ڈویلپر کے لیے بے پناہ مواقع کھولتا ہے۔ رولنگ اسٹاک کو متحرک لائبریریوں پر مبنی ماڈیولز کی شکل میں لاگو کیا جاتا ہے۔ سمیلیٹر میں بنیادی ساختی عنصر رولنگ اسٹاک کی اکائی ہے۔، یا موبائل یونٹ (MU) - ایک کار (غیر خود سے چلنے والی یا ایک سے زیادہ یونٹ ٹرین کے حصے کے طور پر) یا لوکوموٹیو کا ایک حصہ۔ API پہیے کے سیٹوں کی کونیی رفتار کے ساتھ ساتھ رابطے کے نیٹ ورک میں وولٹیج اور کرنٹ کی قسم جیسے بیرونی پیرامیٹرز کے جواب میں PE وہیل سیٹ پر لگائے گئے ٹارک کو سیٹ کرنا ممکن بناتا ہے۔ سمیلیٹر کچھ اور نہیں جانتا اور نہ ہی جاننا چاہتا ہے، جو اندرونی آلات کی طبیعیات کو کسی خاص لوکوموٹیو یا کار کے ڈویلپر کے ضمیر پر چھوڑ دیتا ہے۔

یہ اندازہ لگانا مشکل نہیں ہے کہ اس طرح کا نسبتاً کم سطح کا نقطہ نظر لوکوموٹو سرکٹ کی سب سے چھوٹی باریکیوں کو لاگو کرنا ممکن بناتا ہے۔ اس کے علاوہ، سمیلیٹر کٹ میں گھریلو رولنگ اسٹاک پر نصب معیاری آلات کا ایک سیٹ شامل ہے: ڈرائیور کی ٹرین کرین کی تبدیلی۔ نمبر 395، ایئر ڈسٹری بیوٹر کی حالت۔ نمبر 242، معاون بریک والو کی حالت۔ نمبر 254 اور بریک آلات کے دیگر عناصر۔ ایڈ آن کے ڈویلپر کو صرف ان عناصر کو کسی مخصوص لوکوموٹیو یا کار کے نیومیٹک سرکٹ سے جوڑنے کی ضرورت ہوتی ہے۔ اس کے علاوہ، آپ کے اپنے ہارڈویئر یونٹس بنانے کے لیے ایک API موجود ہے۔

آرکیٹیکچرل طور پر، آر آر ایس دو اہم عملوں کے تعامل پر بنایا گیا ہے۔

  • سمیلیٹر — فزیکل ٹرین ڈائنامکس انجن TrainEngine 2. ٹرین کی نقل و حرکت کی طبیعیات کو لاگو کرتا ہے، بہت سے بیرونی عوامل کو مدنظر رکھتے ہوئے، جوڑنے والے آلات کے ذریعے متحرک یونٹس کے تعامل کو مدنظر رکھتے ہوئے، بیرونی ماڈیولز سے آنے والے ڈیٹا پر کارروائی کرتا ہے جو رولنگ اسٹاک آلات کے آپریشن کی طبیعیات کو لاگو کرتے ہیں۔
  • ناظر - ایک گرافیکل سب سسٹم جو ٹرین کی نقل و حرکت کا تصور کرتا ہے، گرافکس انجن کی بنیاد پر بنایا گیا ہے۔ اوپن سین گراف

یہ سب سسٹم مشترکہ میموری کے ذریعے ایک دوسرے کے ساتھ تعامل کرتے ہیں، Qt فریم ورک کی QSharedMemory کلاس کی بنیاد پر لاگو کیا جاتا ہے۔ پہلے ڈیمو میں ساکٹ پر مبنی IPC کا استعمال کیا گیا تھا، اور مستقبل میں سمیلیٹر کے کچھ حصوں اور ضروریات کو مدنظر رکھتے ہوئے مستقبل میں اس ٹیکنالوجی پر واپس جانے کے منصوبے ہیں۔ مشترکہ میموری میں منتقلی کسی حد تک ایک زبردستی اقدام تھا جس نے اس کی افادیت کو ختم کردیا ہے۔

میں باریکیوں کی وضاحت نہیں کروں گا - اس منصوبے کی ترقی کے بہت سے الٹا پہلے ہی وسائل پر میری اشاعتوں میں بیان کیے گئے ہیں، خاص طور پر، میرے پاس کافی وسیع ہے OpenSceneGraph انجن پر سبق کی ایک سیریز، جو اس منصوبے پر کام کرنے کی مشق سے بڑھی ہے۔

پروجیکٹ میں سب کچھ اتنا ہموار نہیں جتنا ہم چاہتے ہیں۔ خاص طور پر، گرافکس کا سب سسٹم رینڈرنگ کوالٹی کے لحاظ سے کامل نہیں ہے، اور سم کی کارکردگی بہت زیادہ مطلوبہ چھوڑ دیتی ہے۔ اس ریلیز کا ایک مقصد ہے - ریلوے ٹرانسپورٹ کے شوقین افراد کی کمیونٹی کو پروجیکٹ سے متعارف کرانا، اس کی صلاحیتوں کا خاکہ بنانا اور آخر میں ایڈ آن ڈیولپرز کے لیے ایک جدید API کے ساتھ ایک کھلا، کراس پلیٹ فارم ریلوے سمیلیٹر بنانا۔

امکانات

امکانات کا انحصار آپ پر، ہمارے پیارے مستقبل کے صارفین اور ڈویلپرز پر ہے۔ پروجیکٹ کھلا ہے اور موجود ہے۔ سرکاری ویب سائٹجہاں سے آپ سمیلیٹر ڈاؤن لوڈ کر سکتے ہیں۔ دستاویزات، جس کی ترکیب کو مسلسل بھر دیا جائے گا۔ موجود ہے۔ فورم پروجیکٹ، وی کے گروپاور یوٹیوب چینل، جہاں آپ کو انتہائی مفصل مشورہ اور مدد مل سکتی ہے۔

آپ کا شکریہ!

ماخذ: www.habr.com

نیا تبصرہ شامل کریں