Spielfluss. Woran abhängig?

  • Spielfluss. Woran abhängig?

    Moinsen!
    Will jetzt wegen einer Frage keine Story schreiben, aber ich fühle mich dafür verantwortlich es sehr ausführlich zu schreiben ( XD ).
    Ok.
    Wir nehmen mal an:
    - Man hat einen Raum mit 100 Objekten und einer größe von 1000x1000
    - Es gibt eine View mit der größe von 640x480
    - Das Spiel hat davor noch 42 externe Ressourcen geladen
    - ca. 40 Objekte haben einen Step-Event der ordentlich gefüttert wurde 4
    - die restlichen ca.60 Objekte haben entweder einen mageren oder gar keinen Step-Event
    - ca. 20 Objekte bewegen sich stendig
    - Objekte die außerhalb der View (inkl. +250 Pixel des View-randes) entfernt sind, werden deaktiviert
    - Die gm6 beinhaltet ca. 100 Sprites, ca. 150 Objekte, ca. 30 Skripte, ca. 50 Sounds, 6 Fonts, 7 Backgrounds, 16 Rooms und hat eine größe von 2,6 MB
    - Im Spiel werden ca. 100 weitere objekte erstellt, die nach einer weile ( je nach Objekt ) verschwinden und anschließend Destroyed werden
    - ca.15 Skripte werden jede Sekunde neu abgerufen
    - das Spiel hat bei einem Rechner mit 2,4 GHz, 512 MB-Ram, Geforce 4 MX with AGP8X Grafikkarte ( ich weiß:( ), 256 Cache, blablabla
    - Im Spiel gibt es eine Frame Rate von Durchschnittlich 24fps ( was recht gut ist)



    Nun meine Fragen:
    1. Warum ist die Frame Rate so schei*e?
    2. Wie kann ich das ändern? ( außer die ganzen objekte zu löschen XD )
    3. Was kann die Frame Rate vermindern? ( ich glaub nicht, dass es nur die Objekte und die Raumgröße ist!(Miteinzuschließen die Sprite-Größen( Durchscnittliche Spritegröße ist 64x64) ) )


    Das wars.
    Meine Homepage:
    www.eafoods.tk
    ---------
    Sachma!
    Ich werd noch bekloppt ( wenn ich es jetzt noch nicht bin )! :O
    Braucht ihr ein Dolmetscher für die Fäkalsprache, oda was?
  • Das Problem sind die 40 Objekte mit ner Menge Zeug und die kontinuierlich aufgerufenen 15 Skripte. Reduziere den Umfang mal, mache den Code effizienter und Vermeide sinnlose Berechnungen.
    Das, was ein Spiel langsam macht, sind Sachen die dauernd und ziemlich oft ausgeführt werden. Bei genauerer Betrachtung lässt sich meistens einiges in ein Objekt zusammenfassen und nur einmal ausführen, oder einige Sache lassen sich wegstreichen da die sinnlos sind.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • k.
    Ich werd die datei dann mal unter den Schwitzkasten nehmen ;)
    Danke WA.
    Solange ich deinen Rat befolge warte ich noch auf weitere Ratschläge.


    PS: Ungewohnten Avatar haste WA ;) Hab dich sonst immer an deinen Avatar erkannt ^^
    Meine Homepage:
    www.eafoods.tk
    ---------
    Sachma!
    Ich werd noch bekloppt ( wenn ich es jetzt noch nicht bin )! :O
    Braucht ihr ein Dolmetscher für die Fäkalsprache, oda was?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mr. FOODS ()

  • Ist ne zwiespältige Sache. Auf nem gleichen PC ist der 6er schneller als der 5er. Der 6er hat aber höhere Anforderungen, sodass ein Spiel nicht auf auf so langsamen PCs läuft wo noch ein 5er laufen konnte.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Hast du daran gedacht, weit entfernte Objekte zu deaktivieren? Bringt unheimlich viel. Nimm einen Bereich um den Hauptcharakter, der wesentlich größer als der Bildausschnitt ist und deaktiviere alle Objekte außerhalb.
    Einige meiner Spiele:
  • Original von interceptor
    Hast du daran gedacht, weit entfernte Objekte zu deaktivieren? Bringt unheimlich viel. Nimm einen Bereich um den Hauptcharakter, der wesentlich größer als der Bildausschnitt ist und deaktiviere alle Objekte außerhalb.


    *hust*
    kein kommentar

    Zitat von mir:
    [...]
    - Objekte die außerhalb der View (inkl. +250 Pixel des View-randes) entfernt sind, werden deaktiviert
    [...]
    Meine Homepage:
    www.eafoods.tk
    ---------
    Sachma!
    Ich werd noch bekloppt ( wenn ich es jetzt noch nicht bin )! :O
    Braucht ihr ein Dolmetscher für die Fäkalsprache, oda was?
  • hoppala.... sorry, das hab ich übersehen.
    Schau, dass du die ganzen Step-Events wegbringst. Das bremst am meisten. Manche lassen sich durch Kollision in Objekte mit step-event umwandeln, das bringt aber natürlich nur bei bestimmten Objekten was.
    Einige meiner Spiele:
  • k.
    Bin grad dabei die Objekte zu filtern ;)
    Die gm6 wird langsam Mager ^^

    Heute schon von 3,1 MB auf 2,5 MB.
    (Hab schon vor dem Thread angefangen die Objekte zu bearbeiten ^^)
    Meine Homepage:
    www.eafoods.tk
    ---------
    Sachma!
    Ich werd noch bekloppt ( wenn ich es jetzt noch nicht bin )! :O
    Braucht ihr ein Dolmetscher für die Fäkalsprache, oda was?
  • Ich weise freundlich auf mein optimier tutorial hin in der database zu finden.

    Wie schon gesagt wurde Step Events vermindern Code optimieren (überflüßiges raus,schauen ob man bestimmten code verkürzen kann, switch statt viel if,..)
    Die Ressourcen komplett extern lagern und nur bei bedarf in den speicher laden und bei keinem gebrauch mher entladen.

    Keine kostspieligen Effekte.
    Die Ressourcen beschneiden also nur klein halten.
    Die Farb anzahl der Bilder seken auf 256 sollange keine veränderungen zu sehen sind.
    Die umgebung mit tiles machen statt mit objekten....

    Und auch mal in Tut gucken...
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • Wie kann man ressourcen entladen?

    Und wie kann man switch benutzten ^^" ?
    Ich weiß nur wie das mit den Message dinger geht.


    Danke für die Hilfreichen tipps!
    Meine Homepage:
    www.eafoods.tk
    ---------
    Sachma!
    Ich werd noch bekloppt ( wenn ich es jetzt noch nicht bin )! :O
    Braucht ihr ein Dolmetscher für die Fäkalsprache, oda was?
  • sprite_add(fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig)

    Hinzufügen

    Entladen bzw entfernen mit

    sprite_delete(ind)

    So sieht eigentlich mit allem aus wie bei sound bg's etc. ;)
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • ok.
    Das wird viel arbeit für mich ^^
    Inzwischen habe ich (glaube ich), dass mit dem Switch kapiert ^^
    Oda auch nicht XD


    Off Topic:
    Kurzer Switch test :)
    Wenn ich eine Variable "move" habe, die auf Strings basiert ist, wie muss ich dann das mit dem Switch machen?
    so:

    GML-Quellcode

    1. switch(move){
    2. case "vor": NACHVORNE LAUFEN
    3. case "zurück": ZURÜCK GEHEN
    4. ...
    5. }

    ?(
    Meine Homepage:
    www.eafoods.tk
    ---------
    Sachma!
    Ich werd noch bekloppt ( wenn ich es jetzt noch nicht bin )! :O
    Braucht ihr ein Dolmetscher für die Fäkalsprache, oda was?
  • hier mal n' switch von mir:

    GML-Quellcode

    1. switch (menue_dropdown.aktuelles_bauhaus)
    2. {
    3. case "holzhaus":
    4. {
    5. blah
    6. }
    7. break;
    8. case "steinhaus":
    9. {
    10. blah
    11. }
    12. break
    13. case "eisenbergwerk":
    14. {
    15. blah
    16. }
    17. break
    18. }
    Alles anzeigen

    break beendet den switch!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von iTeM ()

  • ja hab ich.
    Hab auch schon länger eingestellt, dass man die Qualitätsstufe setzten kann. (Hoch, Mittel, Niedrig)
    Trotzdem danke für den Tipp. :happy:
    Meine Homepage:
    www.eafoods.tk
    ---------
    Sachma!
    Ich werd noch bekloppt ( wenn ich es jetzt noch nicht bin )! :O
    Braucht ihr ein Dolmetscher für die Fäkalsprache, oda was?