Panicgame



  • Auf meinem Laptop mit Intel i330M und entsprechender Onboard-Grafik erreiche ich dauerhaft mehr als 100 FPS. Es gab keine Grafikfehler.



  • Läuft auch bei mir einwandfrei. Das geilste ist immer noch die Musik, hahaha^^



  • Hab die FPS-Rate nicht getestet(mach ich noch) jedoch läuft das Spiel einwandfrei.
    Gutes Konzept und nette Spielidee. Nur der Übergang in den Vollbildmodus kriegt das Spiel manchmal nicht ganz bzw der Rest des Bildschirms wird Weiß gefüllt.(passiert wenn mann das Fenster manuell maximiert.



  • kann es sein, dass die Drehrichtungen der Steine unterschiedlich ist?
    Ich glaube, die "3er Ecken" Steine drehen gegen den Uhrzeigersinn... (Andersrum als alle anderen 😉 )

    Ansonsten finde ich es auch ganz nett. wenn auch ein bisschen kurzweilig.
    P.S. auf'er Win XP VM hier läuft es mit nur 7 FPS...



  • Habs auch mal gespielt, ich finds klasse.
    Ist auch nicht abgestürzt, Musik ist auch lustig.
    Dass es jetzt keine Englische anleitung gibt, stört mich nicht.
    Das Spiel könnte ich mir auch gut auf der Computer-Bild Spiele als Minigame vorstellen. (Gibt es die eigentlich noch auf der CBS?)
    Was das Spiel eventuell länger machen könnte: Wie wärs, wenn die Bomben nicht am Ende, sondern verteilt über eine Runde explodieren? Sodass am Ende der Runde vielleicht noch 20% der Bomben übrig bleiben.

    MfG, Jochen



  • Lupo4u2 schrieb:

    kann es sein, dass die Drehrichtungen der Steine unterschiedlich ist?
    Ich glaube, die "3er Ecken" Steine drehen gegen den Uhrzeigersinn... (Andersrum als alle anderen 😉 )

    Ansonsten finde ich es auch ganz nett. wenn auch ein bisschen kurzweilig.
    P.S. auf'er Win XP VM hier läuft es mit nur 7 FPS...

    Also die Drehrichtung ist bei allen Steinen linksherum 😉

    Und zu der XP VM: ich vermute mal das da keine OpenGL Treiber drauf sind. Hast du mal andere Spiele auf der VM ausprobiert?



  • RedPuma schrieb:

    Lupo4u2 schrieb:

    kann es sein, dass die Drehrichtungen der Steine unterschiedlich ist?
    Ich glaube, die "3er Ecken" Steine drehen gegen den Uhrzeigersinn... (Andersrum als alle anderen 😉 )

    Ansonsten finde ich es auch ganz nett. wenn auch ein bisschen kurzweilig.
    P.S. auf'er Win XP VM hier läuft es mit nur 7 FPS...

    Also die Drehrichtung ist bei allen Steinen linksherum 😉

    Stimmt. Das sieht bei 7 FPS nur merkwürdig aus. 😉

    Und zu der XP VM: ich vermute mal das da keine OpenGL Treiber drauf sind. Hast du mal andere Spiele auf der VM ausprobiert?

    Ja, ist nur standard SVGA Treiber drauf. Ohne VM läuft's flüüsig.



  • Hab noch einen kleinen Fehler gefunden:
    Wenn Das Spiel vorbei ist und man seinen Namen eingeben will, pausiert das spiel, wenn man ein 'p' eingibt. Wenn man dann auf "Hauptmenü" klickt, öffent sich das Hauptmenü, der Bildschirm ist aber verdunkelt und man sieht noch immer noch das Feuer der Lunten von den Bomben. Erst wenn man dann p drückt, ist wieder alles normal.

    MfG, Jochen



  • Tut mir leid, ich muss leider noch einen Fehler melden 😞
    Ich hatte am Ende von Level 5 den noch leeren Platz mit den grünen Bomben vollgestellt bekommen. In Jeder Bombe stand also eine 5. Im nachfolgenden Level hab ich es dann geschafft, den kompletten weißen Raum auszufüllen. Und dann ging es nicht mehr weiter. Nicht dass sich das spiel aufgehängt hätte, Die Bedienoberfläche ging ja noch, auch die Musik lief noch. Es ging nur nicht ins nächste Level. Die grünen Bomben wurden auch nicht schwarz. Der Fehler trat auf, als ich gerade den letzte Stein plaziert hab.

    Aber das ist schon ein klasse Spiel. Die Musik ist einfach genial. Mach weiter so! 👍



  • screeeens 🙂



  • Jochen S. schrieb:

    Im nachfolgenden Level hab ich es dann geschafft, den kompletten weißen Raum auszufüllen.

    Screenshot als Beweis? 🙂 Das schaff ich selbst ja nur extrem selten *g*

    Ne mal im Ernst, danke für deine gemeldeten Fehler, werde mich schleunigst dransetzen und gucken warum dieser zweite Bug auftaucht. Der Grund des ersten ist mir klar, ich muss einfach den "Pause-Key" deaktivieren wenn man Text eingeben kann, bzw. wenn das Spiel beendet ist. Ist mir vorher schonmal aufgefallen, allerdings ist mir das wohl wieder entfallen 😉



  • Ich hab's auch mal angespielt und muss sagen:
    Das Ding ist wirklich gelungen, weiter so! 👍
    Allerdings lies sich zwischendurch eine der 4er Stangen nicht platzieren, ohne sie vorher zu drehen, obwohl nichts im Weg war.

    Hatte auf meinem Pentium4 2.8GHZ, 512mb RAM, Geforce 4 konstante 75 Fps (mit VSync).



  • RedPuma schrieb:

    VSync wird nicht aus sein, da du sonst kein 75Hz Frame-Limit hättest. Aber trotzdem Danke für dein Feedback.

    stimmt habs ejtzt mal im treiber ausgemacht und hab ein paar frames mehr, nicht viel aber en bisschen

    ~ hab jetzt knapp 2500 bilder die sekunde...



  • Ja, ein Screenshot wäre bestimmt nicht schlecht gewesen, hab selber auch nicht daran gedacht. Aber ich denke, dass der Fehler ja schon sehr eingeschränkt ist. Die Codestelle dürfte man ja auch relativ schnell lokalisieren. Naja, hab das bis jetzt auch nur einmal geschafft, eine Reproduktion dürfte sin wenig schwierig werden.



  • Ich hab den Fehler schon behoben, das Testen viel etwas schwieriger aus, ich hab einfach nur die 3er Steinchen ausgeben lassen, damit gings dann doch relativ zügig alle Felder zu füllen. Danke nochmal.

    Skym0sh0 schrieb:

    RedPuma schrieb:

    VSync wird nicht aus sein, da du sonst kein 75Hz Frame-Limit hättest. Aber trotzdem Danke für dein Feedback.

    stimmt habs ejtzt mal im treiber ausgemacht und hab ein paar frames mehr, nicht viel aber en bisschen

    ~ hab jetzt knapp 2500 bilder die sekunde...

    Ach doch so wenig? Tu den Rechner langsam mal weg...



  • Ich bins nochmal.

    Hab noch ne kleine Unschönheit/Bug(?) festgestellt.
    Wenn das Spiel zuende ist und ich meinen Namen eingeben kann oder einfach so Game Over ist, und ich dann Esc drücke, bin ich ja im Hauptmenü. Das Eingabefeld ist aber immer noch da. Wenn ich dann in diesem auf Hauptmenü klicke, ist noch alles in Ordnung. Wenn ich dann allerdings auf "Neues Spiel" klicke, fängt zwar ein neues Spiel an, allerdigs bleibt es dann hängen. Sprich: keine Musik, Die Zeit läuft nicht, die Schrift pulsiert nicht. Die Bedienelemente lassen sich aber noch bedienen. Es geht erst weiter, wenn ich entweder p drücke (Die Schrift "Pause" wurde nicht angezeigt) oder Esc drücke und dann ein neues Spiel starte.

    Naja, so schwerwiegend ist das ja nicht und das, was ich gemacht habe, macht man ja eigentlich nicht. (Hab halt nur aus Spaß ein wenig herumprobiert.)

    Gibt es eigentlich schon die neue Version zum Download?

    MfG, Jochen.



  • Mir ist noch was aufgefallen, weiss aber nicht, ob das absichtlich so ist.
    Der Lila Stein und der rosa Stein sind identisch. Die haben beide diese Form:

    ########
        ########
    ########
    ########
    

    Bei Tetris gibt es da ja noch eine gespiegelte Verion von dem Stein.
    Von den L-förmigen Steinen hast du ja auch eine gespiegelte Version.
    Ist mir aufgefallen, weil ich das letzte Spiel deswegen verloren hab.
    Aber ich glaube, ich sollte nicht so viel spielen und lieber mal ins Bett gehen...

    MfG, Jochen



  • Danke Jochen, du nimmst mein armes Programm ja dermaßen auseinander 😉

    Mir ist noch was aufgefallen, weiss aber nicht, ob das absichtlich so ist.
    Der Lila Stein und der rosa Stein sind identisch.

    case 10:
    		{
    			//  .
    			//. .
    			//.
    			SET_STONE( Vector( 1, 0 ), Color( 255, 0, 252 ), 0 );
    			SET_STONE( Vector( 0, 1 ), Color( 255, 0, 252 ), 1 );
    			SET_STONE( Vector( 1, 1 ), Color( 255, 0, 252 ), 2 );
    			SET_STONE( Vector( 0, 2 ), Color( 255, 0, 252 ), 3 );
    			*pPivot = Vector( 0, 1 );
    			return 4;
    		}
    	case 11:
    		{
    			//.
    			//. .
    			//  .
    			SET_STONE( Vector( 0, 0 ), Color( 156, 0, 255 ), 0 );
    			SET_STONE( Vector( 0, 1 ), Color( 156, 0, 255 ), 1 );
    			SET_STONE( Vector( 1, 1 ), Color( 156, 0, 255 ), 2 );
    			SET_STONE( Vector( 1, 2 ), Color( 156, 0, 255 ), 3 );
    			*pPivot = Vector( 1, 1 );
    			return 4;
    		}
    

    Wenn das Spiel zuende ist und ich meinen Namen eingeben kann oder einfach so Game Over ist, und ich dann Esc drücke, bin ich ja im Hauptmenü. Das Eingabefeld ist aber immer noch da. Wenn ich dann in diesem auf Hauptmenü klicke, ist noch alles in Ordnung. Wenn ich dann allerdings auf "Neues Spiel" klicke, fängt zwar ein neues Spiel an, allerdigs bleibt es dann hängen.

    void ToggleMenu( void )
    {
    	if( !pGameParent )
    		return;
    
    	//Disable key when we are GameOver
    	CGame *pGameMgr = (CGame*)EntityList.GetEntity( "GameManager" );
    	if( pGameMgr && pGameMgr->IsGameOver() )
    		return;
        //...
    

    Um mal mit Code zu antworten ;).

    Habe also alle deine Fehler schon gefixed. Die gepatchte Version lade ich sobald ich den Fenster-Maximieren-Fehler behoben habe, da muss ich mich zuerst mal wieder mit den Windows Messages rumschlagen, weis einer auf Anhieb wie die heißt die beim maximieren geschickt wird?



  • Eventuell ist es WM_WINDOWPOSCHANGED

    The WM_WINDOWPOSCHANGED message is sent to a window whose size, position, or place in the Z order has changed as a result of a call to the SetWindowPos function or another window-management function.

    Falls du faul bist, könntest du auch den Maximieren-Button deaktivieren. Manche Spiele machen das ja auch so.
    MfG, Jochen



  • Is schon gefixed. Das Problem bei WM_WINDOWPOSCHANGED ist dass Windows nicht zu sparsam mit der Meldung umgeht, die wird beim Vergrößern/Verkleinern des Fensters nach jeden Pixel Änderung gesendet, also ein paar hundert mal nacheinander für eine Resize-Operation. Das währe für mein Programm an sich eigentlich kein Problem, da die Größenänderung des OpenGL Fensters eigentlich sehr wenig Rechenaufwand brauch. Nur muss ich leider bei der Größenänderung jede Art von gerendertem Text in der neu passenden Größe neu laden, da eine "normale" Skalierung des Textes (insbesondere wenn man das Fenster von klein auf groß zieht) total grottig aussehen würde. Und dieses neuladen brauch schonmal ne viertel bis halbe Sekunde, was zu lang währe um es ständig zu machen. Deswegen reagier ich nur auf WM_EXITSIZEMOVE, sowie WM_SIZE mit wParam == SIZE_MAXIMIZED bzw. wParam == SIZE_RESTORED, wobei den Restore-Fall auch nur wenn vorher WM_SYSCOMMAND mit SC_RESTORE gesendet wurde. Zusammen mit ner feinen Fenster-Resize-Funktion funktioniert das ganze einwandfrei. Falls sich jemand noch mit dem Thema eines festen Seitenverhältnis für Fenster beschäftigen will 😉


Anmelden zum Antworten