Performance Tips

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


Sie betrachten gerade eine ältere Version des Eintrags. Klicken Sie hier, um zur aktuellen Version zu gelangen.

  • Immer wiederkehrende Fragen zu Performance und wie diese möglicherweise verbessert werden kann.

    EAT1963 Konverter
    Dieser Mod darf zum normalen Spiel nicht aktiv sein ;) Sollte eigentlich klar sein, auch weil es in der Bedienung zum Konverter so steht, aber wie ich lesen musste gibt es Experten die ein Spiel mit aktivierten Konverter starten und sich über Mikroruckler wundern ;)


    Texture Cache
    Wenn plötzlich und unerklärlich die FPS in den Keller gehen, löscht als erstes den kompletten Inhalt von C:\Program Files (x86)\Steam\userdata\********\1066780\local\texture_cache.
    Hatte auch das Problem dass auf einmal meine FPS auf über die Hälfte zusammengebrochen waren. Nach dem Löschen vom Cache war wieder alles normal.


    Auslagerungsdatei / virtueller Arbeitsspeicher
    Überprüfen - sollte immer auf "Dateigröße für alle Laufwerke automatisch verwalten" stehen !
    ich kann nur davor warnen an den Einstellungen für die Auslagerungsdateien herumzufummeln, dass bringt nichts ausser Problemen. Ich weiß gar nicht wer immer diese schwachsinnigen Ideen hochbringt, man müsste da dran rumfummeln um irgendwas zu bewirken. Lasst einfach die Finger davon, es gibt da einen ganz einfachen Schalter in Windows -"Dateigröße für alle Laufwerke automatisch verwalten" - dort das Häkchen setzen und gut ist. Windows nimmt sich an virtuellem Festplattenspeicher genau das was es braucht. Wo stellt man das ein ? Einfach mal nach "Windows 10 virtueller Arbeitsspeicher" googlen, ist in einem etwas verschachtelten Menü zu finden unter den "Erweiterten Systemeinstellungen" - bissi zu kompliziert um das hier zu beschreiben, googlen geht schneller. Im folgenden Link wird es aber auch ganz genau beschrieben, wenn auch etwas ausführlicher.
    Windows 10 Auslagerungsdatei
    Und natürlich sollte TpF2 auf einer SSD installiert sein, denke aber das ist selbstverständlich.


    Frame Rate Limiter
    was auf jeden Fall noch hilft die (Micro)Ruckler zu minimieren - einen Frame Rate Limiter einzusetzen.
    TpF2 ist kein Spiel was FPS jenseits der 60 fps benötigt. Hat man vsync ausgeschaltet und die FPS schwanken oberhalb (und unterhalb) 60 FPS, gibt es bei jeder Framerate Änderung einen kleinen Microruckler, was zur Folge hat dass sich beispielsweise ein Zug trotz Framerates über 60 ruckelig durch die Landschaft bewegt.
    Wie setze ich nun einen Frame Rate Limiter ein ?
    Bei Nividia ist es ziemlich einfach, da wird der quasi schon im Treiber mitgeliefert. In der NVidia Systemsteuerung kann ich unter "3D Einstellungen verwalten" in den "Programmeinstellungen" die "Vertikale Sychronisierung" auf "adaptiv" setzen. Das bewirkt, das FPS über 60 nicht zugelassen werden, aber unterhalb von 60 fps vsync abgeschaltet bleibt (sonst würde es gleich hart auf 30 fps zurückschalten und noch mehr ruckeln wenn vsync auf on geschaltet wird). Achtet nur darauf dass ihr das nur für TpF2 macht und nicht global, wenn TpF2 unter Programmeinstellungen noch nicht existiert, müsst ihr es hinzufügen (Pfadangabe auf transportfever2.exe).
    Bei AMD gibt es soweit ich weiß ähnliches direkt in den Treibereinstellungen.
    Dann gibt es noch MSI Afterburner für NVidia, oder was persönlich bevorzugen würde, den RivaTuner Statistics Server. Da kann ich auch für jede App getrennt Framerate Limits einstellen.
    Die teuerste Hardware-Lösung kann man sich natürlich auch gönnen, eine Grafikkarten- / Monitorkombination die freesync oder gsync beherrscht wink.png
    Ein Framerate Limiter lohnt auf jeden Fall, die Animation des gesamten Rollmaterials läuft deutlich smoother, und die Stromrechung wirds dir auch danken.
    Man kann auch auf 30 fps runtergehen, dabei spart man jede Menge Strom. Habs mal getestet, im Schnitt 120 Watt weniger, statt 295W verheizt meine Kiste dann nur noch 170W. Ist auch mit 30 fps noch gut anzuschauen, wenngleich es mit 60 fps in meinen Augen einen Tick geschmeidiger läuft.


    Arbeitsspeicherbelegung

    Eine volle Map belegt oft sehr viel Arbeitsspeicher(RAM). Gerade wenn hohe Anzahl von Mods auf euer Karte ist, kann die RAM-Nutzung erheblich über dessen liegen, was die gleiche Map nur mit Vanilla-Fahrzeugen & -Gebäuden benötigen würde. Ein weiterer Problemfaktor könnte sein, dass ein oder mehrere Mods bei der Benutzung der Programmierschnittstellen ein Speicherleck verursachen. Dies lässt sich daran erkenne, dass Größe des von Transportfever 2 belegten (virtuellen) Arbeitsspeichers kontinuierlich weiter steigt, ohne irgendwann ein Maximum zu erreichen. Seid ihr euch sicher mit diesem Verdacht, könnt ihr in der Probleme-Kategorie ein Post für euer Problem aufmachen.

    Eine gute Möglichekeit, die RAM-Nutzung von Tpf2 unter Linux zu verringern, ist das Austauschen des Standard-Speicherallokierers mit jemalloc. Jemalloc ist in den Repository aller gängigen Linux-Distri verfügbar und muss zuerst mit einem Paketmanager installiert werden. Benutzt wird jemalloc durch folgenden Präfix für den Aufruf der Tpf2-Anwendung: LD_PRELOAD=$LD_PRELOAD:/usr/lib/libjemalloc.so. Dies lässt sich vermutlich in den Startoptionen eures Launchers konfigurieren. Bei Steam muss unter Spieleinstellungen->Allgemein->Startoptionen LD_PRELOAD=$LD_PRELOAD:/usr/lib/libjemalloc.so %command% gesetzt werden. Danach sollte eure RAM-Benutzung 10-20% niedriger sein. Jemalloc ist theoretisch auch für Windows verfügbar, wie es benutzt werden kann und ob es zu den gleichen Ergebnissen führt, wurde nicht getestet.


    Native Softwarebibliotheken den von Steam bereitgestellten bevorzugen (nur unter Linux mit Steam)

    Wenn Transportfever 2 auf Linux via Steam installiert ist, wird es standardmäßig mit den Systembibliotheken, welche in der "Steam Linux Runtime" enhalten sind, ausgeführt. Die in der Runtime enthaltenen Bibliotheken können allerdings mehrere Jahre veraltet sein (Bugfixes und Sicherheitsupdates bekommen sie noch), was etwas Performance auf dem Tisch liegen lassen kann. Grundsätzlich liefert Tpf2 sehr viele genutzte Softwarebibliotheken mit sich selbst mit, sodass hier einerseits nicht viele Bibliotheken auf deinem Linux-System vorinstalliert sein müssen, anderseits aber auch nur wenige Bibliotheken deiner Linux-Distri potentiell von Tpf2 genutzt werden könnten. Eine Ausnahme hierbei ist liburing, für welches Urban Games bewusst im Startskript einprogrammiert hat, dass die vorinstallierte Version der von Tpf2 mitgelieferten Version bevorzugt wird. Dass hat den Grund, dass die liburing zugrundelegende Linux-Kernel API "io_uring" noch recht neu ist und auf einer relativ neuen Kernelversion mit einer aktuellen Version von liburing mehr Performance rausgeholt werden kann. Es ist deshalb empfohlen, liburing explizit mit dem Paketmanager eurer Linux-Distri zu installieren.

    Um die Systembibliotheken der Linux-Distri zu nutzten, müsst ihr von Github Steam-Play-None installieren. Anschließend müsst ihr in Steam in den Spieleinstellungen von Tpf2 unter "Kompatibilitätstool" "Steam Play None" aus Tool auswählen. Wenn eurer Spiel danach erfolgreich startet, hat alles gut geklappt, falls nicht, einfach die Tooleinstellung auf "Steam Linux Runtime" zurückstellen.

Teilen

Kommentare 3

  • Ich konnte mit jemalloc keine Verbesserung feststellen. Such tcmalloc half nicht. Mit libmimalloc sehr ich aber eine deutliche Reduktion.

  • Diskussion dazu: Wenig FPS

  • Danke! Gilt das auch für TPF?