Wie schnell ist es?
Ich werds mal heute Abend auf meinem 350MHz Rechner testen. Bin ja gespannt.
Ein Tipp: Benutzt du für die FPS-Anzeige StartDrawing(): DrawText(): Stopdrawing()? Wenn ja dann hast du an dieser Stelle eine Geschwindigkeitsbremse eingebaut. Auf meinem alten Rechner merk ich das extrem. Sobald irgendwo ein Startdrawing() kommt und dann vielleicht sogar noch ein DrawText() dann gehen die FPS in den Keller. Da reicht schon ein einziges DrawText(). Erstell dir mal nen kleinen Bitmap-Font für z.B. nur Zahlen und gib damit die FPS aus oder zeichne die FPS alle 10 Sekunden in ein Array auf und speicher das Array beim Beenden in eine Datei. Du wirst einen deutlichen Anstieg der FPS bemerken, sobald du alle StartDrawings() und 2DDrawing-Befehle rausgeschmissen hast...
---------------------------
PS: Hab grade nochmal das Verhalten der 2DDrawing()-Befehle auf einem schnellen Rechner an einem einfachen Beispiel mit dem Darstellen von ein paar Sprites getestet:
Ohne 2DDrawing-Befehle:
520 FPS
Ein einfaches StartDrawing(ScreenOutput()): StopDrawing() in die Hauptschleife eingefügt:
430 FPS!!
Zusätzlich ein DrawText("x") dazwischen eingefügt:
345 FPS!!!!
Es ist echt Wahnsinn, was diese Drawing-Befehle für Geschwindigkeitbremsen sind!! Also Finger weg wenn es um die Performance geht! Von 520 auf 345 FPS mit nur einer Zeile StartDrawing(ScreenOutput()): DrawText("x"): StopDrawing() ist enorm. Das ist ein Geschwindigkeitsverlust von 33%!!! Da muss man schon sehr viele Sprites mit "DisplayTransparentSprite()" auf den Bildschirm darstellen, um einen ähnlichen Geschwindigkeitseinbruch zu erreichen....
Ein Tipp: Benutzt du für die FPS-Anzeige StartDrawing(): DrawText(): Stopdrawing()? Wenn ja dann hast du an dieser Stelle eine Geschwindigkeitsbremse eingebaut. Auf meinem alten Rechner merk ich das extrem. Sobald irgendwo ein Startdrawing() kommt und dann vielleicht sogar noch ein DrawText() dann gehen die FPS in den Keller. Da reicht schon ein einziges DrawText(). Erstell dir mal nen kleinen Bitmap-Font für z.B. nur Zahlen und gib damit die FPS aus oder zeichne die FPS alle 10 Sekunden in ein Array auf und speicher das Array beim Beenden in eine Datei. Du wirst einen deutlichen Anstieg der FPS bemerken, sobald du alle StartDrawings() und 2DDrawing-Befehle rausgeschmissen hast...
---------------------------
PS: Hab grade nochmal das Verhalten der 2DDrawing()-Befehle auf einem schnellen Rechner an einem einfachen Beispiel mit dem Darstellen von ein paar Sprites getestet:
Ohne 2DDrawing-Befehle:
520 FPS
Ein einfaches StartDrawing(ScreenOutput()): StopDrawing() in die Hauptschleife eingefügt:
430 FPS!!
Zusätzlich ein DrawText("x") dazwischen eingefügt:
345 FPS!!!!
Es ist echt Wahnsinn, was diese Drawing-Befehle für Geschwindigkeitbremsen sind!! Also Finger weg wenn es um die Performance geht! Von 520 auf 345 FPS mit nur einer Zeile StartDrawing(ScreenOutput()): DrawText("x"): StopDrawing() ist enorm. Das ist ein Geschwindigkeitsverlust von 33%!!! Da muss man schon sehr viele Sprites mit "DisplayTransparentSprite()" auf den Bildschirm darstellen, um einen ähnlichen Geschwindigkeitseinbruch zu erreichen....
@Lebostein: Hammer.... Gut, daß Du mir das sagst. An sowas, wie die Textausgabe habe ich ehrlich gesagt noch gar nicht gedacht. Und daß die SOO dermaßen bremmst, hätt ich nicht erwartet. Man lernt nie aus. Für das fertige Spiel werde ich bestimmt auch Textausgabe benötigen. Da sollte ich mir auf jeden Fall ne eigene Textausgabe-Engine auf Spritebasis machen.
.oO SDX Oo.
Hmmm... Ich hatte da standardmäßig noch ein "ClearScreen(0,0,0)" drin.
Hab ich jetzt draußen (Wird eh der ganze Screen mit Tiles überzeichnet) und bin jetzt von 294FPS auf 341 mit Textausgabe und ohne Textausgabe sogar auf 433FPS!
Da stecken noch Reserven drin.
btw... Danke nochmal an Lebostein
Hab ich jetzt draußen (Wird eh der ganze Screen mit Tiles überzeichnet) und bin jetzt von 294FPS auf 341 mit Textausgabe und ohne Textausgabe sogar auf 433FPS!

btw... Danke nochmal an Lebostein

.oO SDX Oo.
OK.... hier die überarbeitete Version. Es sollte jetzt schneller sein.
SpeedTest2.exe
Jetzt wird beim Beenden ein FPS.txt geschrieben... mit F12 kann man immer noch einen Screenshot machen.
SpeedTest2.exe
Jetzt wird beim Beenden ein FPS.txt geschrieben... mit F12 kann man immer noch einen Screenshot machen.
.oO SDX Oo.
@fabio: Textausgabe hab ich ganz rausgenommen, dafür wird im Verzeichnis, wo das Programm ist, eine Textdatei namens FPS.txt erstellt, in der eine Zahl steht... das sind die FPS.
Und btw, ich hab das Programm nochmal ein bißchen verändert und lasse die Sprites jetzt hin und her flitzen, damit man sieht, daß das Ding auch arbeitet... sehr faszinierend, 500 Kollisionsabfragen in eine Richtung scheinen so wenig Rechenzeit zu beanspruchen, daß bei mir die Frame-Rate nicht um einen Punkt gesunken ist
Und btw, ich hab das Programm nochmal ein bißchen verändert und lasse die Sprites jetzt hin und her flitzen, damit man sieht, daß das Ding auch arbeitet... sehr faszinierend, 500 Kollisionsabfragen in eine Richtung scheinen so wenig Rechenzeit zu beanspruchen, daß bei mir die Frame-Rate nicht um einen Punkt gesunken ist

.oO SDX Oo.
@fabio:
Die FPS werden in einer Txt-Datei im Verzeichnis der Speedtest2.exe gespeichert. Muss mal guggn.
Win XP x64: 314 fps (Steigerung 33,6%)
Win XP Home: 344 fps (Steigerung 49,6%)
Merkwürdig. Wieso hat die Home Edition jetzt die x64 Edition überholt?
Greetz Laurin
Die FPS werden in einer Txt-Datei im Verzeichnis der Speedtest2.exe gespeichert. Muss mal guggn.
Win XP x64: 314 fps (Steigerung 33,6%)
Win XP Home: 344 fps (Steigerung 49,6%)
Merkwürdig. Wieso hat die Home Edition jetzt die x64 Edition überholt?

Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
And we're out of beta. We're releasing on time.