Ruckeln bei 30 FPS Scroll Game

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ruckeln bei 30 FPS Scroll Game

    Hallo, ich habe zum lernen ein Spiel erstellt wo der Spieler in der Mitte des Bildschirms ist und der Bildschirm durch View dem Spieler folgt. Der Room ist 2500x2500 Pixel groß(soll später viel größer werden als Worldmap). view habe ich im room aktiviert und überall auf W640 x H320 gestellt damit es auf dem Handy auch hübsch aussieht. Im View habe ich auch das Kästchen Object following aktiviert und auf meinen Spieler mit 320x160 Hbor und Vbor angewendet.
    Mit einem selbst erstellten kleinen Tile Set habe ich mir eine kleine Stadt mit 3 Häuschen und viel Wiese gebastelt, jedes Tile ist jeweils 50x50 Pixel groß. Außerdem habe ich ein Object namens wall erstellt damit der Spieler nicht durch Wände laufen kann.
    Der Spieler hat nicht viel code er bewegt sich um jeweils 5 pixel und ändert seine sprite für die geh animation. Außerdem checke ich ob er mit der wall kollidiert.
    Für das Handy habe ich dann noch 4 virtuelle buttons erstellt und nutze display_set_gui_size(640,320) gezeichnet werden sie mit draw gui.

    Soweit so gut es funktioniert auch alles super wenn mir GM nicht wieder einen Strich durch die Rechnung machen würde , wenn der Spieler ein paar Sekunden läuft ruckelt das Bild kurz auf dem Handy(galaxy s6 hat genug power um das auszuhalten) Auf dem PC ruckelt es nicht aber man sieht so eine Art Weichzeichen durchs Bild flimmern.
    Probleme mit der Bewegung des Spielers kann ich als Ursache ausschließen.


    Der roomspeed war auf Standart 30 eingestellt. Ich habe ihn auf 60 hochgedreht und die ruckler sind auf dem Handy weg. Auf dem PC sieht man es noch leicht ab 90 roomspeed dann gar nicht mehr.

    Meine Frage , woran liegt das ? Ist es das Tile Set ? ist die View programmierung vom GM unsauber ? oder liegt es daran wie GM die Bilder zeichnet?
    Ich würde das Spiel ungern mit 60 roomspeed weiter programmieren da es ja auch mehr Auslastung für die CPU bedeutet. Das Spiel enthält ja noch kaum Elemente die es überlasten können würden.
    Wie könnte ich das Problem lösen so das es auf 30 Roomspeed nicht ruckelt?? :wacko:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von steven919 ()

  • 2500x2500 ist viel zu groß. Da haben einige Handys zu kämpfen. "Grey - The time required to clear screen each draw step" (show_debug_overlay) geht bei alten Handys auf 80% hoch. Also 10-15 fps. (Habe es auf ein paar alten Handys getestet- aber ohne view!!!)

    Am besten du testest große Räume einmal auf ein paar Handy´s. Ich kann es nicht empfehlen. Generiere dir lieber die Map außerhalb des views und schiebe sie dann in den view hinein (also lass die map sich bewegen und der player bleibt immer in der Mitte)

    Hast du dir show_debug_overlay(1) schon anzeigen lassen? Da solltest du sehen warum es laggt
  • glim888 schrieb:

    2500x2500 ist viel zu groß. Da haben einige Handys zu kämpfen. "Grey - The time required to clear screen each draw step" (show_debug_overlay) geht bei alten Handys auf 80% hoch. Also 10-15 fps. (Habe es auf ein paar alten Handys getestet- aber ohne view!!!)

    Am besten du testest große Räume einmal auf ein paar Handy´s. Ich kann es nicht empfehlen. Generiere dir lieber die Map außerhalb des views und schiebe sie dann in den view hinein (also lass die map sich bewegen und der player bleibt immer in der Mitte)

    Hast du dir show_debug_overlay(1) schon anzeigen lassen? Da solltest du sehen warum es laggt


    Ich möchte die App nicht für alte Geräte entwickeln. Das spiel läuft mit realen 2000 fps auf dem pc und auf dem handy 400 fps.
    Wenn das Handy überlastet wäre dann würde es erst recht mit 60 room speed überlasten da ja alles doppelt gezeichnet wird, dann läuft es aber flüssig.
    es ist auch kaum eine Belastung zu sehen ein bisschen von "Yellow - The time required for the draw event". Die Hälfte davon geht weg wenn ich nur die 4 virtuellen Buttons nicht zeichne.

    An der größe der Map liegt es nicht es ruckelt auch wenn diese kleiner ist aber nur mit 30 room speed. ich hatte die map auf 12000x12000 getestet lief super mit 60 room speed.
    Im prinzip wird doch die map gerade außerhalb des views generiert nur das der spieler hin und her geschoben wird, welchen unterschied würde es denn geben wenn ich eine 2500x2500 map generiere und diese hin und her schiebe anstatt dem Spieler? Es wäre doch dann auch sehr umständlich Objekte wie Gegner und Gebäude dort anzulegen, oder irre ich mich?
  • 12000x12000 echt. Das waren meine Handy´s ja richtig scheiße.

    Kannst du in dem Raum mal die Physik aktivieren und schauen ob es dann auch so gut ist? Würde mich interessieren.

    Zum Thema generieren: Ich wollte damit sagen ,dass alles im Raum deaktiviert ist, außer der view + ein kleiner Bereich um den view. (da kann man dann sogar den player bewegen -nicht die map)
  • glim888 schrieb:

    12000x12000 echt. Das waren meine Handy´s ja richtig scheiße.

    Kannst du in dem Raum mal die Physik aktivieren und schauen ob es dann auch so gut ist? Würde mich interessieren.

    Zum Thema generieren: Ich wollte damit sagen ,dass alles im Raum deaktiviert ist, außer der view + ein kleiner Bereich um den view. (da kann man dann sogar den player bewegen -nicht die map)


    Also hab den Raum mal auf 12000x12000 gestellt und physik im Raum aktiviert mit dem galaxy s6 und 60 room speed im durchschnitt 350 fps.

    Ich habe ja die view im room aktiviert es wird nur ein kleiner Bereich des Raums dargestellt 640x320. Oder reden wir gerade aneinander vorbei?
  • mit welchen Geschwindigkeiten bewegst du denn dein view? wenn das zB x += 1.5 ist oder 1.3 dann könnte so ein "ruckeln" und "schwammige Bilder" entstehen

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Aku_Ryou schrieb:

    mit welchen Geschwindigkeiten bewegst du denn dein view? wenn das zB x += 1.5 ist oder 1.3 dann könnte so ein "ruckeln" und "schwammige Bilder" entstehen


    Hatte es mit unterschiedlichen Geschwindigkeiten probiert. Bei 30 Roomspeed hatte ich es mit 5 und 10 probiert dürfte also nicht am runden liegen.