Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 34

Thema: Statuswerte im Ausnahmezustand- Verantwortungsvoller Umgang

  1. #1

    Statuswerte im Ausnahmezustand- Verantwortungsvoller Umgang

    Ich möchte mich hier gern mit euch austauschen, was es zu beachten gilt, wenn man - überlicherweise wohl in einem eigens geskripteten KS - im Kampf an Statuswerten herumdoktert.

    Das Grundlegende war dabei für mich, als ich angefangen hab: Die Werte müssen abgespeichert werden. Das heißt, die Statuswerte werden auf Variablen abgelegt, welche sonst nicht weiter verändert werden. Am Ende des Kampfes werden die Statuswerte einfach wieder gleich den gespeicherten Werten gesetzt. So scheint es, man kann alles möglich mit den Werten während des Kampfes machen.

    Probleme entstehen aus meiner Sicht nur dann, wenn sich mehrere Veränderungen gegenseitig beeinflussen.
    Angenommen, man hat einen Wert um 10% erhöht. Dann kommt eine Statusveränderung, welche zB alle Werte halbiert. Wird diese Veränderung wieder aufgehoben, werden die gesicherten Werte abgerufen, dann ist jedoch natürlich auch die Statuserhöhung futsch. Jetzt könnte man sich fragen: "Warum verdoppelt man die Werte nicht einfach wieder?"
    Das ist aus meiner Sicht zu riskant, ich empfinde es als sehr schwer zu überblicken, was zwischendrin noch alles mit dem Status passiert, vor allem prozentuale Veränderungen erscheinen mir da problematisch. Deswegen ist das Abrufen des "Detault"-Status doch das sicherste.



    Okay, das ist meine Vorgehensweise und das sind die Probleme, die ich sehe, ihr macht vielleicht alles ganz anders und seht noch Gefahren, an die ich gar nicht denke und genau dafür solll dieser Thread da sein

  2. #2
    Ich mache das meistens so, dass die Statuswerte unveränderlich sind. Bei mir heißen sie Attribute - Stärke, Widerstand, Geschick usw. Diese Attribute sind eigentlich nur für Boni zuständig - Schaden und Abwehr ergeben sich in erster Linie aus Waffe und Rüstung. Veränderungen erfolgen im Kampf dann durch Zustände wie Kraft oder Schwäche, die auf die Basiswerte draufgepackt oder von ihnen abgezogen werden.

  3. #3
    Du redest davon, wenn man mit dem RPG-Maker oder einer ähnlichen Engine arbeitet, richtig?

  4. #4
    Ich bin mit der Arbeit mit anderen Engines nicht vertraut, aber es würde mich im Zweifelsfall auch interessieren, was man da für Möglichkeiten hat.

  5. #5
    In einem eigenen System würde ich an dem Originalwert gar nicht rumfummeln. Die Art wie im Maker Stats gesteigert werden können ist ganz okey wenn man Statsteigerungen ohne Laufzeiten haben will, ich würde für ein eigenes System allerdings alle Steigerungen und Senkungen als Buffs & Debuffs einbauen. Auf die Art kann man die Wirkung und Laufzeit wesentlich präziser einstellen. Ich würde einen Statwert_Original und einen Statwert_Aktuell für jeden Stat haben wollen. Der Originalwert wird nicht angerührt, der Aktuellwert auf Basis aktueller Stärkungs- Schwächung- und Zustandszauber aktualisiert.

  6. #6
    Je nachdem, wie deine Formel - bzw. deine Kampfmathematik - aussieht, könntest du den State direkt als Modifikator in die Schadensformel aufnehmen. Dadurch müsstest du an den Statuswerten selber gar nichts verändern, du würdest einfach in dem Moment, in dem der Schaden bestimmt wird, abfragen, ob der State existiert, und wenn ja, den verursachten Schaden um 10, 20 oder 30% erhöhen oder verringern.

  7. #7
    Ich persönlich habe für das Statussystem ein Dekorierer-Muster im Einsatz.
    Du hast einen Grundwert für ein Attribut und zu diesem kannst du dann verschiedenen Dekor draufpacken. +15%, -10%, +35, etc etc.
    Der tatsächliche Wert wird dann zusammengerechnet und zwischengespeichert solange kein Dekor dazukommt oder entfernt wird.
    Funktioniert soweit sehr gut, kann ich nur empfehlen.

    Soetwas ist dann aber mit den alten Makern wohl kaum zu realisieren.

  8. #8
    Zitat Zitat von Cornix Beitrag anzeigen
    Ich persönlich habe für das Statussystem ein Dekorierer-Muster im Einsatz.
    Clevere Idee.

    Zitat Zitat von Cornix Beitrag anzeigen
    Soetwas ist dann aber mit den alten Makern wohl kaum zu realisieren.
    Nicht in Form dieser eleganten Lösung. 2k3 = Workaround-Wonderland

  9. #9
    Ich habe für jeden Wert 4 Variablen. Den eigentlichen Wert, dann einen Multiplikatorwert, der duch die Ausrüstung bestimmt wird, einen weiteren für Debuffs/Buffs und schließlich eine Variable für den aktuellen Wert.
    Das sieht dann so aus, dass ich den aktuellen wert dann zuerst auf meinen eigentlichen Wert setze.
    Anschließend multipliziere ich das mit meinem Ausrüstungsmultiplikator und teile das ganze durch 100.
    Dann mache ich das selbe mit dem Buffmultiplikator.
    Das heißt mein Angriffswert berechnet sich wie folgt:
    Aktueller Wert = Eigentlicher Wert * (Ausrüstungsmultiplikator/100)*(De-/buffmultiplikator/100)
    Eigentlicher Wert ist hierbei eine Variable die ich durch mein eigenes Levelsystem erhöhe.
    Der Ausrüstungsmultiplikator ist der Angriffswert, der in der Database steht da ich das normale Ausrüstungsmenü benutze.
    Der Buffmultiplikator kommt im Kampf durch Buffs oder Debuffs zustande.
    Und wenn ich beispielsweise meinen Angriff um 50% buffe und ein Gegner ihn dann um 30% debufft, dann habe ich halt nur +20%.
    Das heißt mehrere Buffs/Debuffs werden nicht miteinander multipliziert, sondern erst addiert und zusammen multipliziert....in diesem Beispiel halt +50%-30%=20%.
    Das ist vielleicht nicht ganz so schön, aber es ist einfach und mMn nach muss bei einem eigenem KS nicht alles zusätzlich kompliziert gemacht werden.

  10. #10
    Zitat Zitat von Quetschi Beitrag anzeigen
    Ich habe für jeden Wert 4 Variablen. Den eigentlichen Wert, dann einen Multiplikatorwert, der duch die Ausrüstung bestimmt wird, einen weiteren für Debuffs/Buffs und schließlich eine Variable für den aktuellen Wert.
    Das sieht dann so aus, dass ich den aktuellen wert dann zuerst auf meinen eigentlichen Wert setze.
    Anschließend multipliziere ich das mit meinem Ausrüstungsmultiplikator und teile das ganze durch 100.
    Dann mache ich das selbe mit dem Buffmultiplikator.
    Das heißt mein Angriffswert berechnet sich wie folgt:
    Aktueller Wert = Eigentlicher Wert * (Ausrüstungsmultiplikator/100)*(De-/buffmultiplikator/100)
    Eigentlicher Wert ist hierbei eine Variable die ich durch mein eigenes Levelsystem erhöhe.
    Der Ausrüstungsmultiplikator ist der Angriffswert, der in der Database steht da ich das normale Ausrüstungsmenü benutze.
    Der Buffmultiplikator kommt im Kampf durch Buffs oder Debuffs zustande.
    Und wenn ich beispielsweise meinen Angriff um 50% buffe und ein Gegner ihn dann um 30% debufft, dann habe ich halt nur +20%.
    Das heißt mehrere Buffs/Debuffs werden nicht miteinander multipliziert, sondern erst addiert und zusammen multipliziert....in diesem Beispiel halt +50%-30%=20%.
    Das ist vielleicht nicht ganz so schön, aber es ist einfach und mMn nach muss bei einem eigenem KS nicht alles zusätzlich kompliziert gemacht werden.
    Deine Mathematik stimmt nicht ganz.
    Wenn du einen Wert X ersteinmal mit 1.5 multiplizierst und dann mit 0.7 (also erst +50% und dann -30%) dann kommt nicht X * 1.2 heraus.
    Wenn du beispielsweise 100 * 1.5 * 0.7 rechnest erhälst du 105, nicht 120. Da die Multiplikation kommutativ ist bringt dir Klammern dabei auch nichts.

    Wenn du eine Formel willst die genau das ausdrückt was du mit dem Text dargestellt hast dann musst du:
    100 * 1.5 - 100 * 0.3 rechnen. Das wäre dann 120.

    Also bei dir (X * Ausrüstungsfaktor / 100) + (X * Bufffaktor / 100)
    Alternativ: X * (Ausrüstungsfaktor + Bufffaktor) / 100
    Beispielrechnung:
    X = 100
    Ausrüstungsfaktor = 150
    Bufffaktor = -30
    (100 * 150 / 100) + (100 * -30 / 100) = 150 - 30 = 120 == X * 1.2 == X * (Ausrüstungsfaktor + Bufffaktor) / 100

  11. #11
    Ich hab mich vielleicht unschön ausgedrückt.^^ Ich meinte ja gerade dass eben NICHT die 105 rauskommen, sondern die 120.
    Mein Buffmultiplikator wird so berechnet, dass wenn ich mich selbst buffe mit +50% dann wird zu dem Buffmultiplikator 50 dazu gerechnet, kommt nun ein Debuff von einem Gegner, wird dann bswp. -30 gerechnet.
    D.h. ich rechne erst den Buffmultiplikator aus und dann wird mein Wert mit diesem Multiplikator verrechnet.
    Das gilt ja auch für den Austrüstungsmultiplikator....Ich habe ja gesagt ich benutze das normale Ausrüstungsmenü vom Maker.
    Wenn ich dort z.B. einen Helden mit 2 Waffen habe und beide Waffen + 20 Angriff geben, habe ich halt +40 Angriff und mein Angriffswert wird dann mit 1,4 multipliziert und nicht 2x mit 1,2.
    Also wird zuerst der Multiplikator errechnet (durch Addition und Subtraktion der Einzelwerte) und dann wird das ganze erst multipliziert und durch 100 dividiert.
    Ich hoffe jetzt ist klar wie ich das meine ._.

  12. #12
    Addition von %-Modifikatoren ist Gang und Gebe in beliebten kommerziellen Spielen. Somit: Gut so.

  13. #13
    Da wir hier sowieso über Statuswerte reden, hat jemand eine Idee wie man "Trefferwahrscheinlichkeit" und "Ausweichchance" ordentlich miteinander verrechnen kann?
    Egal was ich mir überlege, es läuft irgendwie darauf hinaus dass man viel zu wenig trifft ._.

  14. #14
    Kann man da nicht einfach einen Multiplikator mit einbauen? Ich gehe mal davon aus, dass der Wert von dem Attribut Agility abhängig ist. Geht da nicht einfach ein simples
    var ausgewichen_faktor = (Angreifer[Agility] * 100) / (Verteidiger[Agility] * random(1,10))
    if (ausgewichen_faktor >= 15) then ausgewichen = true

    (Syntax außen vorgelassen, Abfrage nach ausgewichen_faktor kann natürlich beliebig verändert werden)

  15. #15
    Eine einfache Variante ist es eine zufällige Zahl zwischen 0 und dem Ausweichwert zu wählen, und eine zufällige Zahl zwischen 0 und dem Trefferwert, und dann zu vergleichen welche von beiden höher ist.
    Man kann das natürlich variieren indem man die kleinste mögliche Zahl erhöhen kann.

    Ganz allgemein verabscheue ich allerdings solche Kampfsysteme welche das Treffen und Ausweichen über einen Zufall regeln. Was ich persönlich in all meinen Spielen verwende ist, dass der Ausweichwert durch den Trefferwert verringert wird, sich aber periodisch wiederherstellt.

  16. #16
    Zitat Zitat von Cornix Beitrag anzeigen
    [...]Ganz allgemein verabscheue ich allerdings solche Kampfsysteme welche das Treffen und Ausweichen über einen Zufall regeln.
    Entweder sollte man Ausweichen quasi unmöglich machen, oder man braucht einen gewissen Zufall. Gerade im Kampfsystem sollte immer ein wenig der Zufall mit reinspielen, natürlich nur in geringem Maß, damit man nicht den kompletten Ausgang beim Start des Kampfes schon kennt.

    Zitat Zitat von Cornix Beitrag anzeigen
    Was ich persönlich in all meinen Spielen verwende ist, dass der Ausweichwert durch den Trefferwert verringert wird, sich aber periodisch wiederherstellt.
    Kannst du das irgendwie näher erklären? Vielleicht habe ich auch nur keine Ahnung was du mit Ausweichwert und Trefferwert meinst...

  17. #17
    Zitat Zitat von Thuin8 Beitrag anzeigen
    Kannst du das irgendwie näher erklären? Vielleicht habe ich auch nur keine Ahnung was du mit Ausweichwert und Trefferwert meinst...
    Nehmen wir eine Beispielsituation zur Hilfe:
    Charakter A hat einen Ausweichwert von 110 / 40.
    Charakter B hat einen Trefferwert von 90.

    Der Kampf beginnt und B attackiert A. Der Ausweichwert von A wird von 110 auf 20 reduziert. A nimmt jedoch keinen Schaden, da A ausweichen konnte.
    A macht seine Aktionen und erhöht seinen Ausweichwert von 20 auf 60.
    B attackiert nocheinmal. Da der Ausweichwert von A kleiner ist als der Trefferwert von B trifft B und verursacht Schaden.
    A macht seine Aktionen und erhöht seinen Ausweichwert von 60 auf 100.
    B attackiert erneut A. Der Ausweichwert von A wird von 100 auf 10 reduziert, wieder nimmt A keinen Schaden.

    Der Vorteil ist, dass man erstens planen kann. Auch wenn man als Spieler diese Werte nicht sehen kann (weil sie nirgendwo gezeigt werden), weis man zumindest, dass man ungefähr eine gewisse Anzahl von Angriffen ausweichen wird.
    Als Angreifer weis man aber auch, dass man mit Sicherheit irgendwann einmal treffen wird. (Solange der Trefferwert größer ist als die Ausweichregeneration des Gegenüber.)
    Außerdem macht es mit so einem System mehr Sinn, wenn mehrere Angreifer das selbe Ziel attackieren, da sie so schneller den Ausweichwert verringern können.

    Dabei kann man variieren indem:
    1). Der ursprüngliche Ausweichwert (zu Beginn des Kampfes) zufällig gewählt wird.
    2). Die Regeneration des Ausweichwertes in einem zufälligen Intervall liegt.
    3). Der Trefferwert in einem zufälligen Intervall liegt.
    4). Charakter A verringert seinen eigenen Ausweichwert durch gewisse Angriffe und kann, zum Beispiel, defensiv kämpfen um seinen Ausweichwert schneller regenerieren zu können.

  18. #18
    @Cornix: Hui, clevere Idee. Gefällt mir in der Theorie wirklich gut. Aber: Haben die Gegner das System auch?

    Zitat Zitat von Quetschi
    Da wir hier sowieso über Statuswerte reden, hat jemand eine Idee wie man "Trefferwahrscheinlichkeit" und "Ausweichchance" ordentlich miteinander verrechnen kann?
    Egal was ich mir überlege, es läuft irgendwie darauf hinaus dass man viel zu wenig trifft ._.
    Es gibt in kommerziellen Spielen z.B. WoW den sogenannten "AttackTable". Mal angenommen, du hast 5% Ausweichchance, 10% Verfehlchance und der Angreifer hat 20% kritische Trefferchance. Beim Angriff wird gewürfelt, 1 bis 100.

    0 bis 5 = Ausweichen
    5 bis 15 = Verfehlen
    15 bis 35 = Kritischer Treffer
    35 bis 100 = Normaler Treffer

    Auf die Weise bleiben 10% verfehlen wirklich 10% verfehlen im Sinne von 10% aller Angriffe verfehlen. Würde man eines nach dem anderen berechnen wäre zB die Kritische Trefferchance dann eine Funktion in Abh. von Kritwert, Verfehlen und Ausweichen, nicht mehr greifbar.

    Die Verfehl- Ausweich- und Kritchance wird in jRPGs gern über das Verhältnis HeldenAgi zu GegnerAgi gemacht, in Westspielen als zB Ausweichwertung in Abh. des Spielerlevels/Ziellevels -> die HeldenAgi.
    Levelabhängige Koeffizienten entsprechen einer Statkurve wie die Stats auch. Ich hab mal irgendwo ein StatsTutorial geschrieben, in dem das vorkommt.
    Bei Agi zu Agi - Vergleichen gibts diverse Arten wie man es genau berechnen kann. zB als 10% Basischance zu verfehlen, modifiziert um das Verhältnis.

    Generell sind solche Chancen etwas, dass ich nur als positiven Ereignisse einbauen würde, d.h. der Spieler kann ausweichen und Monster können verfehlen. Wobei beide Chancen addiert werden zu einer "nicht getroffen"-Chance.
    Spielerseitig verfehlen gilt als "must have" des jRPG, es war immer da in den letzten 25 Jahren, jedes Final Fantasy hat es und nie hat es auch nur ein einziges Mal Spass gemacht zu verfehlen. Frust entsteht immer dann wenn der Spieler Misserfolge erleidet, die er nicht selbst verschuldet hat.

  19. #19
    Da das gesamte System in dem Sinne eines westlichen Rollenspiels erstellt wird (Vergleiche DND-Engines wie Infinity) werden alle Arten von Akteuren gleich behandelt.
    Dieses Vorgehen bietet eine gewisse Sicherheit, es ist einfach fair.
    Wenn der Spieler auf einen hohen Ausweichwert setzt (zum Beispiel mit Hilfe von Ausrüstungsgegenständen oder Magie) dann kann er sich sicher sein auch wirklich wenig getroffen zu werden.
    Steigert der Spieler seinen Trefferwert dann kann er sich sicher sein auch wirklich mehr zu treffen.

    Ich verabscheue *großen* Zufall in Kampfsystemen. Es macht dann keinen Reiz mehr aus darüber nachzudenken oder zu planen, denn am Ende liegt es sowieso nicht in deiner Hand einen Unterschied zu machen.

  20. #20
    Ich denke dass das was Cornix vorgeschlagen hat ganz gut ist, wenn man die Werte wirklich vernünftig einstellt, denn in seinem Beispiel verfehlt auch jeder 2-3 Angriff. Was mir schon wieder zu viel ist.^^

    Zitat Zitat
    Frust entsteht immer dann wenn der Spieler Misserfolge erleidet, die er nicht selbst verschuldet hat.
    Dann wären negative Statuseffekte wie "Blind" oder "Gift" ja auch davon betroffen, trotzdem haben sehr viele Spiele diese Effekte und ich persönlich finde es nicht wirklich störend.
    Und man kann ja auch in dem Sinne nichts dafür, dass der Gegner einen vergiftet oder erblinden lässt.

Berechtigungen

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