RPG-Maker Quartier

Hier dreht sich alles um die RPG-Maker-Reihe von ASCII/Enterbrain. Der RPG-Maker ist ein Tool, mit dem du dir dein eigenes kleines Rollenspiel erstellen kannst. Du findest hier alles, was du dazu brauchst. Aber natürlich umfasst die Community noch mehr!
Aktuelle Zeit: Di Mär 03, 2020 2:27

Alle Zeiten sind UTC + 1 Stunde



Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
Offline
Wurstbrot
Wurstbrot
Benutzeravatar
Beiträge: 88
Wohnort: Der Hohlraum zwischen den Löchern.
 Betreff des Beitrags: Performance
BeitragVerfasst: Di Okt 18, 2011 16:40 
Ich bin grad beim Basteln(bzw. eher Erweitern/Ausbauen) meines Kampfsystems an einen Punkt gekommen, an dem ich Performanceprobleme bekomme.

Meine Hauptfrage in dem Zusammenhang: Welche Lösung ist Effizienter:
Viele(N) Parallel Process Events, bedingt durch Trigger switchens, aber mit Langen waits (im Sekundenbereich).
(Ist ein Triggerswitch eigendlich intern was anderes als eine ausgelagerte, frameweise If abfrage?)

Oder ein Parallel Process Event, das Frameweise den Zustand von N Switches überprüft.
Die ensprechenden Events überschneiden sich an keinem Punkt, daher sind beide Ansätze prizipell möglich.

Ansonsten: Bin ich dankbar für weitere Tipps zu Eigenheiten des Makers.

_________________
Meine Rm2k3 Tutorials.
Wenn ihr interessante(!) Ideen für (Rpg Maker 2000(/3)) Skripts habt: Schreibt mir `ne PN, dann helf ich gern skripen oder skripte sie selbst ... :]
mfg Brei


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Attention-whore
Attention-whore
Benutzeravatar
Beiträge: 1925
Alter: 29
 Betreff des Beitrags: Re: Performance
BeitragVerfasst: Di Okt 18, 2011 17:10 
Weniger Befehle pro Frame sind eigentlich immer besser und kommt der Performance immer zugute, aber die größten Probleme verursachen dabei immer Bilder, die neugezeichnet werden oder PPs ohne Waits. Wenn du also Animationen hast, dann versuch sie möglichst so zu synchronisieren, dass sie nicht alle auf einmal laufen, sondern immer erst die eine Hälfte und dann die andere (oder halt noch mehr bereiche, wenn es noch langsamer abläuft^^)

und bei PPs sollte man am besten eher auf wenige Steuerevents setzen und dann mehr auf Call events zu setzen um noch ein wenig mehr einzusparen

und falls du transparente Bilder übereinander legtst, könnte das auch einiges an problemen verursachen


Nach oben
 Profil ICQ  
Mit Zitat antworten  
Offline
Wurstbrot
Wurstbrot
Benutzeravatar
Beiträge: 88
Wohnort: Der Hohlraum zwischen den Löchern.
 Betreff des Beitrags: Re: Performance
BeitragVerfasst: Di Okt 18, 2011 18:18 
An Bildern liegt es bei mir denk ich eher nicht. Danke aber für den Hinweis. =)

Das generell weniger PPs besser sind als mehr PPs ist klar. Ich bin bloß grade in einer Situation in der ich entweder ein PP frameweise durlaufen lassen muss, obwohl nur in den wenigsten Frames etwas passiert. Oder ob ich Viele PPs mit trigger-switches habe, die aber dann sinnvoll getaktet (Größenordung von einmal pro Sekunde) laufen.
Ich hab leider keine Ahnung wie genau Triggerswitches eine Aufwandsersparniss gegenüber frameweiser Abfrage des switches von Hand geben...

Die Aufwand liegt bei mir vorallem in einer Großen Zahl an Koordinatenabfragen, die in einem Frame bearbetet werden sollen. Das allerdings nur(^^) in gezählten Schleifen. Das resultiert dann gerne mal in kurzen Laggs.

Ein Besonderer Grenzfall als Beispiel:
Ich möchte wissen, welche Gegner sich in einem Gebiet um den Helden befinden.
Würde ich das über Koordinatenabfragen machen. (Also alle Koordinaten von Potentiellen Gegnern mit denen des Helden vergleichen) habe ich linearen Rechenaufwand auf die Gegnerzahl. Das ist insofern Problematisch, dass ich (weil mehrere Spells) eine ganze Reihe solcher abfragen Bräuchte. Also Aufwand linear auf Gegngerzahl und Geschosszahl.

Ich versuch nun also Folgenden ansatz: Für jedes Feld(Entweder per doppelt geschachtelter Schleife, oder mit deutlich kleineren Laggs von Hand) frage ich ab, welches Event sich darauf befindet. (Store Event ID) Wodurch die Laufeit Konstant auf die Gegnerzahl ist.

Ich bekomme als N Event IDs. Für jedes schaue ich in eine Spezifische Variable wie weiter zu verfahren ist. (Ob ich Lebenspunkte verändern muss, das Event bewegen muss, ein "Flash Event" setzen muss etc.). Dabei gibt es logischerweise bei großen Feldern und aufwändigen Operationen (wie zum Beispiel Positionsveränderungen, abhängig von Koordinatenvergleichen - das is so ziemlich das aufwändigste was passieren kann) ein derbes Worst Case Scenario...


Edit: Mir fällt grad auf, dass genau dieses Beispiel mit -einem- tranparenten, kreisenden Picture einhergeht. Das scheint eine beträchtliche Mitschuld zu tragen. Sind die Dinger echt SO schlimm?

_________________
Meine Rm2k3 Tutorials.
Wenn ihr interessante(!) Ideen für (Rpg Maker 2000(/3)) Skripts habt: Schreibt mir `ne PN, dann helf ich gern skripen oder skripte sie selbst ... :]
mfg Brei


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Attention-whore
Attention-whore
Benutzeravatar
Beiträge: 1925
Alter: 29
 Betreff des Beitrags: Re: Performance
