Ergebnis 1 bis 8 von 8

Thema: Code vereinfachung?

  1. #1

    Code vereinfachung?

    Morgen zusammen!

    Ich hoffe ihr könnt mir helfen. Ich sitze zur Zeit an einem Projekt im Harvest Moon Stil. Da ich aber keine Lust habe, 10000de Events mit entsprechenden 50 Seiten und verschiedenen Variablen zu bestücken, hab ich es wie folgt gemacht:
    Die Events führen jeweils folgende Berechung durch: Nimm meine Koordinaten, such die dazugehörige Variable, dann ändere von ThisEvent die Graphik je nachdem, wie der Wert dieser Variable ist.
    So, damit kann ich die Events kopieren, und muss an sich nichts ändern. Wenn ich auf die Farm-Map draufgehe, startet sich ein Event, dass alle bepflanzbaren Events durchgeht und startet, wenn sich z.B. ein Stein oder eine Pflanze drauf befindet.
    Jetzt ist es wie folgt: Ich hab das ganze mit einem 10x10 Felder großem Stück Land probiert, habe so gut wie alles, was ich brauchte, geschrieben und hab jetzt die Events fröhlich kopiert. Mal abgesehen davon, dass mein Rechner jetzt etwas zum Sichern braucht, ist es aber jetzt so:
    Das dauert 20 Sekunden, und ich habe erst ein Viertel der Farm mit Events bestückt.
    So, meine Frage ist: Kennt jemand irgendwelche Methoden, den RPGMaker zu beschleunigen? (Was weiß ich, vielleicht macht es was, wenn ich die Berechnungen vereinfache oder die Coments rausnehme oder so. Hab von 3 Möglichkeiten das zu machen, schon die ausgewählt, die am wenigsten Zeit brauchte, aber jetzt bin ich verzweifelt.)
    Gibt es da was, was das beschleunigen würde? Macht es zum Beispiel was aus, wenn ich während dem Event die Parallelen Prozesse rausnehme oder irgendwie sowas. Kann das beim besten Willen nicht alles ausprobieren. Hoffe auf irgendwas brauchbares,

    Danke, Nefer

  2. #2
    ich kann mir das beim besten willen nicht so recht vorstellen!
    zeig mal den code, oder lad ein script hoch!

    aber mal ein allgemeiner tipp:
    mach sehr viele waits von 0.1 secunde nach jedem pp und ce rein!

  3. #3
    Zitat Zitat von Freierfall
    ich kann mir das beim besten willen nicht so recht vorstellen!
    zeig mal den code, oder lad ein script hoch!

    aber mal ein allgemeiner tipp:
    mach sehr viele waits von 0.1 secunde nach jedem pp und ce rein!
    Nein, besser 0.0 !!

    *sichwiederinslochverzieh*

  4. #4
    Script hochladen?

    Der Code sieht etwa so aus (stark vereinfacht und ähnlich basic, weil ich faul bin):
    Code:
    X = 3
    Loop
       Y = 12     (Das Feld beginnt an der Koordinate (3|12))
       Loop
           VariNr = X * 40 - 71 + Y   (Damit ist der Event auf (3|12) der Variablen 61 zugeordnet, der auf (4|12) der Nr 101)
           VariWert = Vari(VariNr) Variablennummer
           If VariWert <> 0  (0 ist unbearbeiteter Boden)
                   Set EventID (X|Y) --> EventNr
                   If EventNr > 0
                            Eventpage = 1
                            Call Event (EventNr | Eventpage)
                   End Case
           End Case
           Y = Y + 1
           If Y >= 51 
                   Break
           End Case
       End Loop
       X = X + 1
       If X >= 42  (Das Feld endet an der Koordinate (42|51)
            Break
       End Case
    End Loop
    So Pi mal Daumen. Da ist eigentlich noch ein Teil drinne, damit ich einen Ladebildschirm sehe (weil ich das gerne überwacht habe), aber das tut denk ich nichts zur Sache
    Das ist kein Paralleler Event, sondern den muss ich nur beim Betreten der Map ausführen, wenn man sonst was ändert (gießen oder so) dann ändere ich das eine Feld einzeln. Soll ich trotzdem Waits einsetzen?

    Hoffe es ist jetzt verständlicher?!

  5. #5
    ab besten hinter jedem pp und auch jedem fork aslo
    PHP-Code:
    if xyz
    asdadasd
    wait 
    (0.0)
    else
    asdasdasd
    wait 
    (0.0)
    end
    weiter im text 

  6. #6
    Zitat Zitat von Freierfall
    ab besten hinter jedem pp und auch jedem fork aslo
    PP heißt Parallel Prozess, oder? Die haben natürlich alle Waits, hätte aber sein können, dass 5 davon schon die Rechenleistung so beeinflussen, dass ein anderer Event langsamer geht.
    Wegen dem mit dem Fork: Das hab ich ausprobiert, wird nur noch langsamer. Ist ja an sich auch logisch. Diese Schleife durchläuft es 1600 mal, wenn da jetzt 3 mal Wait 0.0 drinne steht, macht das 800*0.1 Wait = 80 sekunden?! Ganz schön viel, dafür geht es ja wirklich recht schnell.

  7. #7
    Hm.. erstmal dickes *thumbsup* Hätte nicht gedacht, daß jemand denselben Ansatz bei HM geht, wie ich es mal gemacht habe..

    Wahnsinnig beschleunigen kann man den Maker leider nicht, er ist sehr unoptimiert geschrieben. Was du machen könntest, ist PPs einsparen, also lieber den Code von zwei PPs zusammen in ein PP packen. Wird zwar unübersichtlich, kann aber eventuell einen kleinen Schub geben. Ansonsten mußt du wohl damit leben..

  8. #8
    Zitat Zitat von MagicMagor
    Hm.. erstmal dickes *thumbsup* Hätte nicht gedacht, daß jemand denselben Ansatz bei HM geht, wie ich es mal gemacht habe..
    Danke. Und was ist aus deinem Ansatz geworden? Wenn man fragen darf.

    Zitat Zitat von MagicMagor
    Wahnsinnig beschleunigen kann man den Maker leider nicht, er ist sehr unoptimiert geschrieben. Was du machen könntest, ist PPs einsparen, also lieber den Code von zwei PPs zusammen in ein PP packen. Wird zwar unübersichtlich, kann aber eventuell einen kleinen Schub geben. Ansonsten mußt du wohl damit leben..
    Sehr schade. Aber das mit den PPs werd ich dann mal machen. Bin eh ein Chaot, da kommt's dadrauf nicht an.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •