Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [RM2K3] Drückt dieser PP. die Performance des Makers ??



TwoFace
04.10.2012, 01:06
15595

Ist ein 5-Minuten-Timer.
Ich musste das so über den PP. lösen, da der RM2K3 nur 2 Timer hat und ich die beide schon anderweitig (gleichzeitig) verwende.
Nun die Frage: Kann es sein, dass dieser PP. die Performance runterdrückt?
Seit ich den eingebaut hab, laggt mein Shooter-Spiel extrem auf schwächeren Rechnern.
Wobei das ja eigentlich nich sein dürfte... das Event fragt ja nich alle paar Sekunden irgendwas ab, sondern steht die meiste Zeit auf "Wait", bis eben die Soundansage kommt wieviel Zeit dem Spieler noch für das Level bleibt.

Kann es trotzdem daran liegen?
Wenn ja: warum?

MrSerji
04.10.2012, 02:08
ICh würd den Timmer anders machen.
Ich würde 2 Parallel Events nehmen und bei dem einem den COunter und beim anderen das "Geschehen" (hier die Ansagen wie lange noch) machen.

mom.. ich zeig dir rasch wie ich das meine...

Edit:
http://www.imagesload.net/img/screen36.png
Ich meine das so^^
Hoffe es ist verständlich was ich meine :D

Kelven
04.10.2012, 08:17
@Penetranz
Ne, eigentlich kann das nicht sein, weil der Prozess durch die langen Waits die meiste Zeit aussetzt. Es sei denn ein weiterer PP als solches reicht schon aus, aber das kann ich mir auch nicht vorstellen.

Itaju
04.10.2012, 12:20
Also auf den ersten Blick sieht das ganze absolut in Ordnung aus. Ich könnte mir vorstellen, das welche deiner Sounds nicht so ganz koscher sind und irgendwie mehr Rechenpower verbrauchen, als sie sollten. Lass mal das PP ohne die Sounds laufen und schau was passiert.

TwoFace
04.10.2012, 12:45
Mir ist eben was aufgefallen: wenn ich ein Item auf der Map einsammel (Touched by Hero) wird - für das Einsammeln - eine Battle-ani abgespielt. Das hängt dann (während dem "Einsammeln") auch ganz kurz mächtig durch. Hab die Battle-ani nicht auf "Wait" gesetzt, wenn ich's verändere ergibt sich auch keine Besserung. Was kann ich da tun? :(

MagicMaker
04.10.2012, 12:51
Kann es sein, dass dieser PP. die Performance runterdrückt?
Eigentlich undenkbar. Die einzige mögliche Verzögerung ist die Ladezeit der Soundfiles,
wenn sie vorher nicht gecacht sind.

Sabaku
04.10.2012, 12:51
Was für eine Battle-Animation ist das? Also was zeigt sie an?

Itaju
04.10.2012, 12:55
öhm, kann es sein, dass du vergessen hat, dass das Event für das Itemaufsammeln in irgend einer Weise danach deaktiviert wird, also das Touched by Hero danach zieeeemlich oft hintereinander (ohne Verzögerung) aktiviert wird.

TwoFace
04.10.2012, 13:00
Also, Beispiel.

Bombe.
Wenn du reintrittst werden alle Timer aktiver Items resettet, eine Battle-ani (Explosion) wird abgespielt. Mit Sound versteht sich. Die Call-Events fragen nur die HP ab. Am Ende wird die Bombe weggeswitcht, ist also nicht mehr da. Eigentlich alles wie's sein muss, aber während man in die Bombe tritt - abhängig davon wieviele andere PP's noch aktiv sind - hängt das Spiel während dem Abspielen der Battle-ani katastrophal durch.

15606

Kelven
04.10.2012, 13:01
Das sollte eigentlich nur bei Touched by Event passieren.

@Penetranz
Sind viele Pictures auf der Map? Bei 50 Pictures hatte ich auch mal das Problem, dass eine BA alles zum Stocken gebracht hat. Überhaupt könnte das häufige Anzeigen von Pictures auch ein Grund sein, weshalb das Spiel laggt. Pictures würde ich am besten so wenig wie möglich aktualisieren.

TwoFace
04.10.2012, 13:06
@Penetranz
Sind viele Pictures auf der Map? Bei 50 Pictures hatte ich auch mal das Problem, dass eine BA alles zum Stocken gebracht hat. Überhaupt könnte das häufige Anzeigen von Pictures auch ein Grund sein, weshalb das Spiel laggt. Pictures würde ich am besten so wenig wie möglich aktualisieren.

Lass überlegen:
- Eins für die Waffe (wechselt, wenn der Spieler mit SHIFT die Waffe wechselt)
- HP Leiste (wechselt, wenn der Spieler angegriffen wird - also dass angezeigt wird, dass er HP verloren hat. Wie oft das passiert liegt am Spieler)
- Eins für die Itemanzeige (wechselt nur, wenn man ein Item einsammelt und danach 5 Sekunden später wenn das Item seine Wirkung verliert)

Angenommen es läge an den Sounds:
Wie kann ich das sicher rausfinden und beheben?

Supermike
04.10.2012, 17:42
Angenommen es läge an den Sounds:
Wie kann ich das sicher rausfinden und beheben?

Disharmony kann lags beim abspielen von Sounds verursachen. Benutzt du jenen Patch?

MrSerji
04.10.2012, 18:16
Was mahct dieser Patch nochmal?

TwoFace
04.10.2012, 22:02
Disharmony kann lags beim abspielen von Sounds verursachen. Benutzt du jenen Patch?

Nope, benutz den nich.

MrSerji
04.10.2012, 23:25
War der nicht nur für den 2k? oO
Oder konnte man den auch für den 2k3 benutzen?

Hast dus mal ausprobiert wie ichs machen würde?

MarcL
05.10.2012, 08:32
Angenommen es läge an den Sounds:
Wie kann ich das sicher rausfinden und beheben?

Hast du schon probiert ein neues Projekt mit einer einzigen, leeren Map zu machen, den Event rüberkopiert und dort die Sounds importiert und getestet?

TwoFace
05.10.2012, 19:11
Funktioniert.

Naja, wenn mir keiner helfen kann wird das Spiel wohl auf schwächeren PC's ne rechte Ruckelorgie werden -.-

MarcL
05.10.2012, 19:23
Hm.... ^^ und wenn du im richtigen Projekt die Map kopierst und auf der kopierten Map den Sound Event löscht, ruckelt es dann noch? xD (falls du es noch nicht getestet haben solltest...)

Auch würde ich nochmal kucken ob du in allen Events wirklich auch die Switches setzt und abfragst die du du möchtest... habe oft die Erfahrung gemacht, dass ich mir 100% sicher war, dass ich keinen Fehler im Code hatte und dann war doch einer drin, weil zwar der Code an sich stimmte, doch z.B. durch kopieren und einfügen und dem anschließenden ändern von Switches und Variablen einer vergessen wurde...

TwoFace
06.10.2012, 17:27
@ MarcL:
Ich werd genau das mal versuchen und schauen, ob sich was ändert.

Ich hätte an die sich mit der Thematik auskennende Allgemeinheit 2 Fragen:

Frage 1: Sind parallele Prozesse "performanceschonender", wenn sie nicht auf der Map als PP laufen, sondern über einen Common Event via Trigger Switch aktiviert oder auf der Map gecallt werden?

Frage 2: Drücken Parallele Prozesse, die genau für eine Sekunde lang aktiv sind, jedoch echt lang sind, die Performance überhaupt? Oder kann man das bei parallelen Prozessen generell ausschließen, wenn man mit 0er-Waits arbeitet?

Bitte antwortet, ihr Maker-Heads ;)

Kelven
06.10.2012, 18:20
Ich glaube in beiden Fällen wirst du nur auf vorsintfluchtlichen Rechnern überhaupt einen Unterschied bemerken. Streng genommen steigt der Rechenaufwand mit der Länge des Codes, aber das sollte sich nur dann bemerkbar machen, wenn die ominösen Pictures zum Einsatz kommen. Oder vielleicht sehr viele Events auf der Map.

TwoFace
06.10.2012, 18:25
Uff, mir fällt grad ein: wenn ich nen Gegner abschieß... wird der Schaden, den der treffer verursacht via Picture für ne halbe Sekunde über seinem Kopf angezeigt und verschwindet dann wieder. Läuft halt über Koordinatenabfrage d.h. das Schadenspicture geht auch mit wenn sich der Zielevent in dieser zeit weiterbewegt. Also kurzum: in den Codes kommen auch Pictures zum Einsatz, klar. Die Anzahl an Events (aktive PP's) pro Map belaufen sich auf sagen wir mal noch knapp unter 20.

Kelven
06.10.2012, 20:04
Wie viele Gegner sind denn gleichzeitig aktiv? Die PPs alleine sollten kein Problem. Mein AKS vom Halloween-Contest lief auch mit ca. 20 auf einem 2,8 Ghz Pentium ohne Probleme.

TwoFace
06.10.2012, 20:12
7-10 Gegner. Also eig weniger als du hattest. Die PP's sind halt lang O.o Aber wenn du sagst, dass die im Normalfall kein Problem sind, glaub ich dir das. Hab auch nochmal kontrolliert, ob alles sauber gescriptet ist: überall 0er-Waits wo sie sein sollten... ruckelt trotzdem manchmal...

Hmm, vielleicht sollt ich das Spiel einfach von verschiedenen Leuten testen lassen, die mir dann am Ende sagen ob's bei ihnen lief oder nicht und mir anschließend die Daten ihres PC's durchgeben. Dann könnte ich zumindest einschränkend sagen was für 'nen PC und was für Hardware man braucht, damit das Spiel ruckelfrei läuft. Auch wenn sowas bei 'nem 2D-Spiel natürlich echt madig ist ... :(

Kelven
06.10.2012, 21:24
Die PPs aus meinem Spiel steuern die ganzen Gegner, also auch deren Bewegung, weshalb die Waits viel länger sind (bei Tempo Slow z. B. 16x0.0). Ich weiß jetzt nicht was bei dir in den PPs abläuft, aber wenn es innen keine Waits gibt, dann könnte ein 0.0 schon ein Problem sein.

TwoFace
06.10.2012, 21:27
Hmm, ich hab halt in PP's mit ends langen Scripten nur jeweils immer am Ende 'n 0.0er-Wait. Sollte ich mittendrin auch welche setzen, wenn sich's anbietet oder würde das nichts ändern? Ansonsten versuch ich mal die Waits auf 0.1 zu erhöhen. Hab Davy Jones gefragt ob das was bringt, er meinte ja.
'n Versuch wärs wert O.o

Davy Jones
06.10.2012, 21:30
Frage 1: Sind parallele Prozesse "performanceschonender", wenn sie nicht auf der Map als PP laufen, sondern über einen Common Event via Trigger Switch aktiviert oder auf der Map gecallt werden?
Parallele Prozesse sind die performancefressendste Event-Form die du dir aussuchen kannst. Nimm Call Event um die Sachen zu rufen, die nicht die ganze Zeit über in nem PP abgefragt werden müssen.

Frage 2: Drücken Parallele Prozesse, die genau für eine Sekunde lang aktiv sind, jedoch echt lang sind, die Performance überhaupt? Oder kann man das bei parallelen Prozessen generell ausschließen, wenn man mit 0er-Waits arbeitet?
PPs brauchen immer waits. Beim wait spielt folgendes eine Rolle:
- Ist dein PP gefüllt mit Koordinatenabfragen, die eine hohe Genauigkeit erfordern?
- Brauchst du den PP für schnelle Berechnungen von HP oder sonstwas? (beim Treffer des Gegners/Mainchars ließe sich das btw auch einfach callen).

Der beste wait für diese Sachen ist der 0.0 wait. Wenn das schon anfängt zu ruckeln, würde ichs mal mit 0.1 probieren und mal schauen ob da auch alles noch so schnell funktioniert wie du es dir vorstellst.

Nebenbei: Es gibt auch noch Erase Event, der einen PP dauerhaft "killt". Zumindest, solange du die Map nicht verlässt und wieder neu betrittst.

Noch ein Tipp: Wenn du PPs zusammenpacken kannst, würde ich das tun. Jeder PP weniger steigert die Performance, der Code der drinsteckt ist grad mal zweitranigig da er nacheinander abgespult wird (Ausnahme: Move Events ohne proceed with movement). Wenn du jetzt die gesamte HP-Abfrage aller Soldaten in einen einzigen PP mit 0.0 wait reinpackst, musst du nur gucken dass der Kram auch schnell genug reagiert, d. h. wenn du den finalen Treffer landest dass der Soldat auch gleich danach verschwindet und nicht erst 3 Sekunden auf der Map rumgurkt und erst dann vom PP ausgeschaltet wird. Wenn das nicht der Fall ist, würde ich den PP aufspalten und dann nochmal schauen, ob auch alles schnell genug vonstatten läuft. Dann haste halt 2 PPs mit HP-Abfragen, ist so ne Optimierungsgeschichte.