Ergebnis 1 bis 6 von 6

Thema: Schadensformel umstellen

  1. #1

    Schadensformel umstellen

    Hallöle,

    ich bin gerade dabei meine Schadensformel unzustellen und dachte, ich stelle die Optionen, die ich dafür sehe, mal zur Debatte.
    Hintergrund ist, dass ich bisher noch den Level in der Formel drin hatte und den jetzt rausschmeiße. Gott weiß, warum ich das gemacht hab, ich glaube ich hab mal irgendwo aufgeschnappt, dass in einem Final Fantasy der Level für den Schaden auch eine rollte spielt und das erschien mir plausibel.
    Das hat bei mir aber in erster Linie zu einem unerwünschten Effekt geführt: Man wird mit steigendem Level sehr viel schneller stärker.
    Das kann zB dazu führen, dass man bei einem Boss 2 Level höher als von mir angedacht ist und sich schon OP fühlt.

    Meine Formel sah bisher im Kern so aus:
    (Angriff Angreifer * 1,5 – Abwehr Verteidiger) * (Level/2)

    Dazu kommen natürlich noch verschiedenste Konditionen für Elemente etc. Aber das interessiert hier jetzt nicht.
    Der Schaden bekommt also sozusagen alle 2 Level einen Multiplikator dazu.

    Bsp:
    Ang Angreifer: 20
    Abw Verteidiger: 20
    Level beide: 20

    Schaden: (20 * 1,5 – 20) * (20/2) = 100

    Steigern wir nur den Level des Angreifers um 10 auf 30, beträgt der Schaden bereits 150.

    Man kann auch das "Ang * 1,5" in der Formel hinterfragen, weil bekanntlich damit der Schaden schnell mal auf 0 sinkt, wenn der Gegner mehr als 1,5 mal mehr Verteidigung hat. Auf meiner Suche nach Formeln bin ich über diese hier gestolpert: https://rpg.fandom.com/wiki/Damage_Formula

    Ich muss zugegen, es fällt mir ein wenig schwer, nachzuvollziehen oder in eigenen Worten auszudrücken, wie diese Formel genau funktioniert, aber zumindest fällt damit der Schaden nicht auf 0. Zur Not kann ich ja immer noch zu Ang*1,5 zurückkehren (so machen es die alten Maker ja auch).

    Das größere Problem, wenn ich mein bisheriges Balancing nicht komplett aufgeben will, ist jedoch die Frage, was den "Levelmultiplikator" ersetzt. Ich hab ausprobiert, den auf einen fixen Wert von zB 8 zu setzen. Das ist so ziemlich in der Mitte der Levelspanne, welche man im Verlauf des Spiels bisher durchläuft (Lvl 8- Lvl 25/2). Logischer Weise ist damit der Schaden am Anfang zu hoch und am Ende zu niedrig.
    Ich könnte den Multiplikator auf Anfang oder Ende auslegen, müsste dann aber natürlich jeweils das eine oder andere rebalancen, wovor ich mich aber nicht scheue.
    Aber Ich bin noch unschlüssig, wie ich damit verfahre.

    Ich hab hier schon viele tolle Anregungen bekommen und bin mir sicher, dass auch dieses mal einiges dabei sein wird! Also raus aus der Versenkung.

  2. #2
    Die Frage ist hier, was willst du selbst? Soll der Schaden nicht unter 1 sinken? Soll der Schaden Linear zu den Werten Skalieren oder Exponentiel? Soll es eine Grenze geben? Usw.
    Eine Formel wie sie in den FF spielen ist kann meiner Meinung nach auch zu problemen führen, da man als casual spieler nur weis mehr Angriff=mehr Schaden aber im allgemeinen ohne eine Analyse oder das genaue Wissen über die Formel nicht wirklich durchblickt. Ein Vorteil einer einfachen linearen Formel kann dann durchaus sein, dass der Spieler und der Entwickler natürlich auch das ganze im Kopf besser berechnen kann.
    Deine Formel: (Angriff Angreifer * 1,5 – Abwehr Verteidiger) * (Level/2) führt im Allgemeinen zu einem exponentiellen anstieg, im einzel Fall jedoch zu einem linearen. Sie ist simpel genug um zu verstehen, wie Abwehr sich auf den Angriff auswirkt. (Sicher hast du da auch noch konditionen eingebaut, wenn der Verteidigungswert so hoch ist dass anstatt einem Negativen Wert 0 oder gar 1 rauskommt.

    attack*(100/(100+defense))
    Diese Formel sichert dadurch dass der Defence Wert im Quotienten eine Rolle spielt, das der Schaden niemals auf 0 Fällt sondern sich nur annähert. Anders ausgedrückt wenn du dir dass ganze als bruch vorstellst würde es folgender Logik folgen: 1/(1+X) Wenn X gleich Null ist heist das, dass der gewünschte Faktor = 1 ist der Schadenswert kann deshalb niemals höher werden als der Attackwert jedoch auch niemals 0 erreichen. Um error zu vermeiden darf man nicht 1/X wählen, es sei denn X ist immer größer oder gleich 1.
    Den Level in die Schadensformel mit einzubeziehen ist inerresant und erlaubt es dem Spieler weniger im Früheren Verlauf des Spiels grinden zu müssen als später, wenn man mehr Plätze zum Grinden hat und ein bischen mit dem Spiel warm geworden ist. Führt jedoch zu verwirrung wenn der Lvl 20 Char mit 50 Attack mehr schaden macht als der Lvl 5 Char mit 100 Attack.

    Ähnlich könnte man auch Simpel eine solche Formel Wählen: Attack*(Attack-Defence)= Schaden womit man die Chance auf 0 Schaden hat. Ist jedoch eine Ziemlich bescheuerte Formel.
    Wenn du einen Limit für dein Schaden einbauen willst könntest du mal Beschränktes Wachstum googeln.

    Eine andere Frage: Warum jetzt die Schadensformel umstellen wo du schon so tief in der Entwicklung bist?

  3. #3
    Noch ein paar Infos:
    Natürlich wird mein Schaden im Moment auf 1 gesetzt, wenn er 0 unterschreiten sollte. Außerdem auf 9999, wenn er das überschreitet. Allerdings wird man evtl irgendwann eine Mod erlernen können, um das zeitweise aufzuheben. ^^

    Ja, ich denke, dass das Problem momentan eher ist, dass das Wachstum exponentiell ist. Das führt eben dazu, dass die Levelspanne, in welcher ein Gegner die richtige Schwierigkeit hat, eher klein ist. Es gibt also vielleicht 2-3 Level wo er noch anspruchsvoll ist, darunter ist er unmöglich und darüber zu leicht.

    Der Einfachheit halber spreche ich jetzt mal von Formel 1 und 2:
    Formel 1: (Angriff Angreifer * 1,5 – Abwehr Verteidiger)
    Formel 2: attack*(100/(100+defense))

    Ich überlege gerade, doch eher bei Formel 1 zu bleiben, denn was ich an Formel 2 stört, ist dass der Einfluss des Verteidigungswert furchtbar gering ist. Offenbar scheint das das Schicksal dieses Werts zu sein, aber das ist mir schon ein bisschen zu heftig.

    Davon abgesehen würde ich dann wie gesagt einen fixen Levelwert als Multiplikator benutzen und die Statuswerte entsprechend anpassen.

  4. #4
    Ich hab hier ein paar alte Threads gefunden, auf die ich neulich gestoßen bin, weil ich mich gerade selbst viel mit Wertebalancing beschäftige. Allerdings setzen diese Threads voraus, dass du bei der Standardformel bleibst. Es geht hauptsächlich um das ausgewogene Einstellen der Stat-Parameter, d.h. das Balancing wird nicht über die Schadensformel modifiziert, sondern über die Troop- und Actor-Parameter in der Database (zum Verlauf s. Statkurven). Sofern du also keine geeignete Formel für deinen Ansatz findest, sind diese Threads möglicherweise eine brauchbare Alternative für dich.

    [Rm2k/2k3] Statkurven als Wertetemplate

    [RM 2k / 2K3 ] Zahlen- und Werteprogress

  5. #5
    Danke, Ken, den 1. Thread kannte ich glaube ich noch nicht.

    Ich glaube, ich weiß jetzt grob wie ichs mache. Ich versuchs mal mit Formel 2 und mit einem fixen (ehemals Level-)Multiplikator von 5. Damit komme ich am Anfang des Spiels ungefähr auf den gleichen Schaden wie vorher, so dass ich an den HP der Gegner nicht viel machen muss. Um den Unterschied an späterer Stelle im Spiel auszugleichen, gebe ich den Statuswerten ne andere Kurve, der Angriffswert müsste dann glaub ich ca. doppelt so hoch sein. Ein bisschen Arbeit wird das natürlich trotzdem.

    Noch eine Bitte: Könnte mal jemand, der mathematisch begabt ist, versuchen den Einfluss des Verteidigungswerts bei Formel 2 in Zahlen auszudrücken?

    Bei Formel 1 ist das ja ziemlich klar: 1,5 : 1

    Bei Formel 2 fällt es mir irgendwie schwer, mir das vorzustellen.

  6. #6
    Das es schwer ist sich vorzustellen kann ich verstehen. Aber das kann man auch durch einfaches einsetzen lösen:
    Da wir bei formel 2: A*(100/[100+D]) haben bestimmt eigentlich 100/[100+D] den Faktor. Bei einem D wert von eins wäre das Faktor 100/101 = 0,99 also 1% des Angriffswerts wird Abgezogen um den Schadenswert darzustellen. Beim Wert 100 wäre das 100/200 = 1/2=0,5 das heißt 50% des Angrifswert kommt nurnoch als schaden durch.
    Bei einem wert von D=999 wäre das 100/1099=0,09 also würden nurnoch 9% des Angriffswertes als Schaden durchkommen.
    Angehängt hab ich dir eine Grafische Darstellung damit du noch andere Werte anschauen kannst: http://prntscr.com/p3h6vk
    Einfach suchen nach: Funktionen Grafisch darstellen.

Berechtigungen

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