[code] Billiges Game-Timing mit nativen PB-Mitteln

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Das heißt im Klartext das die im Artikel beschriebene Endlösung (oops!) mit den Query-Befehlen immer noch der beste Methode ist sofern sie einem einzigen Kern zugewiesen werden, oder?
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

>>>>> QueryPerformanceCounter
Das klingt ja interessant. Klärt mich doch bitte mal ein bisschen auf, was ist das denn für ein mysteriöser PCI-Bug? Wo gibt's denn diesen Artikel.

Ach ja, und was hat es damit auf sich, man soll Query-Performance einem Prozessor zuweisen? Da wollte ich auch mal nachfragen, besonders, weil ich selber einen DualCore PC habe.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

AND51 hat geschrieben:Wo gibt's denn diesen Artikel.
muddu guggn, habbisch verlinkt in mein erstes post
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
xperience2003
Beiträge: 972
Registriert: 04.10.2004 18:42
Computerausstattung: Amiga, LinuxMint, Windows7
Wohnort: gotha
Kontaktdaten:

Beitrag von xperience2003 »

jo, gut so
hab frueher 13 verwendet, aber auf sehr neuen rechnern war das dann ruckelig

zwischendurch benutzte ich mal richtige frameunabhaengigkeit
..also mit bewegungsweite X frametime, ist zwar wirklich auf allen
rechnern gleichschnell aber das ruckelte/huepfte
manchmal etwas..

nun bin ich wieder bei der ganz popeligen framebremse, da
isses wenigstens richtig fluessig
einziger nachteil waere da fuer sehr langsame systeme die unter der
framegrenze bleiben, aber was solls...man kann mit einem c64 auch keine
hochaufloesenden raytracing animationen in realtime schauen =)
amiga rulez...
Rebirth Software
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

xperience2003 hat geschrieben:jo, gut so
hab frueher 13 verwendet, aber auf sehr neuen rechnern war das dann ruckelig
das heißt, du bestätigst meine wahl der 16 aus eigener Erfahrung?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
xperience2003
Beiträge: 972
Registriert: 04.10.2004 18:42
Computerausstattung: Amiga, LinuxMint, Windows7
Wohnort: gotha
Kontaktdaten:

Beitrag von xperience2003 »

jo, bin dabei auf 15 gegangen
amiga rulez...
Rebirth Software
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Ist das nicht eine Frage der Bildwiederholfrequenz und dem Verhalten von Flipbuffers? Wenn jemand einen 100Hz Monitor hat, wird im günstigsten Fall ein Schleifendurchlauf 1/100 * 1000 Millisekunden dauern, also 10 ms:

Code: Alles auswählen

100 Hz = 10.0 Millisekunden
 85 Hz = 11.8 Millisekunden
 60 Hz = 16.7 Millisekunden
Da auch die ganzen TFT's auf 60 Hz laufen, wird ein Schleifendurchlauf in der Regel mindestens 16.7 Millisekunden benötigen. Also ganz außer Acht lassen kann man die Wirkung von FlipBuffers auf die Zeitsteuerung nicht, denke ich.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Im Worst-Case-Szenario hinkt das Bild auf dem Monitor 1 Frame hinterher (gesetzt den theoretischen Fall, dass dein Monitor sofort anzeigt, was er reinkriegt, allerdings ist das bei TFTs nicht der Fall, bei modernen TFTs mit Overdrive-Schaltkreis hinkt das Bild oft 3 bis 5 Frames hinterher).
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

@Lebostein

Meiner Erfahrung nach isses nicht abhänging von der Bildwiederholfrequenz. Bei all meinen Sytemen hatte ich tatsächlich eine Genauigkeit von 1 ms.
Eine Art Query-Planner soll die Ausführung von Map/Reduce-Funktionen in Hadoop stark beschleunigen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@Lebostein

schön und gut wenn deine framerate so hoch ist...
aber fürs timing hast du davon wenig, weil nunmal eine TimeSlice 12-16 ms dick ist,
außer du stellst sie genauer mit TimeBeginPeriod...
schau halt mal in den englischen artikel...

deswegen hab ich ganz bewußt im beispiel eine FpS von 30 gewählt, weil sich da das timing gut demonstrieren läßt.
außerdem sollte das für jedes billig-game ausreichen.

außerdem bin ich der ansicht, wenn du besseres timing benutzen willst,
dann wird es auch langsam zeit sich mit getrennten threads zu beschäftigen,
etcpp

also, dieses Beispiel ist nur ein billig beispiel für timing anfänger.
wie du bemerken wirst, habe ich ganz bewußt die bezeichnung "billig" in die überschrift aufgenommen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten