Ergebnis 1 bis 8 von 8

Thema: Hilfe! KI macht Spiel langsamer [XP]

  1. #1

    Hilfe! KI macht Spiel langsamer [XP]

    Hallo Community,

    ich habe da ein Problem beim XP

    Mein aktuelles Projekt ist ein 2-Spieler Kampfspiel und funktioniert soweit einwandfrei. Ich habe 8 Charaktere drin und die Kämpfe laufen ruckelfrei und wie ich es mir vorstelle.

    Nur jetzt zum problem:

    Beim erstellen von "intelligenter" KI habe ich einen "etwas längeren" Common Event erstellt, der statt des normal Common Event, der nur die Tasten für Spieler 2 abfragt, über viele Abfragen eine logische Aktion wählt (halt eine KI).

    Nur wenn ich nun gegen diese KI antrete, läuft das Spiel fühlbar langsamer... selbst die Animationen gehen manchmal "kaputt", indem sie das Ausblenden des Events früher ausschalten als eingestellt
    So entstehen blöd aussehende Animationen (z.B. die Ani läuft noch aber der Char wird schon wieder eingeblendet...)

    Meine Frage lautet nun: gibt es eine Möglichkeit das Spiel flüssiger laufen zu lassen?

    Ich bin für jede Antwort sehr dankbar!

    PS: Ich habe es schon mit einem "Animationsentruckler" Script, der die Anis voraus läd probiert, doch der bewirkte fast* nichts. Es nicht an den Anis, denn im normalen PvP läuft ja alles, nur mit KI an nicht...

    mfg
    Fox

  2. #2
    Ich kenne nur das Anti-Lag Script, dass bei vielen Evente auf der Map das Spiel flüssiger macht. Ob es auch für dich von Nutzen wäre, weiß ich nicht.

  3. #3
    Zitat Zitat von Deamonic Beitrag anzeigen
    Ich kenne nur das Anti-Lag Script, dass bei vielen Evente auf der Map das Spiel flüssiger macht. Ob es auch für dich von Nutzen wäre, weiß ich nicht.
    Hmm Link? (Also wenn man schon soeine Antwort postet ^^)

  4. #4

  5. #5
    Das Anti-Event-Lag Script optimiert nur insofern, dass es Events, die außerhalb des Bildschirms stehen, nicht updatet. Bringt dir bei CommonEvents also wenig.

    Um dir zu helfen müsste man mehr über den Aufbau des CommonEvents wissen. Prinzipiell kannst du dir aber folgendes merken:
    - Parallele Prozesse sind recht langsam
    - waits innerhalb eines Parallelen Prozesses können hier aber gut Abhilfe schaffen. Die waits können auch zwischendrin sein, was vor allem bei sehr langen Eventcodes sinnvoll ist
    - Bei Cycles sollte man sehr vorsichtig sein. Am besten in jedem Cycle einen Wait-Befehl packen, denn am Ende eines Cycles ist keine Verzögerung eingebaut
    - wird innerhalb eines Events eine Variable oder ein Switch geändert, so müssen alle Events auf der Map und alle CommonEvents überprüft werden. Dies kann auch recht lange dauern, falls man das jeden Frame macht. Darum möglichst keine Parallelen Prozesse setzen die jedes Mal Variablen ändern (und falls doch, dann einen Wait einbauen)

    Sind so ein paar Dinge, die mir spontan einfallen. Wenn es keinen schwerwiegenden Fehler in deinem Script gibt und der CommonEvent einfach zu lang ist, könnte man höchstens noch den Event-Interpreter selbst optimieren.

  6. #6
    Hi und danke für eure Tips und Mühen.

    Ich bin soweit auch auf eine (zumindest derzeeitige) Lösung gestoßen, nämlich wie schon von -KD- erwähnt, das Event mit 1-Frame Waits zu unterteilen (derzeit nur 1 genau in der Mitte).

    Es war zwar ein wenig Arbeit, aber über switches ziehe ich an anderen stellen die Frames wieder ab, um das Spiel trotzdem auf der hohen Geschwindigkeit zu halten.

    Ich weis jetzt leider noch nicht, wie viel noch zu dem Event dazu kommen wird und hoffe, dass es nicht trotzdem irgendwann wieder langsam wird...

    Aber naja, was will man machen, vernünftige KI ist nunmal komplex

    Aber soweit klappts, danke an alle.

    mfg
    Fox

  7. #7
    Zitat Zitat von FoxClaw Beitrag anzeigen
    Hmm Link? (Also wenn man schon soeine Antwort postet ^^)
    Den wollte ich posten, aber ich dachte, den findest du von selber.
    Eli hat es ja schon getan.

  8. #8

    Und nochmal von vorn...

    Hi, ich erneuere diesen Thread nun doch, denn das Problem ist wieder aufgetreten...

    Dieses mal ist es jedoch eindeutiger zu erklären:

    Das Spiel ruft im Kampf andauernd verschiedene Animationen ab.
    Die Zahl der Animationen ist mitlerweile über 200 gestiegen.

    Den "Animations Entruckler" habe ich schon installiert und trotzdem:
    Da alle Animationen den Char über ihre Dauer ausblenden (von imr eingestellt und auch korrekt!) sollten sie eigendlich einen flüssigen Übergang haben, doch passiert es trotzdem bei etwa jeder 10ten Animation, dass sich der Char 1 Frame zu früh wieder einblendet... und das sieht bei größeren Chars ein wenig scheiße aus, entschuldigt den Kraftausdruck.

    Die KI Geschichte hat natürlich trotzdem noch was damit zu tun, aber da sind schon Frames drin und die KI rauszunehmen verringert das "Ruckeln" kaum.

    Wenn irgendwer einen Rat hat, wäre ich ihm/ihr sehr dankbar, da ich mir die Zukunft meines Projektes sonst böse vorstelle... (über 999 Animationen)

    mfg
    Fox

Stichworte

Berechtigungen

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