Load Only On Use ?

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

  • Load Only On Use ?

    Da ich mein aktuelles Spiel jetzt mal auf einem langsameren Rechner (400 MHZ) getestet habe stellte ich fest das das Spiel hier deutlich langsamer oder sogar kaum noch spielbar ist.

    Ich habe die momentan Betaversion dran getestet welche grade mal aus dem ersten Level bestand. Jetzt ist das grade mal ein 6tel des Spieles so das ich befürchte das das Spiel selbst auf stärkeren Rechnern nicht mehr flüssig läuft sobald es fertig ist zumal ich für jeden Level einen komplett neuen Grafiksatz machen wollte.

    Jetzt habe ich mal probeweise alle Sprites des ersten Levels auf "Load Only On Use" gestellt mit dem Ergebnis das das Spiel, sobald ein neues Objekt im Level selbst auftauchr, kurz stockt was selbst auf meinem 3 GHz Rechner unangenehm auffällt.

    Was optimal wäre wenn vor jedem Level der komplette Grafiksatz geladen werden würde und nach dessen Beendigung alles, mit Ausnahme der Items und des Spielers aus dem Speicher entfernt werden würde um Platz für den Nächsten zu schaffen.

    Allerdings habe ich keinerlei Ahnung wo ich das einstellen könnte da ich mit Ausnahme der "Load Only On Use" Option nichts in der Richtung gefunden habe.
  • mach das doch mit visible
    also wenn das object in der nähe ist setzt du visible auf true
    und du könntest auch machen das man die spielgeschwindigkeit optimal für seinen rechner einstellen kann :D
    das ist auch nicht schlecht
    Die Schönheit liegt im Auge des Betrachters :D

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

  • Du könntest die ganzen Grafiken auch extern speichern und per Funktion am Anfang des levels Laden und am Ende den Speicher wieder freigeben. Alelrdings sin halt so alle Grafiken zum Manipulieren frei und wenn die Kollisionen sich nach den Sprites richtien kann der Spieler so das Spiel schrotten. Bliebe dann noch möglich ein eigenes Dateiformat zu erfinden und per selbstgeschriebenen Scripts zu laden, aber das is fürn Anfang wohl zu schwer.

    Bringts das wenn mans auf visible stellt?Ich denk net. Wenn die Sprites ausserhalb der view sind, werden sie doch eh net gezeichnet.

    Die Spielgeschwindigkeit einstellen? Wenn der Rechner nich mitkommt läuft das Spiel doch eh langsamer... ???
    Man könnte jedoch mit der neuen funktion im GM6 das nich automatisch nach jeden step das draw-event aufgerufen wird, das Bild nur alle 3 Frames z.b. zeichnen falls das Spiel zu langsam laufen soltle. Oder optionen um Spezial- alpha- oder Blendmode-effekte auszuschalten.
  • deine idee ist gut xiebel nur anstatt sich selbst ein script oder so was zu schreiben würde ich einfach mit paint oder so was bilder malen und
    die endungen dann unbenenen
    also
    f1.bmp -> f1.dll
    oder
    f1.bmp -> f1.dat
    man würde vielleicht die dateien mit dem editor öffnen (das mache ich oft aus neugier)
    aber man würde nicht vermuten das es mit paint gemacht wurde
    und das man es mit einem bildeditor öffnen sollte
    ist doch ne gute idee
    und wenn einer es doch herausfindet dann geht doch nicht die welt unter

    und das mit dem visible funktioniert glaube ich da er die sprites nicht beim view ende ausschaltet weil er ja noch die position errechnen sollte und ob viellciht one collision da ist
    denn er muss doch wissen wie groß das sprite ist und welche form es hat
    Die Schönheit liegt im Auge des Betrachters :D

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

  • Ok das mit dem einfach umbenennen ist zwar nich sehr professionell aber trotzdem ne gute möglichkeit, nur wirds auffällig wenn man viele sprites hat und dann lauter dateien existieren die heisen "red_car.dll" "monster1.dat" "monster1_walk_left.muh" usw :P

    Naja aber ob ne Kollision stattfindet wird ja auch so errechnet egal ob des sprite unsichtbar is oder nich, sonst würd es ja keinen unterschied zwischen unsichtbar und deaktiviert geben ^^
  • Soweit ich weiß gibt es Funktionen, um Grafikressourcen manuell in den Speicher zu laden und wieder zu entladen.
    Aber ich sitz grad in der Schule, hab also keine Hilfe zu Hand...
    "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
  • Original von Windapple
    Soweit ich weiß gibt es Funktionen, um Grafikressourcen manuell in den Speicher zu laden und wieder zu entladen.
    Aber ich sitz grad in der Schule, hab also keine Hilfe zu Hand...


    Tze, tze tze...
    Du bist ein Admin, du musst wissen, was auf deinem Server rumfliegt^^
    gm-d.de/help/#36.1_Sprites
    sprite_restore(ind)
  • Original von Windapple
    Jo, aber in der Schule fummel ich net am Server rum und schau, wo was ist^^

    Der Code zum entladen ist übrigends sprite_discard(ind)


    UAAAHH!! :heul:
    Klingt nach ner Heidentipperei.
    Egal, da stecken jetzt soviele Beinahenervenzusammenbrüche drin, da kommt das da auch nicht mehr drauf an. Aber wenigstens ist der Code recht unkompliziert.

    Danke für eure Hilfe :)



    Nachtrag:

    Wenn ich nach jedem Level alle nicht mehr benötigten Sprites aus dem Speicher werfe, wie lade ich vor Levelbeginn die benötigten Sprites in den Speicher ? So würden Anfangs des Spiels ja erstmal alle Sprites die irgendwann im Spiel gebraucht werden ja erstmal geladen werden.

    Gibt es einen Befehl in dem ich die Levelbenötigten Sprites erstmal in den Speicher laden kann ohne das der das automatisch macht ?


    Noch ein Nachtrag:

    Habs in Agnahims Link gefunden was ich suchte, Danke für den Link !

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