ZUKUNFT DES TRAIN SIMULATOR CLASSIC - ENTWICKLER-UPDATE
Wir sprechen mit Senior Producer Steve Dark über den aktuellen Stand der Entwicklung von Train Simulator Classic und beantworten einige eurer Fragen aus dem letzten Artikel.
Hallo zusammen! Wie versprochen, bin ich hier mit einem Update zu unseren aktuellen Fortschritten. Da der vorherige Artikel alle möglichen Fragen, Theorien, Wünsche, Sehnsüchte und Bedenken aufgeworfen hat, wollte ich damit beginnen, tiefer ins Detail zu gehen und dabei helfen, Fragen zu beantworten und hoffentlich alle Bedenken auszuräumen.
Auf den neuesten Stand gebracht - Phase 1
Bevor ich zu unseren aktuellen Fortschritten komme, dachte ich, es wäre hilfreich für Sie zu verstehen, wie wir die Arbeit an der Verbesserung des Kerns angehen. Im Wesentlichen haben wir unsere Gesamtvision der Software in mundgerechte, überschaubare Teile zerlegt. Jedes Stück stellt einen Sprint der Arbeit dar, mit einem kurzen Testdurchlauf, um sicherzustellen, dass wir nichts kaputt gemacht haben, und möglicherweise einem oder mehreren Alpha-Builds, die wir unseren Testern geben, um die Dinge zu tun, die wir in einer klinischen Entwicklungsumgebung nicht tun können, wie zum Beispiel die Software einfach zu spielen. Wir nennen diese Phasen.
In Phase 1 geht es fast ausschließlich darum, den Code zu bereinigen, überflüssige oder ungenutzte Elemente zu entfernen und wichtige Plugins (abhängige Anwendungen wie Silverlining, OpenAl, PhysX usw.) zu aktualisieren - all dies mit dem Ziel, auf eine neuere Version von Visual Studio (der Software, mit der wir unseren Code zu etwas Brauchbarem kompilieren) aufzurüsten. Neuere Versionen von Visual Studio bieten bessere Compiler, bessere Debugging-Tools (um Fehler zu finden) und bessere Profiling-Tools (um effizienteren Code zu erstellen). Zu Beginn des Projekts arbeiteten wir mit Visual Studio 2010 (VS2010).
Leider kann man bei einer so komplexen Codebasis wie der des Train Simulators nicht einfach von VS2010 auf die neueste Version von VS2022 wechseln, weil man Gefahr läuft, den Code zu beschädigen. Es muss schrittweise aktualisiert werden, damit wir sicherstellen können, dass jede Version sauber ist, bevor wir zur nächsten übergehen - und mit sauber meine ich, dass wir alle Warnungen und Fehler beseitigen müssen, die von der vorherigen Version gemeldet wurden, bevor wir zur nächsten übergehen. Es gibt auch einige Einschränkungen, da einige der Plugins von Drittanbietern, auf die der Train Simulator angewiesen ist, nicht über eine bestimmte Version von Visual Studio hinaus kompiliert werden können (Scaleform ist ein klassisches Beispiel dafür, dass dies nicht möglich ist, da es vor einiger Zeit veraltet ist). Wir müssen also einen Schritt nach dem anderen oder eine Hauptversion nach der anderen machen. Die Hauptversionen sind VS2010 > VS2013 > VS2015 > VS2017 > VS2022.
Aktueller Fortschritt
Zum Zeitpunkt der Erstellung dieses Artikels arbeiten wir jetzt mit VS2017, und das hat eine Menge neuer Fehler und Warnungen aufgedeckt, die unter VS2015 nicht vorhanden waren. Das ist zu erwarten und deutet auf Verbesserungen in der Programmierpraxis, bessere Möglichkeiten der Handhabung von Dingen usw. hin. Wir glauben, dass die ungefähre Anzahl der Fehler im Bereich von einigen Tausend lag, die alle aufgeräumt und beseitigt werden mussten.
Wir haben fast allen überflüssigen Code entfernt und fast alle überflüssigen Plugins gestrichen. Die einzigen, die übrig geblieben sind, sind tiefer in den Code integriert, was wesentlich mehr Zeit erfordert, um sie zu entschlüsseln, und haben vielleicht irgendwo eine Funktion, die derzeit noch unbekannt ist. Alle relevanten Plugins wie OpenAl, Silverlining, etc. laufen jetzt alle unter VS2017. Wir arbeiten jetzt am endgültigen Upgrade von Visual Studio auf VS2022, um die DirectX12-Übersetzung zu implementieren.
Sie fragen sich jetzt vielleicht, warum das alles notwendig ist? Nun, es ist ziemlich wichtig, dass wir eine solide Grundlage haben, auf der wir aufbauen können, bevor wir auf dem Code aufbauen und Verbesserungen vornehmen können. Bei unserer bisherigen Arbeit ging es vor allem darum, die Möglichkeit von Instabilitäten so weit wie möglich zu minimieren.
Eine Sache, die wir bei unserer bisherigen Arbeit festgestellt haben, ist, dass die Software viel stabiler ist als die Version, die Sie gerade benutzen. Allerdings werden wir diese Errungenschaft erst dann feiern, wenn Sie alle Gelegenheit hatten, sie auszuprobieren.
Bevor wir zum letzten (aufregenden) Teil dieser Phase übergehen, ändern wir die Art und Weise, wie die Software Ihnen Probleme meldet, und geben Ihnen viel mehr Informationen darüber, was sie zum Zeitpunkt des Problems getan hat. Das bedeutet, dass die gefürchtete Fehlermeldung "Speicherplatzmangel" für immer verschwinden wird! Es bedeutet auch, dass es einfacher sein sollte, die Ursache des Problems festzustellen, sei es ein Problem mit dem Inhalt, den Sie zu laden versuchten, oder etwas anderes, das an unseren Kundendienst gemeldet werden muss. Sobald dies abgeschlossen ist, müssen wir testen, wo wir stehen. Das bedeutet, dass wir einen Build für unsere internen Tester vorbereiten, damit sie versuchen können, das Problem zu lösen. Dieser Aspekt ist von entscheidender Bedeutung, da wir alle Fehler beseitigen müssen, bevor wir weitermachen, da die 32-Bit-Version diejenige sein wird, für die es keine weiteren Updates geben wird. Unsere weitere Arbeit wird sich ausschließlich auf 64-Bit konzentrieren, da dies der Stand der Dinge bei modernen PCs ist.
Unser nächster Schritt wird die Implementierung des DirectX12-Übersetzungstools sein. Zu diesem Zeitpunkt haben wir noch keine Ahnung, was das bedeuten wird, oder ob es überhaupt funktioniert, aber wir werden es versuchen und sehen, wohin es uns führt. Ich bin mir sicher, dass Sie alle gespannt sind, was es Neues gibt, und wir werden Sie so bald wie möglich auf dem Laufenden halten. Bis auf Weiteres wird die DirectX 12-Übersetzung ein experimentelles Feature bleiben und getrennt von der Hauptversion zur Verfügung stehen. Sie müssen sich also dafür entscheiden, wenn sie verfügbar ist. Dafür gibt es einen guten Grund, denn wir haben einfach nicht die Ressourcen, um alles zu testen, und wir brauchen Ihre Hilfe, um unerwünschte Effekte aufzudecken.
Das ist also so ziemlich der aktuelle Stand der Dinge. Wir sind sehr daran interessiert, dass Sie uns weiterhin Ihre Fragen stellen, also schicken Sie sie uns bitte weiter. Wir sind uns bewusst, dass vieles von dem, was ich hier sage, nicht viel Sinn ergibt, wenn wir also helfen können, Dinge zu klären, lassen Sie es uns bitte wissen.
Ihre Fragen, Theorien, Wünsche und Bedenken
Consist Editor
Es ist gut zu sehen, dass wir alle unsere eigenen Vorstellungen davon haben, was "Verbesserung" für uns individuell bedeutet. Eine Frage und ein Thema, das immer wieder auftaucht, ist, ob Dinge wie der Consist-Editor in absehbarer Zeit verbessert werden.
Die kurze Antwort ist, dass es sehr wahrscheinlich ist, dass es im Laufe der Zeit Verbesserungen geben wird - bald ist ein relativer Begriff, der alles bedeuten kann. Wenn Sie es nächste Woche erwarten, dann lautet die Antwort: Nein. Wenn Sie jedoch irgendwann im nächsten Jahr meinen, dann ist die Antwort wahrscheinlich möglich, hängt aber von mehreren anderen Faktoren ab.
Die lange Antwort ist, dass es aus unserer Sicht nichts am Consist-Editor auszusetzen gibt, obwohl wir wissen, dass er überall für Frustration sorgt, besonders bei denjenigen, die Repaints (Reskins) verwenden oder große Inhaltsbibliotheken haben, für die er nie konzipiert wurde. Wir wissen, dass es besonders langsam sein kann, seine Sammlung zu katalogisieren, wenn man viele Inhalte hat, und dass man diesen Prozess jedes Mal durchlaufen muss, wenn man ihn benutzt - was nicht toll ist. In Phase 2 werden wir mit der Arbeit am Content Management System beginnen, und da dieses direkt in den Consist-Editor einfließt, ist es durchaus wahrscheinlich, dass es einige Vorteile bringen wird. ZunÃ?chst mÃ?ssen wir jedoch aus Ihrer Sicht verstehen, wo der Consist-Editor Ihre Erwartungen nicht erfüllt, damit wir dies bei der Arbeit daran berücksichtigen können. Ein klares Verständnis dafür, warum es Ihrer Meinung nach nicht funktioniert und wie es Ihrer Meinung nach funktionieren sollte, wird für uns eine unschätzbare Information sein.
Abwärtskompatibilität
Wir wissen, dass ein wichtiger Bereich, über den sich die Leute Sorgen gemacht haben, darin besteht, dass bei einer Aktualisierung des Kerns wahrscheinlich einige Inhalte verloren gehen. Diese Sorge ist durchaus berechtigt.
Wir waren immer besonders stolz darauf, dass es uns gelungen ist, so weit zu kommen und dabei die Kompatibilität mit etwa 95 % des gesamten Backkatalogs, den die Leute in den letzten zehn oder mehr Jahren erstellt haben, zu erhalten. Wir denken auch weiterhin darüber nach, und wir können Ihnen versichern, dass wir dies auch in Zukunft fest im Blick haben werden. Die Abwärtskompatibilität war schon immer ein kontroverses Thema, und sie ist der Hauptgrund, warum wir aus Angst, etwas kaputt zu machen, keine tiefgreifenden Änderungen vorgenommen haben. Wir sind jedoch mit TSC in eine Sackgasse geraten, und wenn wir nichts unternehmen, ist es wahrscheinlich, dass Sie es in nicht allzu ferner Zukunft überhaupt nicht mehr nutzen können. Diese Arbeit ist daher wichtig, um sicherzustellen, dass Sie Ihre Inhalte auch weiterhin nutzen können.
Wir würden Ihnen gerne garantieren, dass wir die Abwärtskompatibilität immer gewährleisten werden, aber die Wahrheit ist, dass wir noch nicht alle Antworten haben. Einige Dinge müssen wir erst ausprobieren, bevor wir solche Fragen beantworten können. Wir haben einen ehrgeizigen Plan, und es gibt Dinge, die wir erreichen wollen, aber es ist sehr wahrscheinlich, dass wir an einen Punkt kommen, an dem wir eine schwierige Entscheidung treffen müssen, wie wir weiter vorgehen. Wir hoffen, dass wir uns zu diesem Zeitpunkt an Sie alle wenden können, um Ihre Meinung darüber einzuholen, wie wir Ihrer Meinung nach vorgehen sollten.
Einige Dinge, von denen wir bereits wissen, dass sie die Abwärtskompatibilität beeinträchtigen werden und die wir derzeit nicht in Betracht ziehen, sind Dinge wie Physically-Based Rendering (auch bekannt als PBR) und ein fest kodiertes DirectX-Versions-Upgrade (ohne Übersetzung). Wir wissen, dass diese Dinge den gesamten Backkatalog grundlegend verändern werden und wahrscheinlich den Arbeitsablauf für alle, die Inhalte für den Train Simulator erstellen, beeinträchtigen werden, wodurch es für die Leute viel schwieriger wird, Inhalte zu erstellen.
Die Abwärtskompatibilität ist wichtig, und wir hören Ihre Bedenken und arbeiten aktiv daran, diese so weit wie möglich aufrechtzuerhalten, während wir uns weiterentwickeln. Es kann sein, dass es ein oder zwei Dinge gibt, die wir im Laufe der Entwicklung berücksichtigen müssen, aber wir werden diese von Fall zu Fall prüfen.
Es gibt auch Dinge, die wir im Laufe der Zeit lernen. So haben wir zum Beispiel gerade erfahren, dass es Probleme mit LUA geben könnte und dass wir die aktuelle Version auf die neueste Version aktualisieren wollen. Es hat den Anschein, dass es in LUA viele Änderungen zwischen den einzelnen Versionen gibt und dass es möglicherweise nicht möglich ist, ohne alles zu zerstören. Dies könnte also eines der Dinge sein, die wir nicht ändern können, um die Abwärtskompatibilität zu wahren. Wir haben jedoch die Absicht, die Möglichkeiten zu untersuchen, wenn es soweit ist, und wir werden Sie natürlich über das Ergebnis unserer Untersuchung informieren.
Letzte Überlegungen (vorläufig)
Wir wissen, dass die Kernleistung vielleicht einer der wichtigsten Aspekte der aktuellen Software ist - das geht aus allen Rückmeldungen hervor, die wir bis jetzt erhalten haben. Deshalb wollen wir diesem Aspekt in der nächsten Entwicklungsphase Priorität einräumen und eine bessere Unterstützung für Multi-Core-Prozessoren erreichen. Im Moment wissen wir noch nicht, was das bedeuten wird, aber wir sind der Meinung, dass dies ein großes Potenzial in der Software für alle freisetzen wird, so dass es sich lohnt, es mit Priorität zu verfolgen.
Bevor wir uns verabschieden, möchten wir noch einmal darauf hinweisen, dass Sie eine 64-Bit-Version von Windows 10 oder 11 verwenden müssen, wenn Sie DirectX 12 in unserem kommenden experimentellen Build nutzen möchten. Leider ist DirectX 12 nur für Windows 10 und 11 verfügbar und wird für Windows 7 und 8 nicht unterstützt. Dies liegt nicht in unserem Einflussbereich.