so habe gestern nacht doch noch getestet und so kommen nun die ersten werte.# also: um es kurz zu machen - es hat sich nichts zum positiven geändert :(
im gegenteil - mir schien es so, als ob die fps im window-modus er langsamer war. (aber, da ich gerade das netzteil verlegt hatte, kann das auch am geänderten modus liegen, da ist w7 schnell mit dabei beim anpassen)
die anderen rechner (nb mit vista) habe ich erst zum we wieder im zugriff
>im gegenteil - mir schien es so, als ob die fps im window-modus er langsamer war. Das wird wohl am Batteriebetrieb liegen... Es muss mit den Fenstern zu tun haben, im Screenmodus läuft es ja bei dir ganz gut. Leider konnte mir bisher aber niemand den passenden Tipp geben.
Ich habe mir noch ein par Gedanken zum 30 FPS Problem gemacht. Da ich hier kein Windows 7 (geschweige denn die notwendige Hardware) habe, habe ich mich auf die vista-optimierte Compilation konzentriert. Eigentlich werden dabei im Compiler nur ein par Flags gesetzt. Z.B. der Skinning Support und der Vista User-Mode Request. Die entscheidende Änderung ist allerdings, dass für DirectX 9 (und höher) compiliert wird, anstatt den veralteten Standard DirectX 7 Befehlssatz (mit DirectDraw) zu verwenden, mit dem 99 Seconds auf meiner betagten Notebook-Hardware so wunderbar läuft.
Da ich hier mit der Vista-variante auch nur etwas über 30 Frames erreiche und es auch fürchterlich ruckelt, habe ich damit etwas experimentiert um die Performance etwas zu steigern. Schon zu Spielbeginn fiel mir auf, je mehr Spielsteine auf dem Bildschirm dargestellt werden, desto ruckeliger wird die darstellung der kleinen Sequenz.
Könnte es sein, dass 256 (16x16) kleine 48x48 Sprites und ein bischen Textausgabe zuviel für die modernen Grafikkarten ist? Schliesslich wird (Microsoft & Co sei Dank) das veraltete DirectDraw hardwareseitig nicht mehr unterstützt. Dies wird, falls notwendig, per Software-emulation erledigt. Das zieht zwar die Performance in den Keller, aber die moderenen Rechner sind ja schnell genug im Vergleich zu den Gurken von früher...
Also habe ich die Anzahl der dargestellten Spielsteine auf die ersten 10 Reihen (von 15) reduziert und siehe da, 60 Frames anstatt 30. Sogar ein Delay von 3 im DX-Screen.
Im Fenstermodus waren die Ergebnisse allerdings nicht so gut. 40 Frames und Delay 0. Die FPS Anzeige schwankte auch sehr stark. Erst bei einer weiteren Reduzierung der darzustellenden Spielsteinreihen auf 7 wurden zwischen 45 - 57 Frames erreicht.
Gut, das Fenster verwendet Autostretch, das kostet auch wieder Rechenzeit. Aber selbst wenn ich diese Funktion deaktivierte hatte das keinen Einfluss auf die Performance.
Heutzutage muss wohl alles in 3D sein, damit die heutigen Computer damit klarkommen. Mir ist dieser ganze 3D-Kram (als Hobby-programmierer) allerdings viel zu hoch. Eine 3D Version von 99 Seconds wird es also mit Sicherheit in naher Zukunft nicht geben.
Vermutlich verwenden viele Leute, wie ich, auch heutzutage ihre "veraltete" Hardware bis sie irgendwann den Geist aufgibt. Anders kann ich mir die wenigen Klagen über miese Performance nicht erklären. Sorry, dass ich es leider nicht allen Recht machen kann.
langsam habe ich das Gefühl, das Problem liegt irgendwie an der ganzen Konfiguration des Systems. Ich habe heute mein System durchforstet und alle nicht benutzten Treiber, Dienste und Programme deaktiviert. Jetzt hab ich mit der letzen Version eine Framerate von 52-60 bei einem Delay von 3-6.
Ich denke du solltest dich erst mal auf das Wesentliche konzentrieren, das Spiel ist einfach genial, danke dafür. Ich wäre froh ich würde sowas zustande bringen.
ich fasse es nicht.. ich habe die neuste Version genommen und benutze unter Xp die Vista Version mit FPS:60 Delay:12 mit der normalen Version komme ich nur auf FPS:58 Delay:3
ich denke du solltest mal mit MSCONFIG überprüfen, was alles beim Start an Dienste und Programme gestartet wird. MS-Dienste kannst du dabei einfach mal ausblenden
>ich denke du solltest mal mit MSCONFIG überprüfen, was alles beim Start an Dienste und Programme gestartet wird. Sorry wenn ich mich da einmische, aber das sollte sie, ausser sie weiss was sie tut, schön bleiben lassen.
sooo schlimm ist das auch nicht, man kann alles rückgängig machen und sie sollte ja nur mal schauen und ggf posten. Was ich jeden Tag an Rechnern sehe, Google- Yahoo- Toolbars, PDF Schnellstart, Office Schnellstart, Indexsuche, Java, Flash, Skype, MSN, ICQ und und und.. der Tray ist voll von unnützem Zeug. Wer etwas Kontrolle über seinen Rechner besitzen will sollte sich mal das kleine Tool Winpatrol ansehen.
An der Config fummle ich mal nicht so einfach rum, da fühle ich mich einfach nicht sicher genug. Wer weiß was ich da verballer' und Schwaller muss das wieder ausbügeln. Aber mal zur allgemeinen Info: ich habe keine Tool-Bars, kein Skype, MSN, ICQ offen. Ob Office- und PDF-Schnellstarts aktiv sind müsste ich ggf. nachschauen.
Ich habe meine Bestdelay-Funktion noch einmal etwas verfeinert, nachdem ich festgestellt habe, dass auf dem XP Rechner meiner Partnerin das anzeigen der Highscores zusammen mit dem während des Spiels ermittelten Delay-Wertes zu einer Framerate von unter 45 führte.
(Aber auch mit 45 FPS kann man dort problemlos seinen Namen eingeben. Vielleicht tippen wir hier auch nicht schnell genug, falls es daran liegen sollte.)
Vermutlich wird auch eine simple Textausgabe (die wohl mittels DirectDraw erfolgt) heutige Grafikkarten zum emulieren via Software zwingen. Anders kann ich mir den Abfall auf ein Delay von 3 bei der Highscoreanzeige nicht erklären. Während des spielens lag der Wert bei 5-6.
Die Highscores werden einmal in weiss und einmal um einen Pixel diag. verschoben in blau angezeigt. Bei 20 Platzierungen sind das also 40 Textaufrufe die 60 mal in der Sekunde durchgeführt werden. Daneben wird noch das eine oder andere Sprite angezeigt und die Standard-textanzeige im linken Bereich, natürlich auch 60 mal in der Sekunde.
Am sich hoch und runter scrollenden Sprite mit der Schwierigkeitsstufe kann man ab und zu einen kurzen Ruckler bemerken wenn man genau hinschaut. Dieser wird von einem zu hohen Wert, den Bestdelay ermittelt, verursacht. Zwar reagiert die Funktion sofort darauf und reduziert den Wert wieder um 1, aber in diesem einen Moment, gibt es einen Aussetzer von 28 Millisekunden. Dies wiederholt sich alle par Sekunden, solange 60 FPS erreicht werden und der Delaywert wieder um eins erhöht wird.
Ich habe nun eine weitere Variable für den Höchstwert deklariert, was bewirkt, dass der Ruckler den Delaywert auf den Höchstwert setzt. Bestdelay wird immer Höchstwert-1 sein. Da die Funktion bestdelay sich dynamisch anpasst, bereiten im Hintergrund gestartete und irgendwann auch wieder beendete Prozesse keine Probleme, solange 60 FPS möglich sind.
[vielleicht sollte ich noch erwähnen das dies im Fenstermodus nicht wirklich etwas nutzt]