LOTUS-NG Patchnotes - NG 0.3.3

  • So!

    Heute dürfen wir Euch nun endlich die neue LOTUS-NG-Version übergeben! 8)



    Wie an anderer Stelle bereits erwähnt, laufen die Versionsnummern der NG- und der Classic-Version vorerst getrennt. Deshalb gibt es auch getrennte Patchnotes. Rückwirkend haben wir den reinen Map-Viewer als Version 0.1.0 eingeordnet. Nun kann man das erste Mal ein Fahrzeug einsetzen und aufgrund dieser besonderen Neuerung bekommt die neue Version die Nummer:


    NG 0.2.0 - Fokus: Schienenfahrzeuge und Scripts


    Also los:


    Wie aktiviert man überhaupt die NG-Version? Hier steht's: Neuigkeiten rund um LOTUS


    Nach dem Start präsentiert sich die linke obere Ecke so:



    Wunschmap auswählen, dann "Load". Die Karte wird (auffallend schnell ;-) ) geladen und durch Drücken des Mausrades wechselt man in den "Flugmodus", in dem man, wie gehabt, mittels WASD, C und Leertaste steuern kann.


    Nun wird es spannend:


    • Entrypoint auswählen
    • "Add vehicle"
    • Den GT6N aus der Liste auswählen...


    ... auf "Spawn" klicken und die Taste 1 (Fahrersicht) drücken!


    Die Tasten für den Sichtwechsel liegen, statt wie bei der alten LOTUS-Version, nicht mehr auf F1 bis F4, sondern auf den Tasten 1 bis 4. Mit den Pfeiltasten wechselt man wie bisher durch Kamerapositionen.


    Und die erste Fahrt kann beginnen!


    Noch ein paar Hinweise:

    • Bisher werden nur Schienenfahrzeuge unterstützt, jedoch noch keine Busse.
    • Noch funktionieren nicht alle Tastenkombinationen, dann ggf. die Maus benutzen.
    • Der GT6N ist gerade in Hinblick auf IBIS und ähnliches noch nicht so umfangreich, wie in der Classic-Version, verscriptet. Hieran wird aber längst gearbeitet! :-)
    • Fahrzeuge können nur gefahren werden, wenn (neue) NG-Scripts erstellt werden. Zum jetzigen Zeitpunkt ist das nur der GT6N, aber wir hoffen natürlich, dass auch andere Fahrzeuge nach und nach Scripts erhalten. Siehe hierzu unten.


    ____________________________________________________________________________________________________



    Mit Abstand am meisten Arbeitszeit benötigte aber das Thema...


    Script


    Dazu gibt es natürlich sehr viel zu erzählen. An dieser Stelle erst einmal ein stichpunktartiger Überblick:

    • Scripts können aktuell in den Sprachen Rust und Go programmiert werden.
    • Quickstart für Rust und weitere Infos findet Ihr hier:
      https://docs.lotus-simulator.dev/de/rust/quickstart/
    • Für die Einsteiger unter Euch: Vom Prinzip her benutzt man eine freie Entwicklungsumgebung zum Schreiben des Scripts, schön "mit Farben und bunt" (unser Vorschlag ist VSC) und benutzt für's Anlegen des Projektes und für's Kompilieren ein paar Kommandozeilenbefehle, ist aber alles halb so schlimm, wie es im ersten Moment aussieht! Traut Euch! :-)
    • Im Script-Code gebt Ihr an, für welche ContentID das jeweilige Script bestimmt ist.
    • Tendentiell ist Go eher für einfache Projekte gedacht, Rust für komplexere, wobei sich wirklich einfache Projekte (wo nur was blinkt oder sich was dreht ;-) ) in beiden Sprachen sehr einfach realisieren lässt; könnte auch ein schöner Einstieg in Rust sein, für später! ;-)
    • Wenn man kompiliert, wird die fertige Datei automatisch hier abgelegt:
      C:\Users\{DeinName}\AppData\Roaming\LOTUS-Simulator\scripts\user\{UserID}\{SubID}\script.wasm .
    • Durch diese Unabhängigkeit vom ContentTool ist hot reload möglich: Sobald das Script (während LOTUS läuft) neu kompiliert wurde, wird das Script im Simulator neu geladen und man sieht sofort die Änderungen. Wenn man zufrieden ist, wird man später dieses, wie gehabt, über das ContentTool mit in den Container werfen können. Momentan ist das aber noch nicht möglich.
    • Dieses Verfahren ermöglicht es, auch Scripts für fremde Objekte anzulegen, sofern man ihre ContentID kennt (einfach) und Ihr auch wisst, wie die Public-Vars des Original-Pascalscripts lauten (schwierig). Das bedeutet, dass man Ersatz-Scripts für Objekte erstellen kann, die aktuell "Langfrist-AFK" sind.
    • Da der Export via ContentTool/Container noch nicht möglich ist,
      • ...könnt und müsst Ihr die kompilierten Script-Dateien ganz klassisch per WhatsApp, Fileserver, E-Mail, CD-ROM, Diskette, Datasette, Magnetband... untereinander "tauschen". Die Scripts, die ihr erhaltet, kommen dann ebenfalls in das "scripts\user"-Verzeichnis. Entscheidend sind hierbei neben dem Dateiname (der immer script.wasm lauten muss) ebenso in welcher Ordnerstruktur sich das Script befindet.
      • ...werden unsere/offizielle Scripts (GT6N, ...) von Lotus automatisch herunter geladen und in das Verzeichnis "...\scripts\builtin\..." gelegt. Hierbei gelten die Prioritäten: User über Container über Builtin.

    Na dann: Viel Spaß beim Fahren, Erkunden und Scripten! :-) :-) :-)

  • Marcel Kuhnt

    Changed the title of the thread from “LOTUS-NG Patchnotes - NG 0.2.0” to “LOTUS-NG Patchnotes - NG 0.2.1”.
  • NG 0.2.1


    Und es gibt den ersten Patch :-):


    :NewFeature: Der Wechsel auf Bevy 0.17 sorgt nochmal für einen Performance-Schub! (Betrifft die FPS)


    :Bugfix: Abstürze mit älteren Karten wurden behoben

    :Bugfix: Es werden keine Kacheln mehr geladen, die nicht zur aktuellen Karte gehören (auch wenn sie in der Nähe liegen)

    :done: Die FPS-Anzeige wird jetzt korrekt angezeigt


    Somit sollten die Abstürze beim Starten nun nicht mehr auftreten. Gerne berichten! :-)

  • NG 0.2.2


    :Bugfix: In der 0.2.1 gab es bei Loop-Sounds pro Durchlauf eine kurze Unterbrechung, die wurde gefixt.

    :Bugfix: Mit F4 sollte nun das Debug-Fenster geöffnet werden können, dort wiederum befindet sich der Haken für das Script-Debug-Fenster.

  • Marcel Kuhnt

    Changed the title of the thread from “LOTUS-NG Patchnotes - NG 0.2.1” to “LOTUS-NG Patchnotes - NG 0.2.2”.
  • NG 0.2.3


    :NewFeature: Animationen sind nun auch für Szenerieobjekte möglich. Scripts für die Basecontent-Uhren werden in Kürze bereit gestellt.

  • Marcel Kuhnt

    Changed the title of the thread from “LOTUS-NG Patchnotes - NG 0.2.2” to “LOTUS-NG Patchnotes - NG 0.2.3”.
  • NG 0.2.4


    :NewFeature: Verschiebung der Texturkoordinaten per Script-Variablen werden nun unterstützt

    :Bugfix: Kompatibilitätsprobleme beim Start behoben

  • Marcel Kuhnt

    Changed the title of the thread from “LOTUS-NG Patchnotes - NG 0.2.3” to “LOTUS-NG Patchnotes - NG 0.3.0”.
  • Moin in die Runde!


    Seit heute ist sie nun endlich für alle online:


    NG-Version 0.3.0!



    Mit dieser Version kommt eine ganze Menge Neues – allen voran die Unterstützung von Bussen! Dafür haben wir eine echte Physikengine eingebaut und trotzdem den Reifen-Straße-Bordstein-Kontakt noch einmal separat umgesetzt und verfeinert. Für Umsteiger oder Parallelfahrer haben wir außerdem die Maussteuerung in NG wieder deutlich näher an OMSI gelegt.


    Aber das ist natürlich längst nicht alles. 0.3.0 bringt in vielen Bereichen grundlegende Neuerungen und Verbesserungen mit sich.


    Fahrzeuge & Physik


    Neben der Busunterstützung gibt es unter anderem:

    • einen speziell umgesetzten und verfeinerten Reifen-Straße-Bordstein-Kontakt
    • eine Simulation der Kopfbewegung infolge der Beschleunigungskräfte, die auf den Fahrerkörper wirken
    • die Möglichkeit, Fahrzeuge auch dann zu steuern, wenn sich die Map-Kamera nicht im Flugmodus befindet
    • die Möglichkeit, Züge umgedreht zu platzieren
    • eine wieder deutlich näher an OMSI liegende Maussteuerung

    Grafik, Licht & Reflexionen



    Ein besonders großer Bereich betrifft die grafische Darstellung:

    • Echtzeitreflexionen: Nicht nur die Rückspiegel werden wieder „echt“ gerendert – es wird jetzt auch in Echtzeit eine Cubemap gerendert, die dafür sorgt, dass reflektierende Materialien die Landschaft widerspiegeln.
    • Es werden wieder Lichträume unterstützt: Die Fahrgastraumbeleuchtung beleuchtet also nicht mehr den Fahrerraum usw.
    • Sichtbare Lichtquellen mit Sterneffekten funktionieren.
    • Stablichtquellen werden unterstützt.
    • Diverse „alte“ Parameter werden wieder unterstützt, beispielsweise der ambiente Lichtanteil auf der „Rückseite“ von Spotlights.
    • Für Tunneleinfahrten gibt es Ambientlight-Farbverläufe.
    • Nicht nur gebackene Ambient Occlusion, sondern nun auch wieder gebackene Schatten werden unterstützt.
    • Perspektivwinkel können je nach Option weich erfolgen.

    Karten, Darstellung & Nachladen


    Auch bei der Darstellung großer Karten gibt es Neuerungen.


    „Landmarken-Objekte“: Beim erstmaligen Laden der Karte wird gescannt, ob es irgendwo auf irgendwelchen Kacheln sehr große Objekte gibt. Diese werden dann separat registriert und können anschließend kartenweit dargestellt werden, auch wenn sie sich nur am Horizont befinden.



    Außerdem gibt es:

    • ein umfangreiches Optionsmenü mit zahlreichen Einstellungsmöglichkeiten, insbesondere zur Optimierung der Grafik
    • Optionen für Licht-, Schatten- und weitere Effekte
    • Einstellungsmöglichkeiten für das Nachladeverhalten
    • Entrypoints, die jeweils mit einem Symbol für Bahn oder Bus markiert sind
    • einen Ladebildschirm

    Bedienung, Benutzeroberfläche & Hilfe


       


    Auch bei Bedienung und Komfort hat sich einiges getan:

    • Tastenkombinationen können bearbeitet und in einer Liste nachgeschaut werden.
    • Es gibt eine interaktive Tastatur: Dargestellt wird eine stilisierte Tastatur, auf der die jeweiligen Befehle notiert werden. Drückt man beispielsweise Strg, schaltet die Tastatur um und zeigt alle Tastaturbefehle, die zusammen mit Strg ausgeführt werden können. Und der Clou: „Interaktiv“ bedeutet, dass hier immer die aktuell konfigurierten Tasten dargestellt werden!
    • Es gibt eine Offline-Hilfe sowie diverse weitere Hilfsmittel, beispielsweise eine FIS-Code-Liste, spezifische Bedienhinweise fürs Fahrzeug und Hilfetexte für klickbare Elemente.
    • Es gibt ein flexibles Sprachsystem. Mitgeliefert werden Deutsch und Englisch, aber wie bisher lassen sich weitere Sprachen ergänzen.
    • Die Informationen oben rechts können ausgeblendet oder auf ein separates Fenster gelegt werden. Wird das separate Fenster verwendet, wird dort auch eine interaktive Uhr platziert.
    • Es gibt eine Pause-Funktion.
    • Es gibt eine Mastervolume-Einstellung.

    Scripting & FIS


    Parallel zu den ganzen Entwicklungen haben wir einen umfangreichen Baukasten fürs Scripten, insbesondere von Fahrzeugen, entwickelt. Die Vorstellung desselben wird im Hintergrund bereits geplant. Seht hierzu auch diesen Beitrag:


    Neuigkeiten rund um LOTUS


    Auch direkt in NG gibt es zahlreiche Neuerungen für Scripter:

    • Scripts können jetzt im alten ContentTool fest in Objekte eingebettet werden. Die Objekte bleiben dabei weiterhin abwärtskompatibel und tragen dann einfach zwei Scripts – eines für LOTUS Classic und eines für NG.
    • Es gibt eine Vielzahl neuer Scriptmöglichkeiten, mittlerweile auch den Zugriff auf FIS-Daten.

    Auch die Basis-FIS-Gruppen wurden erweitert. Möglich ist nun:

    • die Erweiterung mit Strings für zweizeilige Haltestellenanzeigen
    • separate Seitenanzeigen
    • Linien- und Sonderzeichenänderungen während der Fahrt

    Aufgrund dieser Erweiterungen, die im alten ContentTool nicht möglich sind, ist die Content-Kategorie Basis-FIS die erste, die auch in der NG-Version neu angelegt, geladen, bearbeitet, gespeichert und gepackt werden kann.




    Dazu gibt es außerdem eine Vorschaumöglichkeit: Sobald diese aktiviert wird, verwenden die Fahrzeuge mit dieser FIS-Gruppe beim Schildern direkt die vorgenommenen Änderungen usw.


    Debugging & Support



    Fürs Debuggen und den Support gibt es ebenfalls einige praktische Neuerungen:

    • Die aktuellen Optionen können in die Zwischenablage kopiert werden, um sie zügig und fehlerfrei an einen Supporter zu senden.
    • Es können Echtzeit-Diagramme über Framerate und parallel laufende Kenndaten dargestellt werden – sowohl für die eigene Analyse als natürlich auch für Debugging & Co.
    • Wenn die Option „Quickstart“ eingeschaltet ist, kann der Quickstart mit dem Parameter --no-quickstart trotzdem verhindert werden.

    Wichtige Änderung bei den Tasten


    Achtung: Die Sichtsteuerung liegt ab sofort wieder – wie früher – auf den Tasten F1–F4 statt wie zwischendurch auf 1–4.

    Die zuvor auf den Tasten F2–F4 gelegenen Debug-Fenster liegen jetzt auf Strg+F2 bis Strg+F4.


    Und sonst?


    Und abgesehen davon wurden sowohl die Karte als auch DL weiter gebaut.


    Dank der integrierten Hilfe bleibt ja, genau genommen, nur noch eine Frage zu beantworten:


    Wie startet man statt des klassischen LOTUS die NG-Version?


    Wenn Ihr LOTUS über die Steam-Bibliothek startet, könnt Ihr per Startoption „LOTUS.NG“ auswählen.


    Alternativ könnt Ihr einfach im Installationsordner von LOTUS zum Ordner „lotus_ng“ wechseln und darin die simulator.exe starten.


    Informationen für Scripter


    Und für diejenigen, die bereits mit dem Scripten begonnen haben, seien noch drei Sachen erwähnt:


    Aus organisatorischen Gründen wird docs.lotus-simulator.dev aktuell nicht nachgeführt.


    Stattdessen entnehmt die Informationen bitte:

    • diesem Forum

    Außerdem:

    • Das Deploy erfolgt nun aus „lotus-scr“ statt „lotus-sc“. Details dazu finden sich in der Offline-Hilfe.
    • Die Dependency „lotus-script“ muss in „lotussim-script“ umbenannt werden.


    UND NUN VIEL SPAẞ mit NG 0.3.0!


  • NG 0.3.1:


    :NewFeature: Nach einem Absturz öffnet sich beim nächsten Starten ein Dialogfeld, bei dem einerseits direkt der Ort des Crash-Protokolls aufgerufen werden kann (das kann dann hier hochgeladen werden), es wird auch das Crash-Protokoll angezeigt und unten kann man auswählen, ob man noch mal die alte Situation laden möchte (so wie bei Quickstart) oder zur Sicherheit wieder "leer" starten möchte.


    :NewFeature: Bei diversen Fenstern (Hilfe usw.) gibt es jetzt einen Pop-Out-Knopf neben dem Schließen-Knopf, um das Fenster vom Hauptfenster zu trennen.


    :Bugfix: Zwei potentielle Absturz-Ursachen beseitigt.

  • Marcel Kuhnt

    Changed the title of the thread from “LOTUS-NG Patchnotes - NG 0.3.0” to “LOTUS-NG Patchnotes - NG 0.3.1”.
  • NG 0.3.2


    :NewFeature: 2D-Karte; je nachdem, ob die Karte in der realen oder fiktiven Welt liegt, basiert sie auf OpenStreetMap oder der gebauten Karte

    :NewFeature: Fahrzeug-Repaints werden nun unterstützt, insbesondere lassen sie sich beim Zusammenstellen des Zuges auswählen.

    :NewFeature: Geparkte Autos werden nun platziert

    :NewFeature: Ampelanlagen werden importiert und laufen im Testbetrieb. Zwar noch keine Einbindung der Ampel-Szenerieobjekte, aber im Debug-Fenster Strg+F6 kann man bereits den Betrieb laufen sehen

    :NewFeature: Offline-Hilfe kann auch extern (im Browser) geöffnet werden

    :Bugfix: Abfangen von ungültigen Kollisionsmeshs, die zuvor zum Absturz geführt haben

    :Bugfix: UV-Koordinaten in den ActionEvents werden während Drag-And-Drop-Aktionen ständig aktualisiert

    :Bugfix: Bei eingeschalteten Szenerie-Lichtquellen-Schatten erfolgte der Rückwechsel von Nacht wieder auf Tag unvollständig, so dass die FPS-Zahlen niedriger waren, als vor dem Wechsel zur Nacht

  • Marcel Kuhnt

    Changed the title of the thread from “LOTUS-NG Patchnotes - NG 0.3.1” to “LOTUS-NG Patchnotes - NG 0.3.3”.
  • NG 0.3.3


    :NewFeature: Lenkräder, Gamecontroller und ähnliche Geräte. Die Belegung erfolgt in den Optionen, ausprobieren geht über das Test-Dialogfeld Strg+F7. Scripts können Achsen lesen und Force Feedback setzen: Feder, Reibung und Vibration. Force Feedback lässt sich je Steuergerät ein- und ausschalten. Vibration, Rückstellkraft und Reibkraft haben jeweils eine unabhängige Intensitätseinstellung zwischen 0 bis 300 %. Startparameter --no-forcefeedback: es wird keinerlei Force Feedback ausgeführt, auch kein Suchen oder Aktivieren der Motoren. Lenkräder und andere Steuergeräte bleiben benutzbar. --no-hardware lässt zusätzlich jede Gamecontroller-Aktivität aus. Tastatur und Maus bleiben in beiden Fällen an.

    :NewFeature: Performance-Messungs-Modul: Aktivieren aus dem Hilfe-Menü, konfigurieren im "Debug"-Teil in den Optionen

    :NewFeature: Dieselbe Aktion darf über mehrere Tasten (Eingabegerät und/oder Tastatur) belegt sein.

    :NewFeature: Tastenbelegungen können beim Loslassen auslösen.

    :NewFeature: Scripts können den Lenkwinkel von Straßenfahrzeugen direkt setzen, von Anschlag zu Anschlag, und die Kraft aus den Rädern lesen.

    :Bugfix: Absturz auf älteren Prozessoren ohne BMI2 (`EXCEPTION_ILLEGAL_INSTRUCTION` auf `shlx`).

    :Bugfix: Absturz ganz am Anfang, wenn kein Audiogerät da ist.


    ---


    Info für die Scripter: Es gibt neue Versionen diverser Script-Crates auf crates.io:


    lotussim-script: 0.8.7

    lotussim-script-sys: 0.5.3

    lotussim-shared: 0.6.3 und

    lotus-extra: 0.3.6