Russian Railway Simulator (RRS): πρώτη δημόσια κυκλοφορία

Έφτασε η μέρα που περίμενα που μπορώ επιτέλους να παρουσιάσω αυτήν την εξέλιξη. Το έργο ξεκίνησε ακριβώς πριν από έναν χρόνο, την 1η Σεπτεμβρίου 2018 τουλάχιστον Αποθετήρια RRS στο Gtihub το πρώτο commit έχει ακριβώς αυτή την ημερομηνία.

Επιβατικό τρένο στον κεντρικό σταθμό του Ροστόφ (με δυνατότητα κλικ)

Russian Railway Simulator (RRS): πρώτη δημόσια κυκλοφορία

Τι είναι το RRS; Πρόκειται για έναν ανοιχτό προσομοιωτή πολλαπλών πλατφορμών τροχαίου υλικού μετρητή 1520 mm. Ο αναγνώστης θα θέσει φυσικά το ερώτημα: «Συγγνώμη, σε τι χρησιμεύει αυτό το έργο, εάν υπάρχει επαρκής αριθμός προσομοιωτών σιδηροδρόμων, εμπορικών και ανοιχτών;» Για την απάντηση σε αυτή την ερώτηση, προτείνω να κοιτάξετε κάτω από τη γάτα

Ιστορικό έργου

Μια φορά κι έναν καιρό, το 2001, κυκλοφόρησε Microsoft Train Simulator (MSTS), που δημιούργησε μια τεράστια κοινότητα σιδηροδρομικών σιδηροδρομικών σιδηροδρομικών στη χώρα μας. Κατά τη διάρκεια των πολλών ετών που υπήρχε αυτό το έργο (μέχρι που η Microsoft το εγκατέλειψε, προχωρώντας σε πιο ενδιαφέροντα πράγματα για αυτήν, όπως η χρεοκοπία της Nokia κ.λπ.), το έργο απέκτησε μια μάζα προσθηκών που δημιουργήθηκαν για αυτό: διαδρομές, τροχαίο υλικό, σενάρια.

Με βάση το MSTS, δημιουργήθηκαν στη συνέχεια μια σειρά από άλλα έργα, όπως π.χ OpenRails, RTrainSim (RTS) και άλλες προσθήκες και παράγωγα. Εμφανίστηκαν και εμπορικά έργα, όπως τα περίφημα Trainz. Και όλα θα ήταν καλά, αλλά πολλοί λάτρεις των σιδηροδρομικών μεταφορών δεν είναι ικανοποιημένοι με αυτά τα προϊόντα για αρκετά αντικειμενικούς λόγους - σε καμία περίπτωση δεν αντικατοπτρίζουν τις ιδιαιτερότητες του εγχώριου τροχαίου υλικού που λειτουργεί και αναπτύσσεται στον μετασοβιετικό χώρο. Αυτό είναι ιδιαίτερα έντονο όταν εξετάζουμε πώς εφαρμόζονται τα φρένα αμαξοστοιχίας - κανένα από τα αναφερόμενα έργα δεν έχει ή θα έχει κανονική εφαρμογή των αυτόματων φρένων του συστήματος Matrosov.

Το όχι και τόσο μακρινό έτος 2008, εμφανίστηκε ένα άλλο έργο - ZDSsimulator, που αναπτύχθηκε από τον Vyacheslav Usov. Το έργο είναι αξιοσημείωτο στο ότι λαμβάνει υπόψη και διορθώνει τις προαναφερθείσες ελλείψεις, ενώ αρχικά επικεντρώνεται στο ρωσικό τροχαίο υλικό εύρους. Αλλά υπάρχει ένα μεγάλο "αλλά" - το έργο είναι ιδιόκτητο και κλειστό, αρχιτεκτονικά δεν επιτρέπει την εισαγωγή του δικού του τροχαίου υλικού.

Εγώ ο ίδιος ήρθα στο θέμα των σιδηροδρόμων το 2007, όταν άρχισα να εργάζομαι JSC VELNII, ως ερευνητής, και αφού υπερασπίστηκε τη διδακτορική του διατριβή το 2008, ως ανώτερος ερευνητής. Τότε ήταν που γνώρισα τα τελευταία επιτεύγματα στον τομέα των παιχνιδιών προσομοίωσης σιδηροδρόμων εκείνη την εποχή. Και δεν μου άρεσε αυτό που είδα και το έργο ZDSimulator δεν υπήρχε εκείνη την εποχή. Αργότερα, γοητευμένος από τη δυναμική του τροχαίου υλικού, ήρθα στο Κρατικό Πανεπιστήμιο Μεταφορών του Ροστόφ (RGUPS) με θέμα διδακτορική διατριβή για τη δυναμική πέδησης ενός εμπορευματικού τρένου. Σήμερα ηγούμαι της ανάπτυξης συγκροτημάτων εκπαίδευσης σιδηροδρομικών μεταφορών για το πανεπιστήμιό μας και διδάσκω εξειδικευμένους κλάδους στο Τμήμα Τροχαίου Υλικού Έλξης.

