Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

FPS

Werbeanzeige

1

26.09.2014, 22:01

FPS

Hallo miteinander

Nachdem ich mein erstes Projekt abgeschlossen habe und mich aktuell an einem neuen
Spiel wage, realisiere ich, dass ich einige Dinge zwar auf eine Art und Weise gemacht habe welche funktioniert hat
aber nicht ganz optimal erscheint.

Eines davon ist die Frames-per-Second (FPS), welche ich wie folgt gemacht habe:

const int FPS = 40;
const int DELAY = (1000 / FPS)

...

Uint32 startTime, delayTime;

...

startTime = GetTicks();

... MainLoop ...

delayTime = GetTicks() - startTime;

if (delayTime < DELAY)
{
SDL_Delay(DELAY - delayTime);
}

Ich nehme an, dass dies bei einfachen 2D-Spielen auch absolut in Ordnung ist.
Was ist aber nun eine optimaler Variante? Was ist überhaupt die optimale FPS? Sollte ich nicht eine Lösung haben,
welche anhand einer Schleife zuerst herausfinden wie viele Frames z.B. in einer Sekunde durchlaufen werden können und
dies dann als die optimale FPS einstellen? Wie machen es die Profis?

Danke für die Hilfe und Auskunft :search:

lg, Eric

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

3

26.09.2014, 23:45

Ich limitiere die FPS normalerweise nicht und rechne mir dann einfach die delta Zeit aus.
Damit bei grafisch weniger aufwendigen Spielen die Grafikkarte allerdings nicht auseinander fliegt, kannst du optional natürlich trotzdem noch begrenzen.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

4

26.09.2014, 23:57


Damit bei grafisch weniger aufwendigen Spielen die Grafikkarte allerdings nicht auseinander fliegt, kannst du optional natürlich trotzdem noch begrenzen.


Ob die Graka jetzt bei nicht anspruchsvollen Spielen 300FPS hat und mit 100% Leistung läuft, oder bei aufwendigen Berechnungen 10FPS liefert und mit 100% Leistung läuft, macht keinen Unterschied
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

5

27.09.2014, 12:26

Das wahr jetzt eher sinnbildlich ^^
Wenn du zu starke FPS Schwankungen hast kann man das auch merken, dann wird der Unterschied zwischen den delta Werten auch zu groß und es "ruckelt", selbst mit über 300 FPS.

Achso und dann gibt es noch sowas wie Herz Zahlen beim Monitor...

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

27.09.2014, 12:55

Diese “Hertz-Zahl“ nennt man Bildwiederholfrequenz.
Unterschiedlich lange Zeitschritte sind übrigens eher nicht zu empfehlen, siehe Wiki.

Werbeanzeige