Programmieren für Loksim

  • Hallo allerseits,


    die Aufräumarbeiten schreiten voran! Ich habe einiges an Code rausgeworfen und werde das auch weiterhin noch tun. Dabei habe ich eher zufällig ein paar Bugs entdeckt, die offensichtliche Verschreiber sind und anders gemeint waren, als sie da standen. Ich weiß nicht, wie sie sich dann auf das Verhalten auswirken, aber ich gehe davon aus, dass es sich dabei doch um welche handelt, die irgendein von euch beobachtbares Fehlverhalten erzeugen.


    Ich habe mich auch gewagt, mal den Simulator und den Editor als 64bit Programme zu bauen. Bis dato war beides ja noch 32 bit, was gewisse Nachteile mit sich bringt. Dazu war allerdings erheblich mehr Aufwand nötig, als bloß den Compiler (das ist das Programm, das aus dem C++-Code das ausführbare Programm erzeugt) auf 64bit zu stellen. In 64bit haben nämlich verschiedene Datentypen eine andere Größe und wenn man nicht sauber auf die Typen achtet und im Code implizite Annahmen über die Größen von Datentypen macht, führt das zu Problemen.


    Leider hat mein Vorhaben 64bit ein jähes Ende gefunden: der Loksim nutzt ja bekanntlich DirextX 7 für die 3D-Darstellung. Das ist eine Schnittstelle, die im Jahr 1999(!) veröffentlicht wurde. Die ist somit älter als einige, die sich hier im Forum bewegen. Während Microsoft für 32bit-Anwendungen DirectX 7 noch mitschleppt, tun sie das für 64bit nicht mehr. Somit gibts in meinem derzeitigen Arbeitsstand, der sich zu 64bit Programmen bauen lässt keine Möglichkeit für die 3D-Darstellung.


    War die Arbeit mit 64bit somit umsonst? Ich finde nicht. Folgende Erkenntnisse nehme ich mit:


    1. Ich habe eine Menge fauler Stellen im Code entdeckt und hab sie zumindest behelfsmäßig repariert und werde das ganze noch nachhaltiger tun.
    2. Der Loksim hängt von einer Schnittstelle ab, bei der mittelfristig damit zu rechnen ist, dass sie endgültig ein Messer in den Rücken bekommt. Ein Ersatz für diese veraltete Anbindung ist aber schon von Lukas begonnen worden!
    3. Es zeigt sich mehr und mehr, wie notwendig diese Arbeiten sind. Auch wenn sich in Sachen neuer Funktionalitäten relativ wenig tut gerade.


    Viele Grüße
    Martin

  • Hallo allerseits,


    ein kleines Update von meiner Seite. Lukas hat heute den aktuellen Arbeitsstand vom Loksim dem Betatest zugänglich gemacht. Ich bin sehr gespannt was ich so für Fehler eingebaut habe. Davon sollten möglichst viele gefunden werden, bevor ich weitermache mit aufräumen.


    Beste Grüße
    Martin

  • Hallo,
    nachdem ich schon seit einiger Zeit kein Update mehr gegeben habe, ein kurzer Statusbericht von meiner Seite. In letzter Zeit war/bin ich Großteils mit Dingen im Hintergrund beschäftigt.


    Zum einen haben wir Ende letzten Jahres unser Haupt-Repo von SVN auf Git umgestellt. Das ist soweit abgeschlossen, jedoch muss ich mich noch um zwei zusätzliche Repositories kümmern (Doku und Installer), die noch nicht umgestellt sind.


    Außerdem habe ich begonnen den Compiler von VisualC++ 2013 auf 2019 umzustellen (über den Umweg 2017). Der Großteil der Arbeit ist auch hier schon erledigt, aber so "Kleinigkeiten" wie das automatisierte Bauen von neuen Loksim bauen muss noch nachgezogen werden. Und dann fehlt noch die Dokumentation des Ganzen, dass diese Umstellung für alle Mitentwickler möglichst schmerzhaft schmerzfrei und ohne Probleme möglich ist (die Wichtigkeit einer guten Dokumentation für Internas sollte man nicht unterschätzen ;) )


    Ansonsten habe ich in letzter Zeit nur ein wenig Optimierungen bei der Transparenz von externen Objekten vorgenommen.


    lg
    Lukas

  • möglichst schmerzhaft

    Du bist sadistisch veranlagt? :evil: :D

    Triebfahrzeugführer im Streckendienst der DB Fernverkehr in Frankfurt/Main
    BR: 101, 120, 147.5, IC-Steuerwagen, IC2-Steuerwagen, 401 ("ICE 1"), 402 ("ICE 2"), 403 ("ICE 3"), 406 ("ICE 3M"/"ICE 3MF"), 407 ("neuer ICE 3"), 411 ("ICE T"), 415 ("ICE T")

  • Also, mir als Kleinbauer ist es allemal lieber, wenn du, Lukas, das ganze Ding hier im stillen Kämmerlein auf 64-Bit und auf DirectX 11 (von 12 nicht zu reden) hebst, als dass morgen das tolle ETCS-Update rauskommt, während der Rest nen Einhebezug braucht. Ich weiß schon, dass andere das nicht so sehen, die an ihrem verwaisten Windows 7 kleben und sich wundern, wer ständig Geld von ihrem Konto abhebt, aber sorry, auch entlang der virtuellen Museums-Bahner hier tickt die Zeit weiter.

  • Tach,


    nachdem der Umstieg hier etwas holperig war, bin ich Moment dabei, den Nullstellungszwang und die Traktionssperre in der Steuerung umzubauen. Hierzu werdee ich leider auch den Lokeditor anpassen müssen, mal schauen wieviel Schmerzen das bereitet...


    Ansonsten gibt es hier nichts neues zu berichten.


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo Zusammen,


    wie bereits an anderer Stelle berichtet, habe ich den Nullstellungszwang dahingehende geändert, dass das ganze einstellbar ist. Hierzu habe ich dezent den Lokeditor anfassen müssen, was aber nicht so schlimm war, wie ich es befürchtet habe. Dennoch muß das ganze Ding dringend überarbeitet werden.


    Auch bei der Bremse gibt es neue Erkenntnisse, die hoffendlich bald in den Loksim einfließen können.


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo!

    Die "Ausgangsbeschränkung" - oder wie auch immer man es nennt - haben positive Effekte auf den Loksim ;)


    Oder auch hier schon kurz gezeigt:

    Bahnübergangsobjekte Teil 1


    Was ist hier zu sehen?

    Das ist der aktuelle Stand des Direct3D 11 Renderpfads. Oder anders gesagt die Ablöse einer 20 Jahre alten Technologie (Direct3D 7) durch eine 12 Jahre alte Technologie (Direct3D 11) ;)


    Der eine oder andere mit gutem Gedächtnis wird sich vermutlich daran erinnern, dass ich davon schon vor langer Zeit davon gesprochen habe und auch schon vor längerer Zeit eine Vorabversion davon intern mal hochgeladen habe.

    Darum ist natürlich die Frage erlaubt was jetzt der große Unterschied ist. Nun ja, der große Unterschied, bei der jetzigen Version funktioniert: Landschaftsdarstellung, Objektdarstellung, Beleuchtungssystem und Himmelsdarstellung sind schon in einem "guten" Zustand. Für mich heißt das, dass dort sicherlich noch viel Arbeitsbedarf besteht (zb Darstellung von Schriften für Tafeln, Performance-Optimierung, etc), aber die größten Stolpersteine sollten aus dem Weg geräumt sein.

    Der letzte richtig große Brocken ist die 2D-Darstellung, die sicherlich einiges Arbeit bedeutet aber da ist der Aufwand trotzdem überblickbar.


    Es ist vielleicht nicht der große Wurf, den ich vor 5-10 Jahren mal erträumt habe - ever eine Evolution statt Revolution: Keine komplett überarbeitete Landschafts- oder Gleisdarstellung, fürs erste keine großen neuen Möglichkeiten oder Features. Aber es kann die Basis für Verbesserungen in vielen Bereichen sein (zB werden wir dann hoffentlich auf 64-Bit umsteigen können, was uns ermöglicht viel mehr Texturen im Speicher zu halten). Und der große Vorteil: bestehende Addons sollten mehr oder weniger komplett kompatibel sein


    Alles in allem bin ich derzeit sehr guter Dinge, dass wir 2020 zumindest noch eine Beta-Version veröffentlichen können, wo (fast) alles was der Loksim im Graphikbereich jetzt unterstützt, auch mit Direct3D11 möglich ist.


    lg

    Lukas

  • Das ist vielleicht eine der wenigen positiven Seiten dieser Situation.

    Einige werden mehr Zeit für die Arbeit an Strecken, Führerständen und Objekten und der Software selber haben.

    Viel Erfolg und bleibt gesund!

  • Hallo Zusammen,


    auch von mir eine kurze Wasserstandsmeldung.



    Es wird ein neues Tool geben. Ich bin gerade dabei, das ganze in den Simulator unterzubringen. Zusätzlich bin ich dabei die SEP-Schnittstelle zu erweitern, damit auch Fahrplandaten darüber ausgegeben werden. Allerdings bin ich da auch auf Martin (huhu!) angewiesen.

    Und bei meinem Bremsenproblem zeichnet sich auch eine Lösung ab.


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • sehe ich richtig dass die Bodentextur jetzt so scharf ist, wie die entsprechenden Gleisobjekte?

    Puh, ganz ehrlich bei diesen Details bin ich noch nicht ganz. Eventuell ist der Grund das "Ignorieren" der maximalen Texturgröße im Moment noch. Oder es ist wirklich ein Fortschritt ;)

    So oder so, allgemein sollten wir ein paar bessere Möglichkeiten bzgl. Texturfilterung und Katenglättung haben, also die Bildqualität sich verbessern.

    Aber wie gesagt, das ist derzeit bei mir noch nicht im Fokus


    lg

    Lukas

  • Es wird ein neues Tool geben. Ich bin gerade dabei, das ganze in den Simulator unterzubringen. Zusätzlich bin ich dabei die SEP-Schnittstelle zu erweitern, damit auch Fahrplandaten darüber ausgegeben werden. Allerdings bin ich da auch auf Martin (huhu!) angewiesen.

    Und bei meinem Bremsenproblem zeichnet sich auch eine Lösung ab.

    Der Ruf wurde gehört und auf Seiten von SEP können jetzt Zeichenketten versendet werden :)

  • Tach,


    zwischenzeitlich ist nun die Verwendbarkeit des RailDrivers hinzugekommen. Den einzelnen Hebeln und Tastern können verschiedene Funktionen zugeordnet werden. Noch sind nicht alle möglichen Funktionen eingebaut, sollen aber nach un nach eingebaut werden, sofern da eine entsprechende Nachfrage besteht. :-)

    Weiterhin ist wie bereits angedeutet, die SEP-Schnittstelle erweitert worden (Danke Martin) und Jens arbeitet an einem neuen EBuLa-Tool, das die SEP-Schnittstelle nutzt.

    Die Spezifikation der SEP-Schnittstelle kann hier: https://github.com/MMory/SEPre…nging_Protokoll_V0.94.pdf eingesehen werden.

    Was Loksim daraus macht, kann hier eingesehen werden: SEP-Schnittstelle des Loksim3D


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

    2 Mal editiert, zuletzt von taler () aus folgendem Grund: Tippfehler

  • Hallo Zusammen,


    bei der Bearbeitung des Fahrplanes für die SEP-Schnittstelle, ist mir aufgefallen, das der Fahrplan an mindestens drei Stellen im Code bei jedem Aufruf neu erzeugt wird. Da dies einer vernünfigen Wartung m.E. entgegensteht und mir auch Probleme macht, habe ich mich entschlossen, diesen Part zu überarbeiten. Ich erhoffe mir davon eine bessere Wartbarkeit, eine Performancegewinn und mehr Flexibilität in der Darstellung der Fahrplandaten.


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Tach,


    was gibt es neues?

    Nun, der Loksim 2.10 ist im Betatest und benötigt noch etwas Zeit.

    Beim FLG bin ich gerade dabei, eine Re100-Umbaufahrleitung zu implementieren, wie sie im süddeutschen Netz eingesetzt war. Und das ganze in Zusammenarbeit mit Martin Finken, der die Demo2 aufhübscht.

    Soweit von hier und nun zurück an die angeschlossenen Anstalten.


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Das klingt alles fabelhaft!


    Vor allem, was du, taler, zur Fahrplandarstellung gesagt hast, weil es nach Refactoring riecht, und das kann jede in die Tage gekommene Software gut gebrauchen! Insbesondere, wenn ihr alle im VS2019 codet und am besten noch einen TFS benutzt, bevor ihr das Ergebnis auf Git schubst.


    Aber vor allem: Verzettelt euch nicht, bitte. Ihr seid nur ein paar wenige schlaue Köpfe. und alle drängeln nach neuen Features. ETCS L2oS, rumlaufende Fahrgäste am Bahnsteig, Echtzeitblitze bei Gewitter, realistische Kuppelfahrten... Ihr wisst schon, wieso blinkt bei der Ausgabe von meinem Mars-Riegel am Bahnsteig die Geldrückgabe-Klappe nicht?!?!!11elf.


    Der Umstieg auf 64 Bit und auf aktuelles DirectX (auch wenn das auf lange Sicht Mac und Linux ausschließt) erscheint jedenfalls mir viel wichtiger als neue Features, Tools etc. Der Loksim muss halt mit der Zeit gehen, sonst muss er mit der Zeit gehen. Auch die Zeit der romantischen Kohleöfen in Altbauwohnungen ist langsam vorbei, genauso wie die Zeit von Windows XP.


    Macht einfach weiter so!