Manchmal sind zu viele FPS im Games unnötig. Echt jetzt. Warum sollte beispielsweise ein Indie-Adventure mit 200 FPS angezeigt werden, wenn das menschliche Auge eh nur 24 Bilder pro Sekunde sehen kann uns weniger Bilder pro Sekunde genügen?
Weniger «Frames per Second» (FPS) sind tatsächlich manchmal mehr. Manchmal braucht ein Spiel nicht mehr als 30 Bilder pro Sekunde, es sei denn es ist ein Action-Kracher. Im übrigen erkennt das menschliche Auge nur 24 FPS Je nach dem braucht man Ingame nicht die volle Anzahl FPS und nicht selten «laggt» es eben nicht wegen zu wenig Bildern in der Sekunde, sondern aus anderen technischen Gründen (Mikro-Rucklern zb).
Nachtrag: Auch ich bin dem Mythos «Das Auge sieht nur 24 FPS» aufgesessen. Das ist falsch! Hierzu lohnt es sich ungemein dieses Video anzuschauen, in nur 9 Minuten ist man sehr viel schlauer.
Diese Gründe sprechen für eine FPS-Limitierung
Die Framerate zu limitieren kann aus ganz unterschiedlichen Gründen Sinn machen:
- Hitzeentwicklung: Besonders bei Gaming-Laptop ist eine FPS-Limitierung sinnvoll, insofern das Spiel es erlaubt. Endlich darf das Notebook wieder auf dem Schoss gehalten werden, ohne dass unser Allerheiligstes verbrennt!
- Stromverbrauch: Auch hier punktet eine FPS-Limitierung, weniger Stromverbrauch schont die Batterie und bedeutet mehr Akkulaufzeit.
- Spulenfiepen: Es kann grässliches, quietschendes Spulenfiepen (engl.: Coil-Whine) entfernen. Spulenfiepen tritt manchmal bei zu viel FPS auf, zum Beispiel in einem Spiele-Menü mit 9000 FPS.
- Frame-Lock: Im besten Fall werden die Frames auf den immer erreichten FPS-Drop im Spiel gelockt. Schwankt die Framerate beispielsweise zwischen 80-120 spielt es sich flüssiger, wenn die Framerate auf 80 gelockt wird.
- V-Sync: Manche Spiele ruckeln bei aktiviertem V-Sync. Dank dem FPS Limit kann unter Umständen das Ruckeln behoben werden, zudem werden beispielsweise 70 anstatt 90 FPS auf einem 60 Hz Bildschirm flüssiger dargestellt.
Lange Zeit war es beinahe unmöglich, die FPS unter Linux zu limitieren. Viele der Notlösungen über ein erzwungenes V-Sync funktionieren schlecht oder man macht den Doktortitel bis es klappt. Für viele OpenGL Games gibt’s jetzt eine einfache Lösung.
So geht’s: libStrangle installieren – FPS limitieren
Tausend Dank an den User «torkel104», er hat einfaches Programm geschrieben womit die Bilder pro Sekunde auf eine beliebige Anzahl limitiert werden können. Es funktioniert nicht ganz in allen OpenGL Games, aber in den Meisten.
Die Installation ist einfach, auch wenn das Wort make bei einigen Lesern zu Kopfschmerzen führt (zu Recht). Keine Angst, bei libstrangle als Framerate-Limiter geht das Rucke-Zucke.
Libstrangle für Linux/OpenGL liegt auf Github als Download bereit. Nach dem Herunterladen und entpacken muss zwingend das Meta-Paket libc-6-dev-i386 nachinstalliert werden (Ubuntu/Debian). Dann kompilieren und installieren:
cd ~/Downloads/libstrangle-master sudo apt-get install libc6-dev-i386 make sudo make install
That’s it. Falls beim Kompilieren (make) Fehler auftreten fehlen nebst libc-6-dev-i386 auch noch die Pakete gcc, gcc-multilib und/oder gcc-32bit – einfach nachinstallieren und nochmal kompilieren, also make ausführen.
Um jetzt die FPS zu limitieren gibt es verschiedene Möglichkeiten. Innerhalb Steam-Games geht am einfachsten mit Rechtsklick » Properties » Set Launch Options… » hinzufügen „strangle FPS=eineNummer %command%„, ohne Anführungszeichen.
Außerhalb Steam können die meisten OpenGL-Spiele mittels strangle 60 /path/to/game
in den FPS limitiert werden. Easy, nicht!? Vielleicht gibt es in Zukunft noch andere Wege der Begrenzung, in jedem Fall sollte man das Readme kurz überfliegen.
Wieso wird ein Mal `strangle FPS=60 cmd` und dann `strangle 60 cmd` verwendet?
RTFM!!1!
Spielt keine Rolle, geht beides.
Beides funktioniert 😀 Okay, das ist verwirrend. Werde ich anpassen.
markdown ftw, würd ich sagen, ist hier aber nicht verwendbar, wie’s aussieht.
Markdown ftw? Den check ich nicht (omg bin ich zu alt? :-P)
Markdown (https://de.wikipedia.org/wiki/Markdown) ist an vielen Stellen für zB Kommentare usw. erlaubt. Die Backticks „`mein code`“ wären ne Auszeichnung für inline-code (https://help.github.com/articles/basic-writing-and-formatting-syntax/#quoting-code)
Einfacher ist es Vsync anzuschalten, was die Wiederholrate automatisch auf Bildschirm Wiederholrate begrenzt.
Bei MESA automatisch an, bei proprietären Treibern auch nur ein klick der dann global für alle apps gilt
Ich kann es ehrlich gesagt nicht wirklich nachvollziehen, warum es notwendig ist, wein Spiel mit mehr als 30 fps zu haben, wenn das menschliche Auge sowieso nur 24 Bilder pro Sekunde erkennen kann?
Von 24 auf 30 ist noch eine kleine Reserve drin, das kann ich noch verstehen. Aber was nutzen 100 fps bei einem Spiel, wenn ich nur 24 Sehen kann.
Uhh, das dachte ich bis soeben auch wie im Artikel fälschlicherweise erwähnt. Aber, dieses Video https://www.youtube.com/watch?v=MZVUz3Ef000 räumt den Mythos 24 FPS auf, dem auch ich aufgesessen bin. Absolut zu empfehlen.
Jetzt muss ich den Artikel insoweit umschreiben, dass das Auge mehr als 24 FPS sieht. Ist mir irgendwie peinlich :o)
verdammt, jetzt hab ich meinen 144Hz Monitor umsonst gekauft, 120″FPS“ verschwendet ;(
Sehr interessantes Video… Vielen Dank für den Link zu den Infos!
Für faule: https://www.c-r-t.tk/files/libstrangle_20180402-1_amd64.deb
Und hier in hübsch: http://deb.c-r-t.tk/packages/debian/pool/main/libs/libstrangle/ *schamlose Werbung verbreitet*
Danke crt0mega :-)! Kein Problem, diese Art „Werbung“ ist doch vollkommen ok *smile