Wann sollte ich mich bei der Optimierung der Framerate eines Spiels auf eine große FPS und wann auf eine konsistente Framerate konzentrieren?
Dies ist oft ein heiß umkämpftes Thema. Bitte beachten Sie, dass ich nicht frage, welches besser ist.
Was sind die Vor- und Nachteile von jedem?
In welchen Situationen wird einer dem anderen vorgezogen?
Beachten Sie auch: Meine Eingabe- / Verarbeitungs-, Physik- und Spielaktualisierungsraten sind unabhängig von meiner Bildrate. Das einzige, was der FPS beeinflusst, ist, wie oft ein Bildschirm gerendert wird.
quelle
Was du machen solltest:
Auf diese Weise wird das Spiel nicht unspielbar, wenn die Framerate sinkt und Sie keine Eingangsverzögerung erhalten (ich sehe Sie an, nur Ursache 2), und wenn die Framerate zu hoch wird (denken Sie an Spiele aus den 90ern).
So mache ich das:
Sie sammeln im Grunde genommen einen "Stapel" von Frames, für die Logik erstellt werden soll, und Sie können perfekt zwischen ihnen interpolieren.
quelle
Es hört sich so an, als hätten Sie mindestens zwei Ausführungsthreads, wobei Ihr Rendering auf einem eigenen Thread erfolgt. Wenn dies der Fall ist, müssen Sie sich tatsächlich um zwei Bildraten sorgen. Sie möchten, dass beide so schnell wie möglich sind. Dies hängt jedoch auch von der Art des Spiels ab, das Sie erstellen.
Bauen Sie einen Ego-Shooter, bei dem kleine Einbußen bei der Framerate einem Gegner einen Vorteil verschaffen könnten? Wenn ja, sollten Sie sicherstellen, dass Ihre durchschnittlichen fps hoch genug sind, sich aber auch um Ihre Worst-Case-Frame-Zeiten sorgen. Bauen Sie ein Brettspiel? Wenn dies der Fall ist, wird der gelegentliche Anstieg der Frame-Zeit die Benutzererfahrung nicht beeinträchtigen.
In meinen eigenen Spielen ist mein Prozess normalerweise ungefähr so:
Wenn Sie die meiste Zeit mit 30 fps arbeiten, aber alle 10 Sekunden einen Spitzenwert von 200 ms erreichen, führt dies zu Problemen. Wenn Sie jedoch durchschnittlich 15 fps erzielen, erhöhen Sie zuerst Ihre durchschnittlichen fps.
Die kurze Antwort wäre also wahrscheinlich: Optimieren Sie zuerst, was die Benutzererfahrung am meisten verbessert.
quelle
Durch Sperren Ihres FPS auf eine konsistente Nummer können Sie:
quelle
Beide. Ich würde idealerweise konstant über 60 Bilder pro Sekunde sagen. Realistisch konsistent über 30 Bilder pro Sekunde. Unter 30 Bildern pro Sekunde wirkt sich dies auf die Leistung des Spielers aus (ich denke übrigens an FPS / Twitch-basierte Spiele, Strategiespiele können wahrscheinlich niedriger auskommen).
Wenn Sie wirklich das eine oder andere sagen müssten, würde ich konsequent vorgehen. Wenn Sie eine Bildrate garantieren können, können Sie sich darauf konzentrieren, die garantierte Bildrate höher zu setzen.
quelle
Größer ist immer besser, aber:
Eine inkonsistente Framerate kann zu Reisekrankheit führen.
(Wir hatten einen internen Tester übergeben, als seine Framerate 10 Sekunden lang zwischen 20 und 60 sprang.)
quelle
Ich würde denken, Sie würden sowohl eine konsistente als auch eine größere FPS wollen. Je flüssiger die Grafik (aufgrund der Bildwiederholfrequenz), desto besser. Wenn es unter 30 FPS fällt, werden Ihre Benutzer die Nervosität bemerken und frustriert sein, wenn die Reaktionszeit auf Aktionen fehlt.
quelle
Wenn Sie ein Zerreißen verhindern möchten , sollten Sie V-Sync verwenden, um die FPS an die Bildwiederholfrequenz des Monitors oder niedriger zu binden (wenn Sie höher gehen, wird es nicht sichtbar, es wäre also eine Verschwendung).
quelle
Es gibt nur eine Antwort, und das ist ... während der Entwicklung immer hoch hinaus und wenn Sie es auf die niedrigste Spitze bringen, wird dies das Spiel in einen kranken, stetigen Fluss bringen. Ich sitze auf dem Code und er wird dort bleiben, weil es meine geheime Art des Codierungsdrachen ist. / Eyhe
quelle