Rundenablauf eines eigenen Kampfsystems, oder besser: Die "Zeit" im Kampf

  • Heyo.


    Konnte mich ehrlich gesagt nicht für einen einzelnen Titel entscheiden, da beides jeweils allein irgendwie... unvollständig klang.



    Ich stehe zurzeit vor einem Problem auf eher theoretischer Basis. Zur Erläuterung: Ich baue mir ein eigenes Kampf-/Jobsystem auf, welches an eines der älteren Final Fantasy-Spiele erinnert, mit einigen Änderungen. Beispielsweise wird es für alle Fähigkeiten einen Cooldown geben, viele Angriffe und Zauber haben Zusatzeffekte wie DoTs, Buffs/Debuffs, etc., sodass man im Endeffekt wirklich darauf achten muss, wann man welche Fähigkeit einsetzt, welche man lieber aufhebt und was gegen welchen Gegner gut ist. Also im Grunde steht schon die ganze Theorie hinter dem System.


    Bis auf einer Sache: Die Zeit im Kampf, Rundenabfolge, Initiative oder wie man es sonst nennen mag. Dies ist auch keine Frage der Programmierung, das ist dabei sogar das kleinste Problem. Es geht mir eher darum, dass vieles auf Buff-Management hinausläuft, was eigentlich gar nicht mal so schlecht ist. Doch wie mit den Timings? Was macht für Cooldowns und für Bufflänge die Zeit aus? Zurzeit habe ich einen "Timer" für alle Kampfteilnehmer. Dieser tickt für jeden gleichzeitig runter, jenachdem, wie hoch der Geschwindigkeitswert ist. Ist der Timer auf 0, ist der jeweilige Charakter am Zug. Das gibt einige Probleme:


    Beispiel 1 "Damage over Time, das kleinste Übel"

    Natürlich kann ich es so machen, dass ein DoT 3 Runden anhalten soll und der CD vom DoT dann auch 3 Runden ist. Man kann jetzt sagen, dass der DoT mit Zug des Anwenders tickt und dann auch Schaden macht. So macht der 3x Schaden und der DoT ist wieder Einsatzbereit. Allerdings Bedarf das dann auch eine Menge an Workarounds durch Zuordnung wer den DoT an welchen Gegner verursacht hat. Würde ich den Tick mit Zug des Opfers durchführen, ist die Zuordnung deutlich einfacher, weil ich einfach nur sagen muss "DoT, 3 Runden, Stärke 100", Sache erledigt. Allerdings würde der DoT deutlich schneller ticken, wenn das Opfer sehr schnell ist - oder andersrum deutlich langsamer, wenn das Opfer langsam ist. Das wirkt sich dann eher negativ auf das Cooldown-Management aus. Die Unterschiede im Schaden selbst sind dabei nicht ganz so hoch (außer der Gegner ist so langsam, dass man die Fähigkeit 4x hätte einsetzen können). Hier wäre es dann vermutlich am einfachsten zu sagen, dass es eine Runde gibt und jeder Charakter pro Runde auch einmal rankommt, wie es in den ganz alten Final Fantasy-Teilen war. Aber dazu später mehr.


    Beispiel 2 "Buffs und Debuffs, mit Slow und Haste exploiten?"

    Haste und Slow waren in Final Fantasy schon immer mächtige Tools, wenn es darum ging, gefährliche Gegner auszuschalten. Es ergibt ja auch Sinn, je schneller die Zeit für einen läuft, desto schneller kann man agieren. Allerdings gibt es hier wieder das Problem wann welcher Buff weiterticken soll. Mein Paladin hat eine Fähigkeit, mit der er die ganze Gruppe während 2 Runden vor einen Teil des Schadens schützt. Lasse ich die Zeiten individuell laufen, hat der Ninja diesen Buff für vielleicht effektiv 1 Runde, wenn er mit Haste beschleunigt ist. Lasse ich die Zeit über den Paladin laufen, bin ich einfach mal so dreist und belege ihn mit Stop - und die ganze Gruppe bekommt solange weniger Schaden, bis der Paladin wieder normal in der Zeit läuft (und zugegeben, der Paladin ist nicht zum Schaden machen da, aber er soll keine passive Aura sein, dass alle weniger Schaden nehmen). Das gleiche mit Debuffs auf Gegnern, einmal schön sämtliche Fähigkeiten auf einen Gegner, dass der mehr Schaden nimmt, Stop, und solange er in diesem Zustand ist, darf auf ihn eingeprügelt werden mit dem Schadensbonus. Läuft der Debuff über die Zeit des Anwenders und ist der nicht unbedingt für den Schaden da, belege ich ihn mit Stop. Das ganze lässt sich jetzt auf alle anderen Arten und Weisen fortführen, deswegen belasse ich es hierbei. Wichtig ist jedenfalls, alle Statuseffekte sollten im gleichen Stile weiterticken, weil es sonst sehr willkürlich und einfach falsch wirkt, wenn ich für jede Sache eine Sonderregelung habe. Auch hier wieder die einfachste Methode "jeder darf pro Runde 1x angreifen"



    Beispiel 3 "Lösung der Probleme 1 und 2, das Problem mit der Dynamik"

    Ich hatte ja nun gesagt, dass es sich die beiden Beispiele vorher mit einem System lösen lässt, welches besagt, dass jeder pro Runde 1x dran ist - was übrigens auch DEUTLICH einfacher zu erstellen ist. Allerdings habe ich große Bedenken, was die Dynamik betrifft. Wenn ich jetzt einfach mal wieder den Paladin nehme - schwere Rüstung und langsam - und den Ninja - sehr geschickt und schnell - warum sollten beide pro Runde gleich oft zum Zug kommen? Würde es sich nicht einfach nur merkwürdig anfühlen, wenn jemand sehr schnelles genau so oft angreift, wie jemand, der aufgrund seiner Ausrüstung verlangsamt ist? Wie würde es mit Haste und Slow aussehen? Doppelt angreifen pro Runde bedeutet automatisch "doppelte Stärke" (begrenzt, da Cooldowns), aber wäre das nicht einfach viel zu übertrieben? Wie sähe es dann aus, wenn man 1 Runde nur 1x dran ist, in der zweiten dann 2x, dann wieder 1x,... ? Weil einfach "an erster Stelle" setzen an jeder Runde ist etwas langweilig. Was man natürlich machen könnte, ist, dass jeder Charakter pro Runde 2x zum Zug kommt und, je nach Geschwindigkeitswert vielleicht auch 3x oder nur 1x (±Haste/Slow) und dann am Ende der Runde werden alle Buffs durchgetickt. Wenn das nämlich von vornherein so darauf abgestimmt ist, ließe sich das ganze auch darauf balancen, auch mit den Cooldowns und alles. Bin mir aber dabei noch nicht ganz sicher, ob das so klappt, wie ich mir denke.


    Ich bin noch weit davon entfernt, irgendwas in der Richtung zu basteln, wollte aber lieber schonmal im Voraus Meinungen dazu hören, zumal das mich schon seit einigen Wochen stört.


    Und in diesem Sinne: Immer her mit euren Meinungen, Fragen, Anregungen.

  • Da in meinem Fall ein Active Time Battle-System den Rest des Systems kaputt machen würde. Ein großer Teil basiert auf Kombos, mit Angriff A kann man Angriff B oder C ausführen, mit Angriff B Angriff D oder Angriff E. Jeder Job hat eine unterschiedliche Anzahl an Angriffen und Kombos zur Verfügung, sodass es nicht nur auf "Spam Command 'Attack'" hinausläuft, die Kombos vom Paladin sind zum Beispiel 3 Angriffe lang und die Möglichkeit, eine zusätzliche Fähigkeit (Schutz, Heilung oder einen "schwachen" Standardangriff) einzusetzen. Der Red Mage hingegen stützt mit seinen physischen Angriffen seine Magie, hat dabei keine festgelegten Kombos, kann aber bis zu 5 Angriffe/Zauber setzen. Das bedeutet dann auf der anderen Seite dass man einige Zeit braucht, um die Kombos auszuwählen, Mechaniken zu erfüllen und alles.


    Setzt man das jetzt in ein ATB, setzt man den Spieler entweder unter Druck, weil er unerfahren ist oder er einen neuen Job ausprobiert oder man langweilt ihn, weil er bereits alle Kombos und Rotations drauf hat. Man könnte es natürlich auch etwas langsam machen und upspeeden, wenn niemand dran ist oder schlicht die Zeit "stoppen", wenn jemand einen Zug ausführt. Beides aber stört den Zeitfluss, weil man dann einfach kein Gefühl hat, wielange was noch läuft oder man dann "gerne noch 10 Sekunden wartet", damit man einfach den DoT wieder auf den Gegner setzen kann.


    Das hat mich schon im Vornherein vom ATB abgewandt.


    (Namen der Jobs werden eventuell noch geändert, klingt sonst zu sehr von FF abgeguckt)