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!

Werbeanzeige

11

08.02.2007, 13:47

Versteh ich das richtig das es bei dir ruckelt weil dein Thread noch am Bilderladen ist?

Wenn ja dann teil doch deine Karte in Bereiche auf und lade schonmal die umliegenden im Voraus. Dann kann dir sowas nicht mehr so schnell passierern.

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

12

08.02.2007, 15:40

Das will er doch? Nur wenn das mit 800 FPS gerendert wird bleibt fürs Laden nicht viel Zeit. Also will er die FPS auf einen geringeren Wert "runterschrauben" um dem Nachladen ein wenig Luft zu machen. Oder seh ich da was falsch?

13

08.02.2007, 15:45

Also ich würde das aktuelle Feld und die 8 umliegenden Felder im Speicher auf Vorrat halten und beim wechsel des Feldes entsprechend den Vorrat tauschen. Wenn es so nicht geht sollte die Dimension eines Feldes erweitert werden.

Black-Panther

Alter Hase

  • »Black-Panther« ist der Autor dieses Themas

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

14

08.02.2007, 16:05

Zitat von »"chriss"«

Also ich würde das aktuelle Feld und die 8 umliegenden Felder im Speicher auf Vorrat halten und beim wechsel des Feldes entsprechend den Vorrat tauschen. Wenn es so nicht geht sollte die Dimension eines Feldes erweitert werden.


Das ist doch genau das was ich mache! Außerdem hab ich auch nocht verschiedene Qualitätsstufen... Nur muss ich das ja alles während der Laufzeit laden bzw. vorausladen! Und das was "Gurke" gesagt hat, ist genau das was ich mein!
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

15

08.02.2007, 21:09

Warum lädst du nicht einfach mehr in den Puffer. Du kannst ja die Feldgröße erweitern oder mehr umliegende Felder nachladen. Also ich finde es schade die Framerate künstlich runterzudrehen nur weil die Ladefunktion nicht nachkommt. Da wäre es doch sinnvoller die Ladefunktion etwas vorausschauender zu machen.

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

16

08.02.2007, 21:34

Zitat von »"chriss"«

Also ich finde es schade die Framerate künstlich runterzudrehen nur weil die Ladefunktion nicht nachkommt. Da wäre es doch sinnvoller die Ladefunktion etwas vorausschauender zu machen.

Aehm, ja.. weil man auch unbedingt 800 Frames in der Sekunde braucht.

Zitat von »"Black-Panther"«


Zur Lösung (@David)
Meinst du praktisch in einer while(true) immer einen Sleep(0) und dann die vergangene Zeit (für den Sleep) messen, sobald es "genug" ist, aus der Schleife raus.. Hab ich das richtig verstanden?

Ja, wieso nicht? Ein Sleep(0) 'verschenkt' die verbleibende Zeit im Interval das deinem Programm zur Verfuegung steht. Dadurch bist du aber wieder an die Sleep-Aufloesung des Systems gebunden.

Ich habe meine Frames testweise runtergeschraubt in dem ich einfach sowas gemacht hab wie while(currentTime < frameTime) currentTime = timer.getTime();. Wie gesagt, ein ausgesprochen "haessliches" while-Konstrukt, da die CPU-Zeit sinnlos weggeschmissen wird, aber zum Testen praktisch, weil einfach.
"Have you tried turning it off and on again?"

17

09.02.2007, 11:52

@Chase Das stimmt schon das man 800fps nicht braucht aber umso mehr es sinnt umso genauer läuft das Spiel. Zumindest wenn die Inputabfragen im Renderloop stecken. Zudem sind Kollisionstest genauer da sie öffters durchgeführt werden.

Aber es geht ja scheinbar darum das die Funktion zum Nachladen der Spielinhalte nicht schnell genug reagiert. Und da finde ich es sinnvollder diese zu optimieren anstatt einfach die Framerate künstlich runter zu setzen.

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

18

09.02.2007, 12:14

Zitat von »"chriss"«

Aber es geht ja scheinbar darum das die Funktion zum Nachladen der Spielinhalte nicht schnell genug reagiert. Und da finde ich es sinnvollder diese zu optimieren anstatt einfach die Framerate künstlich runter zu setzen.

Das Nachladen geschieht in einem anderen Thread; Black-Panther hat schon recht wenn er das Spiel runterschraubt. Soweit ich weiss haben fast alle professionellen Games Framebremsen (manchmal stoeren die sogar: Quake 4 zb. hat eine maximalen FPS-Wert von 60 hardcoded, das weiss ich noch :))

Vielleicht ruckelt das Spiel einfach WEIL du es auf 30 FPS runterschraubst. 30 empfinde ich schon als extremes Ruckeln, fluessig wird es erst bei 50+
"Have you tried turning it off and on again?"

19

09.02.2007, 12:41

Zitat von »"Chase"«

Zitat von »"chriss"«

Aber es geht ja scheinbar darum das die Funktion zum Nachladen der Spielinhalte nicht schnell genug reagiert. Und da finde ich es sinnvollder diese zu optimieren anstatt einfach die Framerate künstlich runter zu setzen.

Das Nachladen geschieht in einem anderen Thread

Genau deswegen ist es sinnlos die Framerate zu begrenzen.

Aber ab hier klink ich mich aus. Mein Vorschlag ist ja bekannt.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

09.02.2007, 13:31

Zitat von »"chriss"«

Zitat von »"Chase"«

Zitat von »"chriss"«

Aber es geht ja scheinbar darum das die Funktion zum Nachladen der Spielinhalte nicht schnell genug reagiert. Und da finde ich es sinnvollder diese zu optimieren anstatt einfach die Framerate künstlich runter zu setzen.

Das Nachladen geschieht in einem anderen Thread

Genau deswegen ist es sinnlos die Framerate zu begrenzen.


auf multicore/cpu systemen vielleicht, sonst, denk ich, eher nicht.

30 fps find ich auch ein bisschen niedrig. würd ebenfalls vorschlagen auf 50-60 fps (ca. 20-15 mspf) zu begrenzen.

Werbeanzeige