openGl - Spiel zu stark ausgelastet
-
Ich bin noch recht neu im openGL Bereich und habe mir als kleine Übung mal ein Tetris programmiert.
Das Spiel läuft soweit gut, doch lastet es meine CPU zu 50% aus.
Da ich wenig bis gar keine Tutorials zum Thema "openGL - Spieleprogrammierung unter c++" finden konnte,
hab ich auch noch keine Ahnung, wie ich eigentlich mit meinem Spiel hätte anfangen sollen!Also wollte ich hier mal fragen, ob das normal ist, dass das Spiel so viel beanspucht,
und wenn nicht, was ich dagegen tun kann.PS: Von DirectX habe ich jetzt erstmal die Finger gelassen, da ich davon ausgehe, dass es noch schwerer ist als openGL!
-
Also wollte ich hier mal fragen, ob das normal ist, dass das Spiel so viel beanspucht, und wenn nicht, was ich dagegen tun kann.
Es haengt davon ab, wie du es programmiert hast. Dabei gibt es viele Ansatzpunkte, ist aber zu allgemein. Bitte stelle eine konkrete Frage.
wenig bis gar keine Tutorials zum Thema
Wahrscheinlich hast du gar nicht gesucht. Google ist dein Freund.
Von DirectX habe ich jetzt erstmal die Finger gelassen, da ich davon ausgehe, dass es noch schwerer ist als openGL
Nein, ist es nicht.
-
openGL schrieb:
Ich bin noch recht neu im openGL Bereich und habe mir als kleine Übung mal ein Tetris programmiert.
Das Spiel läuft soweit gut, doch lastet es meine CPU zu 50% aus.wahrscheinlich hast du eine dual core cpu.
dein betriebssystem gibt natuerlich jede rechenzeit deinem spiel, wenn es das einzige program ist was laeuft und diese rechenzeit nutzen will. ein simplesint main(int c,char* a[]) { while(true) { } }
wird auch einen core komplett beanspruchen, obwohl es an sich nichts macht, doch dein betriebssystem weiss ja nicht was ein program macht.
-
int main(int c,char* a[]) { while(true) { } }
wird auch einen core komplett beanspruchen, obwohl es an sich nichts macht, doch dein betriebssystem weiss ja nicht was ein program macht.
Dann würde doch jedes Spiel mindestens 50% beanspruchen, da ein Spiel doch aus mindestens einer Schleife besteht,
sonst würde es ja wieder sofort beendet werden!
-
openGL schrieb:
Dann würde doch jedes Spiel mindestens 50% beanspruchen, da ein Spiel doch aus mindestens einer Schleife besteht, sonst würde es ja wieder sofort beendet werden!
Nein, innerhalb der Schleife kann auch Rechenzeit wieder abgegeben werden.
-
Und wie geht das?
-
openGL schrieb:
Und wie geht das?
Automatisch. http://de.wikipedia.org/wiki/Multitasking#Pr.C3.A4emptives_Multitasking
-
Es gibt (nicht-standard)-funktionen ala sleep, die für sowas gut sind.
Aber im Zusammenhang mit spieleprogrammierung guck dir lieber vertikale synchronisation an.