Performace verbessern durch Mods entmisten?

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Wie agiert das Spiel eigentlich mit Mods?


    Werden alle aktivierten Mods in den Speicher geladen?


    Werden nur tatsächlich im Spiel verwendete Fahrzeuge geladen oder alle verfügbaren?


    Manche Mods erlauben die Fahrzeuge die man verwenden will auszuwählen. Hilft das oder werden trotzdem alle geladen?


    Bringt es was nicht benötigte Teile eines Modes einfach aus der lua zu löschen? Falls das Spiel alle installieren Mods in den Speicher lädt ohne zu unterscheiden ob man sie tatsächlich auf der map verwendet dann müßte das helfen.

  • Mods können auf sehr unterschiedlichen Ebenen das Spiel verändern.


    Wenn es um Modelle/Fahrzeuge geht, werden diese erst geladen, wenn sie gebraucht werden. Das merkt man daran, dass es kurz lädt/einfriert, wenn ein Model eingesetzt wird, das noch nicht auf der Map vorhanden ist.


    Wenn man hunderte Mods aktiviert, werden natürlich auch die enthaltenen Modelle/Ressourcen eingelesen/überprüft, das sollte aber nur den Ladevorgang verlängern.


    Irgendwelchen Lua Code zu löschen bringt gar nix und macht nur Probleme.


    Wenn es um die Grafik Performance und ums Auffinden von Performance kritischen Mods geht, hier ist ein Videolink von BloodyRulez: Fahrzeuge ruckeln zunehmend im Verlaufe des Spieles

  • Wenn man hunderte Mods aktiviert, werden natürlich auch die enthaltenen Modelle/Ressourcen eingelesen/überprüft, das sollte aber nur den Ladevorgang verlängern.

    Naja beim Ladevorgang werden zuerst meine 16 GB VRAM und dann noch 26 GB weiteres RAM angefüllt und die bleiben dann auch voll. Sind das wirklich alles Sachen die im Savegame wirklich schon auf der map sind?

  • Naja wenn die Texturen "Sehr hoch" sind, verbraucht das alleine im Vanilla Spiel schon Unmengen an VRAM. Alle Texturen, die auf der Karte in Verwendung sind, müssen eingelesen werden. Und der RAM Verbrauch ist bekanntermaßen auch relativ hoch. Wie groß ist dein Savegame?


    Mach halt mal den Gegentest. Neue leere Karte mit genau denselben Mods aktiviert.

  • Werden alle aktivierten Mods in den Speicher geladen?

    ja und das gleich am Anfang bei den ersten 20% des Ladebalkens
    daher gibt es - sollte ein Mod korrupt sein, auch wenn du den noch nicht verbaut hast - dann in dem Zeitraum eine Fehlermeldung.

    Manche Mods erlauben die Fahrzeuge die man verwenden will auszuwählen. Hilft das oder werden trotzdem alle geladen?

    dann werden nur jene geladen die du ausgewählt hast

    Bringt es was nicht benötigte Teile eines Modes einfach aus der lua zu löschen? Falls das Spiel alle installieren Mods in den Speicher lädt ohne zu unterscheiden ob man sie tatsächlich auf der map verwendet dann müßte das helfen.

    das würde ich nicht weil du dann eventuelle Abhängigkeiten ruinierst und damit das Spiel zum Absturz bringst.
    Und selbst wenn würde ich sie nur auskommentieren und keinesfalls Code aus der Lua wirklich löschen.
    Wenn, dann sollte das nur einer machen, der wirklich sattelfest bei Modding und Scripts ist und weiß, was er tut. Und selbst dann muss man höllisch aufpassen

    Naja beim Ladevorgang werden zuerst meine 16 GB VRAM und dann noch 26 GB weiteres RAM angefüllt und die bleiben dann auch voll.

    und damit hast du auch das Problem erkannt: die Texturen sind es großteilig, die den VRAM so anfüllen.
    Und da jedes Modell Texturen hat, und - das muss man leider auch erwähnen - manche Modder nicht auf die Texturqualität achten, passierts halt mal dass man mit hunderten Mods irgendwann das Limit erreicht

    Texturqualität: man braucht für ein Asset zB keine 2048 Textur, selbst 1024 is schon zuviel. Trotzdem findet man sowas öfter. Auch besonders bei Steam-Workshop Mods, weil es da nicht so einen Qualitätsstandard gibt wie hier im Forum....

    MfG, die Licaon

  • ja und das gleich am Anfang bei den ersten 20% des Ladebalkens
    dann werden nur jene geladen die du ausgewählt hast

    Mittlerweile habe ich alles getestet. Die Texturen werden bei mir erst zum Schluß geladen zuerst VRAM dann restliches RAM (ich sehe live wie sich das RAM füllt). Bei mir sind das 30 GB, weitere 12 GB werden andere Sachen geladen oder braucht es RAM für andere Zwecke. Es werden nur die Texturen geladen die tatsächlich im Savegame sind. D.h. es werden noch mehr werden. Einsparen ist schwer ich habe z.b. nur sehr wenige LKWs und Flugzeuge und fast keine Schiffe geladen. Bei mir fahren 340 Züge und nochmal soviel andere Sachen. Beunruhigend ist, daß ich noch fast keine Vegetation gebaut habe.


    Die meisten Texturen sind nicht sehr groß aber es summiert sich. Die meisten Loks brauchen um die 30 MB, die 01 10 braucht 133 MB.


    Ich habe drei items gefunden die indiskutabel Ressourcen verbrauchen - d.h. selbst aus vielen km Entfernung wenn man sie gar nicht wirklich sieht brauchen Sie diese Leistung nur weil sie da sind.


    das waren 6,5% bei einem Dutzend SdKfz 251 vor einem Stahlwerk

    4,5% für Candyshops

    8-15% für MAV facc irgendwas Wagen


    spürbare Verbesserung brachte das entfernen dieser items aber natürlich nicht


    Und hier liegt auch das Problem der Programmierung. Das Spiel lädt weit entfernte Gegenstände die man gar nicht sieht. Die Performance wäre weitaus höher wenn Assets erst dann geladen würden, wenn man sie wirklich sieht. Das Spiel weiß ja wie groß sie sind und wie weit man davon entfernt ist. Die 251er und Candyshops waren bei dem Verbrauch keinen mm groß, man konnte sie erst erkennen, wenn man sehr nahe war, da waren sie dann auch gleich bei 15%. Natürlich sieht man Häuser aus xx km Entfernung - die Parkbank aber nicht trotzdem wird sie voll berechnet.


    Ein Schieberegler inwieweit kleine Details in Entfernung angezeigt werden sollen würde das Performanceproblem wahrscheinlich lösen.


    Der CPU Verbrauch des Spiels ist gering und steigt auch nicht an bei mir keine 15% für Berechnungen ist also noch genug Spielraum die Darstellung ist das Problem.

  • Und hier liegt auch das Problem der Programmierung. Das Spiel lädt weit entfernte Gegenstände die man gar nicht sieht. Die Performance wäre weitaus höher wenn Assets erst dann geladen würden, wenn man sie wirklich sieht.

    Ein Schieberegler inwieweit kleine Details in Entfernung angezeigt werden sollen würde das Performanceproblem wahrscheinlich lösen.

    das nennt man LODs und gute Modder bauen das bereits seit Jahren ein.
    LOD = Level of Detail
    dh von weiter weg muss nur ein Pappkarton oder eine Fläche gerendert werden ... oder nix ... und nicht das Highendmodell.

    MfG, die Licaon

  • Beunruhigend ist, daß ich noch fast keine Vegetation gebaut habe.

    Wahrscheinlich nicht so auschlaggebend, wenn nicht zuviele Modtexturen verwendet werden, da ja dann immer dieselben Texturen benutzt werden.


    Ich habe drei items gefunden die indiskutabel Ressourcen verbrauchen - d.h. selbst aus vielen km Entfernung wenn man sie gar nicht wirklich sieht brauchen Sie diese Leistung nur weil sie da sind.

    Wenn du ein Objekt findest, das unverhätlnismäßig performance verbraucht, ist es am besten dem Mod autor bescheid zu sagen. Im besten Fall kann er das optimieren.


    Die Lod Distanzen sind für jedes Modell einzeln festgelegt und müssen je nach Art/Größe des Modells angepasst werden.

    Es gibt auch einen globalen Lod-Faktor (auch in Debugtools).


    Falls du es noch nicht kennst, du kannst mit den GPU Timings die Performance genauer untersuchen:

    https://www.transportfever2.co…?id=modding:ingametools&s[]=gpu


    Auch besonders bei Steam-Workshop Mods, weil es da nicht so einen Qualitätsstandard gibt wie hier im Forum....

    Kann man das wirklich so sagen?


    Mir wäre nicht bekannt, dass es hier im Forum oder von offizieller Seite eine Art Richtlinien zu Texturgröße, Lods, Anzahl Tris für Mods gibt

  • das nennt man LODs und gute Modder bauen das bereits seit Jahren ein.


    Ich weiß schon das es diese LODs gibt und beim SdKfz 251 gibt es wirklich nur LOD0. Aber selbst wenn alles in LOD2 vorliegen würde dann sind es auch 100x 0,5% d.h. 100 solcher kleiner nicht sichtbarer Objekte brauchen dann schon 50% der Grafikleistung. Könnte man die dort wo man sie eh nicht wirklich sieht ganz ausblenden würde das Spiel also weitaus mehr fps zustande bringen. Also selbst wenn es überall ein LOD2 gibt ändert das nichts am Problem unsichtbare Details summieren sich auf jeden Fall und verbrauchen den Großteil der Grafikleistung vollkommen sinnlos.



    Falls du es noch nicht kennst, du kannst mit den GPU Timings die Performance genauer untersuchen:

    https://www.transportfever2.co…?id=modding:ingametools&s[]=gpu


    Ich habe erst angefangen alles zu untersuchen aber konnte bisher nur wenige Sachen finden die ich einsparen kann.

    Einmal editiert, zuletzt von lohen ()

  • Wenn die Lods vernünftig festgelegt sind und das Endlod sparsam genug ist (im einfachsten Fall Quader), gibt es da keine Probleme


    Man muss halt schauen, was den wesentlichen Teil ausmacht. Das ändert sich natürlich auch je nach Position.


    Es hilft schon viel die Texturen "nur" auf Hoch zu stellen, ohne große Grafikverluste

  • Es gibt diesen Regler den ich wollte tatsächlich bereits im Spiel. Er heißt LOD Scale und ist im Debugmenü. Damit lassen sich wahrscheinlich für die meisten die keine so hohen Ansprüche haben die Performanceprobleme lösen. Ich konnte ihn immerhin von 1 auf 0.73 stellen dabei werden nur Bäume und Vegetation in der Entfernung etwas weniger dicht und kleine Objekte die ganz weit weg sind werden entfernt. Oberleitungen bleiben aber auch in großer Entfernung noch sichtbar. Die Performance ist dann immer noch schlecht aber man gewinnt 15-20%.


    Der eingestellte Wert bleibt auch erhalten wenn man den debug Modus wieder ausschaltet. Leider wird die Einstellung aber nicht gespeichert, so daß man sie bei jedem Spieleneustart wieder neu einstellen muß.

  • Ja allerdings ist das dort in Verbindung mit anderen Parametern. Schlußendlich ist das die Geometrie Einstellung - was schon irgendwo simmt aber auch überraschend ist, denn unter Geometrie hätte ich mir Auswirkungen auf die Fahrzeuge erwartet die es defacto aber erst bei viel niedrigeren Einstellungen geben würde.


    Performancekiller ist hier auch wenn man so wie ich NEP installiert hat was die Regelmöglichkeit praktisch außer Kraft setzt, weil in jeder Einstellung 1.0 steht und noch eins drauflegt indem es überhaupt erst ab 10km irgendwas tut. Vielleicht hat sich der eine oder andere ja schon gewundert warum er keinen Unterschied sieht, wenn er die Geometrie Einstellung ändert. Dort gibt es aber auch eine config in der man das ändern kann.

  • Die ganze Leistungsdiskussion hier verläuft vollkommen ins Leere, solange niemand weiß wo die Ursache liegt.

    Dazu müßtest du uns schonmal deine Hardware, Grafikeinstellungen, Auflösung und Anzahl der Mods mitteilen.

    Nur dann kann man sich grob ein Bild machen.

    Ebenso wäre es gut zu wissen wie denn deine Performance überhaupt aussieht. Gibt ja genug Leute, denen ist alles unter dreistellig bei den FPS zu lahm.

    Da würde sich dann jede Diskussion schlagartig erledigen.

    Ryzen 3600, RX 6700XT, 32 GB RAM

  • Kirsche:

    Die Diskussion macht auf mich den Eindruck, daß lohen lernen will, worauf er zu achten hat und was er eventuell tun kann. Für diesen Zweck läuft sie richtig.


    lohen:

    Wenn Du in den .lua-Dateien einzelner Mods herumspielen magst, kannst Du in den .mdl-Dateien die Grenzen der lod-Stufen verändern. Da liegt einiges im Argen. Die Blumen im TpF2-Zeug von SM1 sind allerliebst, aber nur mit dem Kamera-Tool aus nächster Nähe in voller Schönheit zu bewundern (wahnsinnig viele Tris auf kleinem Raum). Ich habe den Wechsel von lod0 auf lod1 von 300 m auf 50 m reduziert (eigentlich immer noch zu weit) und auf einmal fahren die Züge spürbar glatter vorbei. Da könnte noch einiges Potential liegen. Der lod-Radius geht quadratisch in die Performance ein, deshalb ist der Effekt ziemlich gut spürbar.


    lohen und @Liacon: Mit dem Laden habt Ihr beide recht. Die Mods werden in den ersten 20% des Ladebalkens von der Platte ins RAM geladen und geprüft, eingebaut u.s.w. . Und ganz gegen Ende werden die Texturen und Modelle ins VRAM gepumpt.

    13! = 13*12!

  • Die Diskussion macht auf mich den Eindruck, daß lohen lernen will, worauf er zu achten hat und was er eventuell tun kann. Für diesen Zweck läuft sie richtig.

    Das mag ja alles sein und hat seine Berechtigung.

    Es bringt doch aber nicht sich mit Kleinigkeiten im unteren einstelligem Prozentbereich aufzuhalten, wärend die Beseitigung der Hauptursache seines Problems direkt eine Verbesserung von 50-100% bringen würde.

    Ryzen 3600, RX 6700XT, 32 GB RAM

BlueBrixx