Σε σχέση με όλα τα παραπάνω, προέκυψε η ιδέα της δημιουργίας ενός προσομοιωτή που θα επέτρεπε στον προγραμματιστή ενός πρόσθετου για αυτόν να αποκτήσει τον πλήρη έλεγχο των φυσικών διεργασιών που συμβαίνουν στο τροχαίο υλικό. Παρόμοιο με τον διαστημικό προσομοιωτή Orbiter, για τον οποίο κάποτε ανέπτυξα μια προσθήκη με τη μορφή μιας οικογένειας οχημάτων εκτόξευσης που βασίζονται στο R-7. Πριν από ένα χρόνο ασχολήθηκα με αυτή τη δουλειά και ασχολήθηκα με αυτό. 26 Δεκεμβρίου 2018 είδε το φως εδώ αυτή η επίδειξη τεχνολογίας.

Η δουλειά μου έγινε αντιληπτή από λάτρεις και γνωστός στους κύκλους των σιδηροδρομικών simmers, ο δημιουργός οπτικού περιεχομένου για το ZDsimulator Roman Biryukov (Romych Russian Railways) μου πρόσφερε βοήθεια και συνεργασία στην περαιτέρω ανάπτυξη του έργου. Αργότερα ένας άλλος προγραμματιστής ήρθε μαζί μας - Alexander Mishchenko (Ulovskii2017), δημιουργός διαδρομής για το ZDsimulator. Η συνεργασία μας μας οδήγησε στην πρώτη μας κυκλοφορία. Το βίντεο δείχνει μια επισκόπηση του πώς φαίνεται το παιχνίδι για την πρώτη του κυκλοφορία

Χαρακτηριστικά του RRS Simulator

Πρώτα απ 'όλα, είναι μια ανοιχτή αρχιτεκτονική λογισμικού. Για να μην αναφέρουμε το γεγονός ότι ο κώδικας του προσομοιωτή είναι ανοιχτός, υπάρχει ένα API και SDK που απευθύνονται σε προγραμματιστές πρόσθετων τρίτων σε αυτό. Το εμπόδιο εισόδου είναι αρκετά υψηλό - απαιτούνται βασικές δεξιότητες ανάπτυξης C++. Ο προσομοιωτής είναι γραμμένος σε αυτό, χρησιμοποιώντας τον μεταγλωττιστή GCC και την παραλλαγή του MinGW για το λειτουργικό σύστημα Windows. Επιπλέον, καλό είναι ο προγραμματιστής να είναι εξοικειωμένος με το πλαίσιο Qt, καθώς πολλές από τις έννοιές του αποτελούν τη βάση της αρχιτεκτονικής του παιχνιδιού.

Ωστόσο, με τη δέουσα επιμέλεια και επιθυμία, αυτό το έργο ανοίγει τεράστιες ευκαιρίες για τον προγραμματιστή πρόσθετων. Το τροχαίο υλικό υλοποιείται με τη μορφή ενοτήτων που βασίζονται σε δυναμικές βιβλιοθήκες. Το κύριο δομικό στοιχείο στον προσομοιωτή είναι μονάδα τροχαίου υλικού, ή κινητή μονάδα (MU) - αυτοκίνητο (μη αυτοκινούμενο ή ως μέρος αμαξοστοιχίας πολλαπλών μονάδων) ή τμήμα ατμομηχανής. Το API καθιστά δυνατή τη ρύθμιση της ροπής που εφαρμόζεται στα σετ τροχών PE, ως απόκριση λήψης της γωνιακής ταχύτητας των σετ τροχών, καθώς και εξωτερικών παραμέτρων, όπως η τάση και ο τύπος ρεύματος στο δίκτυο επαφής. Ο προσομοιωτής δεν γνωρίζει τίποτα άλλο και δεν θέλει να μάθει, κάτι που αφήνει τη φυσική του εσωτερικού εξοπλισμού στη συνείδηση ​​του κατασκευαστή μιας συγκεκριμένης ατμομηχανής ή αυτοκινήτου.

