Eine Frage zur generellen Performance

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

  • Eine Frage zur generellen Performance

    Hallo,
    bin heute in der Tat mal ein wenig zum Testen gekommen. Hab erst mal das Catch the Clown Tutorial gemacht und fand es insgesamt schon recht lustig was sich da ohne jedweden Code realisieren lässt. Ungewohnt, aber brauchbar.
    ABER:
    Habe dann als nächstes Mal versucht eigenständig was zu erstellen, und hier kommt der GM in's Schwitzen, obwohl noch nicht wirklich was passiert:
    -Ein Raum
    -Ein Objekt (mit angehängtem Sprite, des testens Wegen auch der Clown)
    -Dieses Objekt hat ein einzelnes Event: LeftButton, in dem eine einzelne Aktion stattfindet: CreateInstance, es wird ein weiterer Clown relativ zur Aktuellen Position erstellt.
    Das war's. Wenn ich nun das Programm starte hab ich einen Clown, clicke ich ihn an, wird rechts davon ein weiterer erzeugt usw.
    Soweit, so gut. Allerdings beginnt so bei 10 - 12 Clowns auf dem Schirm mein (Gaming-)Lappie auf Volllast hochzudrehen und es gibt einen merklichen Lag bis der nächste Clown erstellt wird. Ab ca. 15 Instanzen meldet mir die App sogar phasenweise ein "Reagiert nicht".
    Jetzt bin ich verwirrt. Ein Dutzend Objekte auf dem Screen ist nicht wirklich viel, eigentlich nicht der Rede wert. Woher kommt dieser unglaubliche Overhead? Ich hätte eigentlich damit gerechnet dass ich (von dermassen simplen) Objekten ohne Probleme meherere Hundert bis Tausend erstellen kann. Gibt es da Möglichkeiten Performance zu gewinnen? Mache ich irgendwas grundlegend falsch?

    Danke schon jetzt für eure Antworten.
  • Eigentlich dürfte GM auch bei 2000 Objekten keine Laggs haben.
    Für näheres müsste ich den Code sehen
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Naja, es gibt ja keinen direkten Code.
    Alles was ich gemacht habe ist im Studio diese Events erstellt.
    Also Object erstellt, Sprite zugewiesen, Event LeftButton unter Mouse und darin als Action CreateInstance, relative zur aktuellen Position. Eins der Objekte in die Karte und los die Lucy.
    Wenn ich irgendwo den generierten Code ersehen / rauskopieren kann, sag mir wo, dann werde ich das tun und einstellen, aber mehr als das Beschriebene tat ich nicht.
    Muss ich noch irgendwas bei den Einstellungen ändern?
  • Left Button Event?

    Dann wird solange du den Knopf drückst immer wieder ein Objekt erstellt.

    Bei mehreren Sekunden draufdrücken kommen da schon einige Instanzen zusammen die wiederum jedes mal wenn du die Taste drückst weitere Instanzen erstellen.

    Du hast also bestimmt viel mehr wie nur 10-15 instanzen.

    Nutze zb lieber das Left Button Release Event. Das wird ausgeführt wenn du die Taste loslässt. Nicht solange die Taste gedrückt ist.

    Edit: Hatte gelesen das du ja schon Programmiererfahrung in anderen Sprachen hast. Da würd ich dir empfehlen direkt mit dem Coden anzufangen in Game Maker. Ohne die Drag & Drop Funktionen. Den diese sind arg beschränkt und zeigen bei weitem nicht was der GameMaker so alles drauf hat :)
  • Ohh, @BladeRunner.
    Schön das es Dich auch mal in diese Ecke verschlagen hat :)

    ( D²O ) :)

    Ja GM ist etwas gewönnungsbedürftig wenn man gewohnt ist alles in einer "normalen" IDE zu machen,
    aber man hat den dreh relativ schnell raus.
    Ach, falls Du noch nicht die Voll(Pro) version hast, schau mal bei https://www.humblebundle.com/gamemaker-bundle rein
    Läuft glaub ich noch 4 Tage.