FPS geht ab und an in den Keller in Unreal Engine? Frage auch zur neuen Version 4.18

  • Hallo zusammen,


    Ihr habt doch bestimmt da mehr Ahnung von was FPS in Unreal Engine angeht.


    Ich hab an und ab das Problem das er von ca. 120 FPS mit Einschlag auf 7 bis 3 FPS runter Knallt. Dachte erst liegt an meinen Project aber das kommt auch bei neuen Projecte vor wo noch gar nichts ist. Selbst wenn ich mein Project oder ein neues Project auf habe und nichts mache gerade passiert das. Also solche FPS Probleme habe ich nirgends nur bei Unreal Engine gerade ^^


    Habe mein System mal überwacht und da Lastet aber nichts wo ich sagen können das ist das Problem. Glaube das Problem hab ich, Wo mal ein Update kam bei Version 4.17.2, Zumindest stand da mal was das ein Update zu Verfügung steht auf oder für diese Version. Wenn ich nicht Falsch liege ist das auch seit dem, weil davor hatte ich diese Probleme nicht. hmm


    Es steht ja die Version 4.18.1 zu Verfügung, wie ist das wenn ich mein Project auf diese Version nutzen möchte. Ich habe da im Inet schon einiges gesehen aber das waren noch Alte Versionen wo das erklärt wird, eventuell geht es ja bei den neuen Versionen jetzt einfacher. Und bevor ich was Schrotte frage ich lieber :)


    Da ich in meinen Project schon einiges gemacht und getan habe weiß ich nicht ob das so einfach wird und eventuell geht es dann wieder mit den FPS.


    Bedanke mich für Rückantworten :)

  • Ich glaube ich habe es gefunden :)


    Ich habe UE auf einer SSD und mein Project auf einer HDD. Hier glaube ich das liegt an der HDD, Wo ich da mal Spiele drauf hatte hab ich ab und an kurze Stand Bilder gehabt im Spiel. Glaube das wird jetzt auch bei mein Project so sein da es auf dieser HDD ist, ist halt nicht die Schnellste 1TB 5200rpm.


    Dachte es macht UE nichts aus, aber Anscheinend doch :) Werde es mal mit meine andere 1TB 7200rpm versuchen, Ansonsten muss es auf die SSD wenn es nicht anders geht.


    Werde jedenfalls mal Rückmeldung geben, Eventuell bin ich nicht der einzige mit solch ein Problem.

  • Hiho,


    ne ist eine Interne, liegt aber jedenfall an der Platte die kurzen FPS Einbrüche wie ich mir es schon gedacht habe. Auf der anderen 1TB läuft es normal, denke mal werde es aber auf die SSD umlagern was denke auch sinnvoller wäre. Die 1 TB oder mehr Platten was nicht SSD ist, kann man zu heutigen zeit nur noch als Datenspeicher nehmen. Für Spiele oder Programme die Leistung brauchen, sind diese Platten eine echte PC Bremse.

  • Die HD wird nicht das Problem sein sondern das Programm was (ungefragt?) diese auslastet. Ich habe sicher nen duzend UE4 Projekte auf einer 5400 HD und keine Probleme. Man muss so Sachen wie die Indizierung oder Defragmentierung deaktivieren. Im Taksmanager hast du auch einen Ressourcenmanager. Der zeigt auch die HD Auslastung und das Programm was diese verursacht an.


    Dein Spiel läuft eigentlich nur über den Arbeitsspeicher. Sollte nur auf die HD zugreifen wenn Daten nachgeladen werden.

  • Ja ist auch nur die eine 1TB die immer bei 100% rumgammelt wenn man was mit ihr macht, hatte die auch schon Formatiert usw. aber die lastet schnell aus. Hatte auch mit ein Programm mal drüber geschaut auf fehlerhafte Sektoren aber war nichts auffälliges dabei.


    Also so wie die FPS in den Keller gegangen sind so hat die HDD 100% gehalten, erst wo dann die FPS hoch gingen in UE hat sich auch die Platte wieder Beruhigt. Keine Ahnung was die Platte hat, die hat gerade mal knappe 1000 Laufzeit Stunden runter.

  • Schau mal bei Settings -> Editor.
    Da müsste ein Eintrag zu FPS sein, vor allem Smooth FPS oder eben fixed FPS.
    Bei Smooth den Haken raus ubd entsprechend die Werte einstellen.


    Dann bei deiner Grafikkarte (falls Nvidia), dort bei 3D Einstellungen das UE4 64x exe auswählen und Vysnc deaktivieren.


    So ein ähnliches Problem hatte ich auch, habe im Editor fast immer 100 fps und wenn ich auf meinem PC einen dedizierten Server + 2 Clients laufen lasse, sind die FPS auf ca. 10 eingebrochen.
    Nach der Umstellung liege ich bei gut 30 fps... leider auch noch zu wenig.
    Irgendwie läuft meine GPU auch nur mit rund 60% Leistung in UE4 :(



    Wenn mir die Frage hier erlaubt sei.
    In MyCharacter (Character Blueprint), habe ich eine unnötige lange compile Zeit (ca. 8 Sekunden), wenn ich dort ein CustomEvent erstelle, dauert das auch rund 6 Sekunden.
    Wähle ich dort dann (z.b MultiCast) oder anderes, dauert es wieder gut 6 Sekunden, auch bei Reliable usw.


    Es dauert so ewig lange und das nervt total.


    In anderen Blueprints geht das rucki zucki.


    Die CPU Leistung ist während der Dauer auch bei ca. 8-10%.


    Projekt ist auf einer eigenen Samsung 830 SSD.
    CPU: Ryzen 7 1800x @8x 3,9 ghz
    Ram: 2x 16 gb DDR 4 @3066 mhz
    GPU: 1080 Ti @1.922 mhz


    Gibt es irgendwie eine Möglichkeit das zu beschleunigen?
    Leider benötige ich alles in MyCharacter damit es funktioniert.
    Vieles habe ich schon ausgelagert.ex

  • @htdocs
    Nutzt du vielleicht mehrere Bildschirme? FPS drops kommen grad beim testen, wenn du Ue4 Fenster auf mehrere Bildschirme verteilst! zum Beispiel:


    linker Bildschirm:
    UE4 Hauptfenster mit View und Settings und Browser etc..


    rechter Bildschirm:
    UE4 Material Editor Fenster oder Blueprint Fenster oder sogar eine "zweite View" etc....


    Dadurch brechen die FPS schön runter, wenn dein Projekt noch nicht an Meshes und Materials optimiert ist.


    Zusätzlich achte drauf, falls du Capturing mit Kameras machst um etwas zu Debuggen (Animationen oder Aktionen)...da wird die Kamera auch volle Pixel "capturen" und somit wird deine FULL HD Scene 2x gerendert + weitere Fenster (falls mehrere Bildschirme) und somit hast du gewaltige FPS Drops!


    achja:


    teste mal UE4 Hauptfenster auf einem Bildschirm und starte das Projekt und teste mal.
    Ich kann mich natürlich auch komplett irren, aber einen Versuch wäre es wert!

  • Ich habe einen 34 Zoll UWQHD Monitor.
    Den Asus PG348Q mit 3440x 1440.


    Darüber lasse ich beide clienten laufen, in jeweils 1920x1440.


    Was genau meinst du mit Capturing mit der Kamera?
    Wenn ich einen Debug brauche, wähle ich es sonst im Editor seperat aus, kostet natürlich viel Leistung, wobei meine GPU nicht die volle Leistung bringen mag.


    Da mein Monitor eh nur 100hz schafft, ist alles darüber sowieso egal und Gsync greift ja soweit ab 75 hz.

  • das mit der Kamera war nur eine weitere Idee, die deine FPS runter ziehen könnte. Aber ist aktuell nicht relevant.
    Ich vermute stark, dass es daran liegt, dass du halt die beiden clients gleichzeitig laufen lässt und auch jeweils in FULL HD! Lass mal nur einen laufen und überprüf nochmal die Performance.

  • Meinst du das Blueprint compilieren? Das läuft leider nur auf einem CPU Kern.
    100% CPU durch 16 Kerne (8+8) macht 6.25% maximal Auslastung pro Kern. Deine 8-10% passen also ins Bild.


    Man kann nicht viel machen außer Zeug auslagern und betten das Epic irgendwann realisiert dass es mehr als einen CPU Kern gibt. Sogar das Rendering läuft auf nur einem Kern. Immerhin haben die Merkern Unterstützung fürs Rendering in ihre Roadmap geschrieben vor ein paar Monaten (mit Vulkan).


    Full support for UE4’s high-end rendering features utilizing the Vulkan API on both Windows and Linux including parallel rendering to take advantage of all available CPU cores.


    Was helfen würde wäre sicher auch eine ganz neue Intel CPU und auf 5GHz übertaktet. [Blockierte Grafik: https://www.unrealengine4.de/wcf/images/smilies/biggrin.png]

  • Ich hatte schon gehofft das ich einfach nur eine falsche Einstellung habe, oder noch irgendwo ein Häkchen setzten muss.


    Das ist natürlich sehr ärgerlich, habe schon damit gerechnet das entsprechend alle Kerne voll genutzt werden können.


    Das mit der GPU weiss ich auch nicht so recht warum die nicht mit voller Leistung läuft.


    Wobei 30 FPS sind ja noch halbwegs ertragbar.


    Kann es sein das die FPS auch irgendwie an die MS (Zeitverzögerung) gekoppelt sind?
    Obwohl ich alles lokal mache, habe ich einen Ping von gut 30 MS.

  • Also zuerst muß man mal unterscheiden zwischen Editor und dem finalen (Zur Auslieferung) kompilierten Spiel - im Editor läuft es immer langsamer.


    Virenscanner - wenn ihr einen installiert habt schaltet ihn mal ab. UE4 produziert solche Datenmengen und die alle immer in echtzeit mitzuscannen kann schon ein problem sein!


    Im Editor sind die FPS eigentlich auch fast wurst - bis auf ein wenig debugging macht man ja im Editor meist Dinge die nix mit fps zu tun haben.


    Wenn der Editor sehr lahm ist unbedint mal probieren die settings ("Engine scalability settings", "Material Quality" und "lighting quality") auf "Low" zu stellen. Das entlastet den Editor ungemein und wenn ihr nicht gerade an der Beleuchtung oder dem Design eines Raumes oder so arbeitet braucht das auch nicht so toll auszusehen.


    Grafikkarte:


    Bei mir war ursprünglich eine alte ATI Radeon HD 7XXX drin und der Treiber für die war nicht so ganz mit UE4 kompatibel. Hatte viele Crashes. Hatte dann eine alte Geforce GTX 745 auf ebay gebraucht für 15 Euro gekauft - läuft super.


    Festplatte:


    Mit einer normalen Festplatte geht man da echt kaputt so lahm wird das - gerade wenn das Projekt größer wird. Eine SSD muß es schon sein.


    RAM:


    Es sollten echt mindestens 16GB sein. Das finale Spiel braucht wesentlich weniger aber der Editor ist schon sehr RAM hungrig - mit 8GB konnte ich nicht mal in einem SPiel das nur aus 2 Räumen bestand die Lichter builden (Light baking). Da bekam ich dann out of memory. Selbst nur nen Browser aufmachen um was nachzuschlagen war mit 8GB kaum drin.


    CPU:


    EIn Intel Core i7 ist schon gut. CPU ist aber nicht soooo wichtig. UE4 belegt meist nut 1-3 Kerne von daher ist fast jeder Quadcore schon OK. ich habe einen Freund der entwickelt auf einem uralten Intel Core 2 Quad aus der Steinzeit - geht aber ganz gut. Lieber während der Arbeit den Virenscanner ausschalten.




    Tip: Wenn das kompilierte Spiel auch lahm ist dann liegts meist and er Programmierung. Absoluter Killer sind die "On Tick" events - die werden JEDES Frame durchgeführt - und somit extrem oft. Wer hier komplizierte oder CPU kostspielige (z.B. "Get all actors of class") DInge ausführt bekommt jeden Rechner in die Knie. "On Tick" vermeiden sofern es geht, alternativen suchen, andere Events verwenden.

  • Ich habe fleissig den Rat von Nobody befolgt in dem ich “Event Tick“ Sachen, nur auf das nötigste begrenze.
    Dafür hat eigentlich immer die “Timeline“ hergehalten... leider funktioniert das auch nicht mehr so wie gewollt.
    Wenn ich eine Timeline mit Loop und auf 1 Sekunde stelle, sind es trotzdem mehr Wiederholungen als “jede Sekunde“ so wie eigentlich gedacht.


    Dann bin ich zu “Event Time“ gewechselt und das läuft endlich mal super.



    Wie genau funktioniert eigentlich “Event Tick“, ist das gekoppelt an die FPS?
    Also wenn ich z.B. 100 FPS habe, dann wird Event Tick und alles was danach kommt, 100x pro Sekunde ausgeführt, oder wie kann ich das entsprechend steuern und regulieren?


    Es gibt ja noch einen “Delta Second“ Wert, leider habe ich keine Ahnung auf was sich das bezieht.

  • Wenn es um performance geht musst du zuerst die Quelle finden die dein Spiel verlangsamt. Dazu solltest du in der Konsole mal "stat unit" eingeben.
    Dann sollten die Zeiten angezeigt werden für Game (CPU), Draw (Drawcalls, auch auf CPU), GPU. Das gibt dir eine ganz grobe Idee wo der Bottleneck ist. Es gibt noch detailliertere analyse möglichkeiten wenn man in C++ arbeitet.
    Wenn du siehst dass Game zu lange braucht dann solltest du deinen Gameplay Code verbessern. Ist Draw zu langsam solltest du versuchen die Drawcalls in deiner szene zu verringern. Ist GPU der bottleneck so kannst du die performance verbessern indem du Dinge die auf dem gpu berechnet werden optimierst.


    Ich muss aber dazu auch sagen dass die framerate bei mir seit 4.18 ziemlich instabil geworden ist ohne dass ich großartig an meinem Projekt gearbeitet habe.