Neuigkeiten rund um LOTUS

  • :flag_ger: Bevor es hier demnächst auch mal wieder mit aktuellen Entwicklungen weiter geht, hier der Hinweis, was seit dem letzten Eintrag hier alles passiert ist – ablesbar an den Patchnotes:


    LOTUS Patchnotes :) - 1.EA.110a


    ---


    :flag_gb: Before we resume with the latest developments, here is a hint what has happened since the last entry - you can read it in the patch notes:


    LOTUS Patch notes - 1.EA.110a

  • Link zum Stream (twitch.tv)


    Datum: 04.02.2024

    Beginn: 18:00

    Ende: geplant 22:00

    Zeitzone: UTC+1 / MEZ


    In diesem Live-Stream werden wir die Grundlagen des WebAssembly-Skriptings implementieren. Dies wird den Skriptteil und die Implementierung in der Engine umfassen. Wir werden mit einem Skript (in Rust) beginnen, das einfache Zahlen addieren kann, und es erweitern, um den Austausch von Strings, Logging und den Austausch komplexer Objekte zu umfassen, bis wir ein Skript implementieren, das Variablen innerhalb des Simulators ändern kann.


    Vielleicht werden wir nicht alles Geplante implementieren, vielleicht geht es viel schneller als erwartet.


    Der Stream wird in Deutsch sein.


    ------------------------------------------------------

    Date: 04.02.2024

    Start: 18:00

    End: planned 22:00

    Timezone: UTC+1 / CET


    In this live stream we will implement the basics of the WebAssembly scripting. This will include the script part and the implementation in the engine. We will start by having a script (in Rust) that can add simple numbers and will expand it to include exchanging of strings, logging and exchanging complex objects until we implement a script which can change variables inside of the simulator.


    Maybe we will not implement everything planned, maybe it goes way faster than expected.


    The stream will be in German.


  • Push :)

  • Goodbye Unity


    Hallo zusammen,


    wir verabschieden uns von Unity. Der ausschlaggebende Punkt dafür ist die von Unity eingeführte Runtime-Fee. Die Runtime-Fee an sich ist erstmal nicht das große Problem, jedoch die Art und Weise wie diese eingeführt wurde hat bei uns und vielen anderen zu einem unwiderruflichen Vertrauensbruch geführt. Man kann leider nicht mehr ruhigen Gewissens auf Unity setzen.


    Was dann?


    Seit der Ankündigung der Runtime-Fee haben wir nach Alternativen geschaut und sind leider nicht sonderlich fündig geworden. Am ehesten wollten wir etwas nutzen. wo wir C# weiterverwenden können, damit wir nicht wieder Code portieren müssen. Allerdings hat keine C# Lösung so wirklich unsere Anforderungen erfüllt. Daher haben wir die Suche auf andere Sprachen erweitert. Vor kurzem sind wir fündig geworden.


    Rewrite in Rust


    Auf wenn Dinge in Rust neu zu schreiben mittlerweile ein Meme ist, haben wir uns genau dafür entschieden.


    - Rust kompiliert zu nativen Binaries welche sehr performant sind

    - In Rust zu programmieren ist nach einer gewissen Einstiegshürde sehr produktiv

    - Rust ist sehr effizient bezüglich der System-Resourcen wie CPU und RAM

    - Das Typ-System ist sehr ausdrucksstark

    - "If it compiles, it works"™


    ~ Bevy, Bevy, Bevy, Bevy ~


    Wir benutzen Bevy. Bevy ist Open-Source und bekommt seine Geldmittel von der Bevy Foundation. Auf einen kompletten Open-Source Stack zu bauen verhindert, dass so ein Disaster wie mit Unity passieren kann und gibt uns die Möglichkeit besser auf die Anforderungen von LOTUS einzugehen, da wir in uns den Code anschauen können und ggf. auch Anpassungen und Erweiterungen durchführen können.


    Welche messbaren Vorteile ergeben sich?


    Im Gegensatz zum Unity-LOTUS und auch zum Pascal-LOTUS gibt es deutlich bessere Performance und geringeren RAM-Verbrauch. Aufgrund des Rust-Typ-Systems und Borrow-Checkers kommt es deutlich weniger Bugs und macht Multi-Threading sicherer und einfacherer. Mehr Kerne = mehr besser!


    Bevy liefert von Hause aus automatisches Multi-Threading, Resourcenmanagement und Scheduling. Das heißt wir müssen uns weniger um solche Haushaltsarbeiten kümmern und können uns mehr auf den eigentlichen Simulator konzentrieren.


    Wird damit alles noch länger dauern?


    Ja und nein. Natürlich müssen wir LOTUS neu in Rust anfangen und aufgrund der sehr unterschiedlichen Art und Weise wie Rust im Gegensatz zu fast allen anderen Sprachen funktioniert, lässt sich der Code nicht einfach 1:1 portieren. Ebenso programmiert man in Bevy aufgrund des ECS deutlich anders als in allen anderen Game-Engines. Das hat Vor- und Nachteile. Wir sehen dies jedoch mehr als Vorteil, da wir damit gezwungen sind uns alles in einem neuen Licht anzuschauen und damit einfacheren (damit auch weniger Bugs) und performanteren Code zu schreiben.


    Aufgrund der ECS-Architektur müssen wir uns nicht mehr mit Objekt-Hierarchien und deren Aufbau und Beziehungen herumschlagen, sondern können Datenorientiert arbeiten. Dies macht den Code flexibler und performanter. Dies erhöht die Geschwindigkeit in der wir Features entwickeln können immens. Wir zahlen also jetzt erstmal einen verhältnismäßig kleinen Preis um später auf der Überholspur zu sein.

  • Es ist soweit!

    Liebe Fans, Freunde und Interessierte,


    wir möchten Euch heute zum allerersten Map-Playtest von LOTUS mit unserer neuen Engine einladen!


    In der aktuellen Version stecken unzählige Stunden Arbeit, Herzblut und Hirnschmalz. Unser Ziel war es, den größten - und berechtigten - Kritikpunkt an unserem Simulator endlich abzuschütteln: die Performance. Darunter fallen die Ladezeiten zu Beginn der Simulation, das Nachladen während der Simulation und natürlich auch die FPS. Und wir denken, wir haben es geschafft!


    Wir sind mit dem derzeitigen Stand auf unseren eigenen Geräten schon zufrieden - doch jetzt kommt Ihr ins Spiel. Schnappt Euch LOTUS und überzeugt Euch selbst. Lasst uns Euer Feedback da, Gutes wie auch Schlechtes. Wir machen in der Zwischenzeit weiter - denn wir wollen mit der neuen Version ENDLICH, das Euer Content das bekommt, was er verdient: Unseren besten Simulator!

    Ja, ich will!

    ...doch wie? Der jetzige Playtest ist ausschließlich auf 64bit-Windows-Systemen verfügbar. Linux muss noch ein wenig warten :)


    Es gibt zwei Möglichkeiten, das neue LOTUS zu starten: Wenn Ihr LOTUS über die Steam-Bibliothek startet, könnt Ihr per Startoption "LOTUS.NG" auswählen oder einfach im Installationsordner von LOTUS zum Ordner "lotus_ng" wechseln und darin die simulator.exe starten.


    Wir freuen uns auf Eure Rückmeldungen und wünschen nun viel Spaß.

    Ekranos

    Marcel Kuhnt

    Janine

  • FAQ LOTUS.NG

    Warum sind manche Texturen einfarbig grün oder rot?


    Rote Texturen bedeuten, dass es sich um dynamische Texturen (Text-Texturen, Tauschtexturen und gezeichnete Texturen) handelt, welche im Moment noch nicht implementiert sind.

    Grüne Texturen bedeuten, dass es sich um Vegetation handelt ;) Nein, es handelt sich um Texturen, bei denen mindestens eine Kantenlänge keine Zweierpotenz ist.


    Wo befindet sich die Logdatei?


    Die Logdatei finden sich in eurem Benutzer-Ordner unter "AppData/Roaming/LOTUS-Simulator/simulator.log".


    Die Tunnel sind weg?


    Sind noch nicht implementiert – also kein Bug, sondern ein Feature! :-D


    Wie wird die Performance mit KI-Verkehr und Co. aussehen?


    Wir erwarten keine nennenswerte Veränderungen mit Implementation wie dem KI-Verkehr. Die neue Architektur ist auf maximale Parallelität, basierend auf Datenabhängigkeiten ausgelegt. Sprich solange etwas nicht die selben Daten anfasst, läuft es parallel. Die Daten schnüren wir extra in kleine Pakete damit mehr gleichzeitig passieren kann.


    Beispielsweise können gleichzeitig folgende Dinge abgearbeitet werden:

    • Rendering
    • KI-Updates (es können auch mehrere KI-Fahrzeuge parallel geupdatet werden)
    • Physik updates
    • Skripte ausführen (es können auch mehrere Skripte parallel laufen)
    • Input einlesen
    • Culling
    • ...

    Die Liste könnte man ewig weiterführen.


    Mehr Kerne = mehr besser