Performenceprobleme

  • GM 8

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

  • Performenceprobleme

    heyho, ich wollte einen kleinen 2D shooter bauen und benutze im groben die simple platform engine von Thodd
    ich hab das ganze ein wenig ausgebaut und hab nun große performence probleme

    deshalb hier meine frage:
    kann ich das irgendwie effektiver gestalten, das liegt in meinem step event und ändert quasi permanent das sprite meiner hauptperson, kann ich das irgendwie verhindern?
    Spoiler anzeigen

    GML-Quellcode

    1. if (global.is_walking) = true
    2. {
    3. if keyboard_check(global.up)
    4. {
    5. if (global.dir = -1){sprite_index = spr_char_walking_left_up;}
    6. if (global.dir = +1){sprite_index = spr_char_walking_right_up;}
    7. }
    8. else
    9. {
    10. if (global.dir = -1){sprite_index = spr_char_walking_left}
    11. else{sprite_index = spr_char_walking_right}
    12. }
    13. }
    14. if (global.is_walking = false && global.hocke = false)
    15. {
    16. if keyboard_check(global.up)
    17. {
    18. if global.dir = 1 sprite_index = spr_char_idle_right_up;
    19. else sprite_index = spr_char_idle_left_up;
    20. }
    21. else
    22. {
    23. if global.dir = 1 sprite_index = spr_char_idle_right;
    24. else sprite_index = spr_char_idle_left;
    25. }
    26. }
    27. if (global.fly=true)
    28. {
    29. if keyboard_check(global.up)
    30. {
    31. if (global.dir = -1){sprite_index = spr_char_fly_left_up}
    32. else{sprite_index = spr_char_fly_right_up}
    33. }
    34. else
    35. {
    36. if (global.dir = -1){sprite_index = spr_char_fly_left}
    37. else{sprite_index = spr_char_fly_right;}
    38. }
    39. }
    40. if (global.hocke=true)
    41. {
    42. if (global.dir = -1){sprite_index = spr_char_down_left}
    43. else{sprite_index = spr_char_down_right;}
    44. }
    Alles anzeigen
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • ich versuche gerade generell alles an performence zu einzusparen was geht, leider habe ich bei sowas nicht viel erfahrung. es sind nicht wirklich viel mehr objekte als bei der originaldatei von todd, ich hab bis jetzt einfach nur versucht mir meinen player so anzupassen wie ich ihn haben möchte + einen gegner, hier mal zum testen worums geht:
    Spoiler anzeigen
    file-upload.net/download-3721605/Cronos.rar.html
    Steuerung:
    pfeiltasten = bewegung
    boost = space
    springen = a
    schießen = s
    vollbild = f4

    es liegt auch nicht am arbeitsspeicher, meine prozessorleistung steigt nur enorm an.
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • Ich kann mir schwer vorstellen dass dieser Code die Performanceprobleme verursacht.
    (wenn du wüsstest was ich in einem einzigen Step-Event ausführe...)

    Die exe sagt leider nicht viel aus. Bei mir tauchen zwar auch Performanceprobleme auf, jedoch kann ich dir nicht sagen woran das liegt. (ohne den Code zu kennen ist das recht schwer.^^ )
    Hast du eigentlich versucht den ganzen Code mal auszukommentieren? Läuft es dann flüssiger?
  • Alter Post:
    Spoiler anzeigen
    Ich würde normalerweise auch die Anzahl der Objekte verantwortlich machen, aber alles unter 200 sollte sich nicht bemerkbar machen, so Pi mal Daumen. Bei mir nimmt das Spiel mal eben 20% Leistung - eine Puzzle-Demo von mir schafft rund 30, aber die schreibt in jedem Frame zig Sachen in Datastructures...
    Ohne mehr Sourcecode lässt sich hier wirklich nichts sagen. Gerne auch per PN.

    Ich mach mal ganz böse einen Doppelpost, aber ich finde, das sollten ruhig mehrere lesen.

    Ich habe mir die gmk mal angeschaut, habe nach und nach alles weggenommen - ohne Ergebnis. Also habe ich die Disordia-gmk mal rangekarrt und die Game Settings verglichen.
    Ergebnis: Use synchronization to avoid tearing ist schuld.
    Wenn man diese Option einschaltet, verdoppelt bis verdreifacht sich die CPU-Last.
    Ich habe dann mal rumgesucht, um den Grund dafür zu finden - den hab ich nicht gefunden, dafür aber das hier.

    Edit: Doppelposts sind einfach zu hässlich, ich schieb meinen Kram daher mal zusammen...