Δεν είναι δύσκολο να μαντέψει κανείς ότι μια τέτοια προσέγγιση σχετικά χαμηλού επιπέδου καθιστά δυνατή την εφαρμογή των μικρότερων αποχρώσεων του κυκλώματος της ατμομηχανής. Επιπλέον, το κιτ προσομοιωτή περιλαμβάνει ένα σύνολο βασικού εξοπλισμού εγκατεστημένο σε εγχώριο τροχαίο υλικό: γερανός οδηγού αμαξοστοιχίας μετατρ. Νο 395, air distributor condition. Νο 242, κατάσταση βοηθητικής βαλβίδας φρένων. Νο. 254 και άλλα στοιχεία εξοπλισμού πέδησης. Ο προγραμματιστής του πρόσθετου χρειάζεται μόνο να συνδέσει αυτά τα στοιχεία στο πνευματικό κύκλωμα μιας συγκεκριμένης ατμομηχανής ή αυτοκινήτου. Επιπλέον, υπάρχει ένα API για τη δημιουργία των δικών σας μονάδων υλικού.

Αρχιτεκτονικά, το RRS βασίζεται στην αλληλεπίδραση δύο κύριων διαδικασιών

  • προσομοιωτής — κινητήρας δυναμικής φυσικής αμαξοστοιχίας TrainEngine 2. Εφαρμόζει τη φυσική της κίνησης αμαξοστοιχίας, λαμβάνοντας υπόψη πολλούς εξωτερικούς παράγοντες, λαμβάνοντας υπόψη την αλληλεπίδραση κινούμενων μονάδων μέσω συσκευών ζεύξης, επεξεργάζεται δεδομένα που προέρχονται από εξωτερικές μονάδες που εφαρμόζουν τη φυσική λειτουργίας του εξοπλισμού τροχαίου υλικού
  • θεατής — ένα γραφικό υποσύστημα που απεικονίζει την κίνηση των αμαξοστοιχιών, κατασκευασμένο με βάση μια μηχανή γραφικών OpenSceneGraph

Αυτά τα υποσυστήματα αλληλεπιδρούν μεταξύ τους μέσω κοινής μνήμης, που υλοποιείται με βάση την κλάση QSharedMemory του πλαισίου Qt. Οι πρώτες επιδείξεις χρησιμοποιούσαν IPC με βάση την υποδοχή και υπάρχουν σχέδια για επιστροφή σε αυτήν την τεχνολογία στο μέλλον, λαμβάνοντας υπόψη τη βελτίωση ορισμένων τμημάτων του προσομοιωτή και τις ανάγκες με βλέμμα στο μέλλον. Η μετάβαση στην κοινή μνήμη ήταν σε κάποιο βαθμό ένα αναγκαστικό μέτρο που έχει ξεπεράσει τη χρησιμότητά του.

Δεν θα περιγράψω τις αποχρώσεις - πολλές από τις αντιξοότητες της ανάπτυξης αυτού του έργου περιγράφονται ήδη στις δημοσιεύσεις μου σχετικά με τον πόρο, ειδικότερα, έχω μια αρκετά εκτενή μια σειρά από σεμινάρια για τη μηχανή OpenSceneGraph, που προέκυψε από την πρακτική της εργασίας σε αυτό το έργο.

Δεν είναι όλα στο έργο τόσο ομαλά όσο θα θέλαμε. Συγκεκριμένα, το υποσύστημα γραφικών απέχει πολύ από το τέλειο όσον αφορά την ποιότητα απόδοσης και η απόδοση της κάρτας sim αφήνει πολλά περιθώρια. Αυτή η έκδοση έχει έναν στόχο - να εισαγάγει την κοινότητα των οπαδών των σιδηροδρομικών μεταφορών στο έργο, να περιγράψει τις δυνατότητές του και, τέλος, να δημιουργήσει έναν ανοιχτό προσομοιωτή σιδηροδρομικών γραμμών πολλαπλών πλατφορμών με ένα προηγμένο API για προγραμματιστές πρόσθετων.

Προοπτικές

Οι προοπτικές εξαρτώνται από εσάς, αγαπητοί μελλοντικοί μας χρήστες και προγραμματιστές. Το έργο είναι ανοιχτό και υπάρχει επίσημη ιστοσελίδααπό όπου μπορείτε να κατεβάσετε τον προσομοιωτή τεκμηρίωση, η σύνθεση του οποίου θα αναπληρώνεται συνεχώς. Υπάρχει форум έργο, Ομάδα VKΚαι Κανάλι YouTube, όπου μπορείτε να λάβετε τις πιο λεπτομερείς συμβουλές και βοήθεια.

Спасибо за внимание!

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο