FPS verringern sich ab 2000px

  • GM 8

    FPS verringern sich ab 2000px

    Hi,

    Mein Problem:
    Nach zirka 2000px verringern sich die FPS dramatisch!
    Von 30 langsam runter auf 5.
    Mein Room:
    Width: 8000
    Height: 608
    Room Speed: 30
    View: 300x200
    View folgt Obj_character, welches sich bei Tastendruck mit 4px pro step bewegt.

    Ich habe absolut nichts damit zu tun! (Kein Code, kein Room Speed,...)
    HILFE! Ich stehe kurz vor der Verzweiflung!
    :headtouch: :headtouch: :headtouch: :headtouch: :headtouch: :headtouch:
    wie man bekanntlich wiss ist der game maker ein richtiger ressourcefresser.
    Der Punkt ist: Dein "Sprite" bzw Bild ist einfach zu groß für den GM.
    Du musst bei Spielen die viel "Freiraum" brauchen (ala Sandbox) Möglichkeiten finden deine Ressource so wenig wie nur möglich aufzubrauchen.

    Was genau hast du den vor? Ist das Bild eine riesige map oder nur eine art "untergrund" der überall gleich ausschaut?

    1. Also, es ist ein 2D Platform Jmp 'n' run.
    Objekte: Blöcke, Monster, 1x Player, Viele viele Tiles
    Und der immer gleich bleibende Himmel Hintergrund.


    __

    2. Ich habe auch schon versucht, alle Objekte die nicht im View sind auszuschalten aber da gab es das Problem das sich deaktivierte Objekte nicht wieder selbst aktivieren können.
    Mein Code:

    GML-Quellcode

    1. with all
    2. {
    3. if (x>view_xview[0]) and (y>view_yview[0]) and (x{instance_activate_object(self)}
    4. else
    5. {instance_deactivate_object(self)}
    6. }


    Übrigens... Kann man überprüfen ob ein Objekt deaktiviert ist?

    __

    3. Meine CPU Auslastung (AMD Phenom 9500 Quad-Core) liegt am Anfang bei 5-15% am Anfang der Laggs bei 30-40% und am Ende des Rooms bei 50-60%, aber im Hintergrund läuft alles flüssig! So gar Filme in DVD Qualität laufen komplett flüssig!!!

    __

    4. Selbst nach dem entfernen des Hintergrundes hab ich noch die Laggs!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Robinx“ ()

    Könnte es eventuell auch an den 8000px liegen? Klingt für mich eh nach ein wenig zuviel, greife lieber auf viele kleine Räume zurück.
    & Das deine Filme etc. im Hintergrund noch flüssig laufen liegt am Quadcore selbst. Imho nutzt der GM (wie viele anderen Spiele auch) nur einen Prozessor davon.

    Jedoch kann man sich so schlecht ein Bild machen, warum dein Projekt soviele Ressourcen frisst.
    Jo danke... Mit dem Code von Copyboy hat's funktioniert!

    Ho?
    Das bedeutet das es nicht am Raum selbst liegt sondern nur an den Objekten. instance_deaktivate deaktiviert nähmlich nur Objekte. Nichts anderes.
    Dein Problem ist merkwürdig...

    WIe auch immer. Gut das es gelöst ist...

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
    Mh, kannst du mal die gmk hier posten?
    Am Raum selbst liegts nicht... Ich kann in meinem rts einen 9024*9024 großen Raum machen. Und trotz 50 Objekten bleiben die 30 fps absolut stabil.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
    O.O ich habe 678 Instancen im Raum!
    _
    Haste Skype?
    Ich möchte sehr ungern die GMK posten!

    [Zusammengeschoben von Ih3]

    Edit geht nicht! Und wie das geht. Vielleicht hat aber dein Browser Probleme? Evtl. mal mit einem anderen Browser probieren - Doppelposts sollten grundsätzlich aber vermieden werden.

    Also... nachdem der Code nun erst nach 10sec anspringt läuft wieder alles?!


    So langsam fühle ich mich echt verarscht!
    :headtouch:
    Moment. Da bist du ganz einfach an die Grenzen vom GM gelangt. Du hast geschrieben "kein Code" ...
    600 Objekte mit Code im Step event überlasten einfach das system. Auch einen 3 ghz Prozessor.
    Du musst performanter coden und vorallem mit weniger Objekten...
    In dem fall das die Objekte nicht alle gleichzeitig benötigt werden sondern nur die im View, kannst du Copys Code sehr gut nutzen. Sollte funktionieren.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
    Lass doch nur die ganzen Objekte einen Kollisionscheck durchführen. Die Wandobjekte, die wohl am häufigsten im Room vorkommen sollten gar keinen Codeinhalt haben.
    EDIT: Ups, sollte einen Beitrag 2mal lesen ehe ich auf antworten drücke...

    Aber eigentlich sollte es dann flüssig laufen, wenn du nirgens unnötig code ausführst und vorallem Objekte außer Sichtweite deaktivierst.
    Check am besten mal alle step und drawevents durch, ob da nicht irgendwas unnötig oft durchgeführt wird, was eigentlich nur unter bestimmten Bedingungen erst nötig ist oder gar ein einziges mal im createevent.