BeitragVerfasst: Di Okt 18, 2011 19:09 
Mh joa, da kenne ich mich halt eher weniger aus, weil so große Sachen hab ich bisher auch eher noch nicht gebaut^^

Brei hat geschrieben:
Edit: Mir fällt grad auf, dass genau dieses Beispiel mit -einem- tranparenten, kreisenden Picture einhergeht. Das scheint eine beträchtliche Mitschuld zu tragen. Sind die Dinger echt SO schlimm?


Das hab ich selbst nur gelesen, aber es kann durchaus passieren bei schwächeren Systemen. Müsstest also mal schauen, ob du einen Abschnitt hast, wo es jedes mal lagt und dass dann ohne Transparenz durchlaufen lassen. Selbst habe ich so eine Fehlerquelle aber auch noch nie erzeugt, von daher bleibt es meinerseits auch nur Theorie^^


Nach oben
 Profil ICQ  
Mit Zitat antworten  
Offline
Wurstbrot
Wurstbrot
Benutzeravatar
Beiträge: 88
Wohnort: Der Hohlraum zwischen den Löchern.
 Betreff des Beitrags: Re: Performance
BeitragVerfasst: Di Okt 18, 2011 19:21 
Effekt der Transparenz geht anscheinden gegen 0.
Mag das nur die Rotation sein? Das kann ich ja kaum glauben... o.O
Die war mir aber irgendwie wichtig (nicht elementar, aber macht die Sache schon deutlich hübscher).

Edit: Wave scheint als Effekt SEHR viel simpler zu sein o_O

_________________
Meine Rm2k3 Tutorials.
Wenn ihr interessante(!) Ideen für (Rpg Maker 2000(/3)) Skripts habt: Schreibt mir `ne PN, dann helf ich gern skripen oder skripte sie selbst ... :]
mfg Brei


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Technik-Freak
Technik-Freak
Benutzeravatar
Beiträge: 6635
Wohnort: Köln =0
 Betreff des Beitrags: Re: Performance
BeitragVerfasst: Di Okt 18, 2011 20:35 
Wenn das Bild auf der Grafikkarte gerendert werden würde, solltest du eigentlich keinen Einfluss merken. Scheinbar wird es das aber nicht.

Ansonsten:

Zitat:
Würde ich das über Koordinatenabfragen machen. (Also alle Koordinaten von Potentiellen Gegnern mit denen des Helden vergleichen) habe ich linearen Rechenaufwand auf die Gegnerzahl. Das ist insofern Problematisch, dass ich (weil mehrere Spells) eine ganze Reihe solcher abfragen Bräuchte. Also Aufwand linear auf Gegngerzahl und Geschosszahl.


Wie sieht deine Koordinatenabfrage genau aus? Ist die gänzlich konstant für die verschiedenen "Spells"? Fragst du Radien ab oder nur, ob sich ein Gegner relativ auf einer bestimmten, relativen Position zum Helden (z.B. direkt vor dem Helden in Blickrichtung) befindet? Wie werden die Gegner bewegt?

_________________
Bild

1,24€ die Minute


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Wurstbrot
Wurstbrot
Benutzeravatar
Beiträge: 88
Wohnort: Der Hohlraum zwischen den Löchern.
 Betreff des Beitrags: Re: Performance
BeitragVerfasst: Di Okt 18, 2011 23:31 
Die meisten basieren auf basieren auf Events, und ner "Store Event ID" Abfrage für die Position desjenigen Events.
(der Kern in Pseudocode:
get X von Event N ;
get Y von Event N;
Store Event ID (X,Y);
If (Stored Event ID != ID von Event N) {Trefferverarbeitung;};
)

Das brauch ich für gut 10 Events.
Brauch ich ein Event mehr, wächst der Aufwand nur durch eine weitere der oberen Abfragen.
Ein Event mehr, heißt die Abfrage einmal öfter -> einfach gezählte Schleife.

Dazu kommen noch ein Paar direkte Abfragen. Die Laufen nach ähnlichem Prizip ab. Nur, dass ich die Inputs für "Store Event ID" aus der X/Y Posi des Helden bestimme.

Gegner werden atm über die Eventlokale Pattern Funktion bewegt. (Also nicht per "Move Event") Außname ist dabei der Hero selbst.

_________________
Meine Rm2k3 Tutorials.
Wenn ihr interessante(!) Ideen für (Rpg Maker 2000(/3)) Skripts habt: Schreibt mir `ne PN, dann helf ich gern skripen oder skripte sie selbst ... :]
mfg Brei


Nach oben
 Profil  
Mit Zitat antworten  
Offline
Technik-Freak
Technik-Freak
Benutzeravatar
Beiträge: 6635
Wohnort: Köln =0
 Betreff des Beitrags: Re: Performance
BeitragVerfasst: Mi Okt 19, 2011 18:31 
Kay, den Sinn der Abfrage verstehe ich zwar nicht so ganz, wird aber schon seine Richtigkeit haben. Nya, damit schließt sich meine Idee für die Abfrage der Position aber aus. Für 10 Events wäre ohnehin der Overhead der Methode, gefühlt größer gewesen~

_________________
Bild

1,24€ die Minute


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de