Ergebnis 1 bis 18 von 18

Thema: [Rm2k/2k3] Statkurven als Wertetemplate

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    [Rm2k/2k3] Statkurven als Wertetemplate

    [Rm2k/2k3] Statkurven als Wertetemplate

    Moin. Ich habe in der letzten Zeit meine Erfahrungen Stats & Co. der älteren Maker mit der Praxis kollidieren lassen, in zwei Projekten. Diese Erfahrungen möchte ich mit euch teilen.

    Projekt1 war mein eigenes. Die bemerkenswerteste Erkenntnis daraus war, dass jeder einzelne Statpunkt, jedes neue Item, jedes Levelup plötzlich spürbar, aber nicht overpowered wird, wenn man die Zahlen richtig einstellt.

    Projekt 2 war Innocentias Im Reich des Himmelsdrachens: Ich hab nur aus Spass an der Freude einen Teil meiner lokale Kopie vollständig rebalanced, in nur wenigen Stunden. Angefangen mit Helden, Items, Monstern und Skills. Dabei habe ich mich an meine vorher festgelegten Statverhältnisse gehalten und keine Stats spontan kreativ gestaltet. Das Ergebnis war sehr vernünftiges angemessen schwieriges Gameplay, ohne Gepfusche an den Werten.

    Was ist "Wertegepfusche"?
    Mal angenommen, ich erstelle neue Gegner und gebe ihnen so grob viel Atk weil Bären stark sind und wenig Magie weil Bären nicht Zaubern und dann starte ich das Spiel, stelle fest sie sind zu stark oder zu schwach und dann ziehe ich an den Reglern rum und verändere so lange bis es einigermaßen passt und sich nicht scheiße spielt. Das empfinde ich als Gepfusche, denn Werte setzen und ändern sich nicht zufällig, man muss also nicht planlos rumändern, man kann vorher wissen, was der richtige Wert ist. Und wenn man anstatt zu kontrollieren und zu wissen was man tut einfach irgendwas tut in der Hoffnung, dass es klappt, dann nenne ich das Pfusch ;-)

    Die Balance zu ruinieren gilt als Kreativität
    Man scheint in der Makerszene noch zu glauben, dass wilde Statzuweisungen etwas mit Gestaltung und Kreativität zu tun hätten. Wie der Bär, dem man nahezu willkürlich mehr Atk gibt, ohne sich vorher Gedanken zu machen um wieviel Prozent der Bär dadurch wohl stärker wird. Wie sollte man auch, denn der Schaden berechnet sich anhand von Atk und Def und so, und da man die Helden auch willkürlich auf irgendwelche Kurven gestellt hat, woher soll man wissen welche Werte sie haben? Dazu kommen Items, die man auch nach Gefühl konfiguriert hat. Und am Ende wundern sich alle, dass der Schaden, der bei Angriffen rauskommt 5 mal so groß ist, oder Angriffe gar keinen Schaden machen.

    Berechnete Stats
    Statuswerte und Statuskurven, die sinnvoll berechnet sind erkennt man ziemlich leicht im Maker. Siehe sehen unfassbar langweilig aus. Man erkennt sie daran, dass Helden von den Stats her alle irgendwie recht gleich aussehen.

    Da hat der starke Krieger 44 Atk während die Heilerin 40 hat. Gefühlt besser wären 66Atk und 22 Atk, ja. das ist mal ein Unterschied. Der Schaden des einen ist doch drei Mal so hoch wie der des anderen, oder?
    Drei Mal ist doch okay, der Krieger ist schließlich viel stärker. Machen wir die Rechnung: (Atk/2)-(Def/4)
    Da 66 viel und 22 wenig sein soll, nehmen wir mal 40 als Durchschnitt ~ angenommen der Feind hat nun 40 Def.
    • Krieger: (66/2)-(40/4) -> 23 Schaden
    • Heilerin: (22/2)-(40/4) ->1 Schaden
    ...oh! Es sind ja keine drei Mal, es sind 23-mal! Vertan um den Faktor 7.x, die Zahlen täuschen uns.

    Jetzt mal angenommen, wir wollten das Verhältnis 1:3 zwischen den beiden...
    • Normal: (40/2)-(40/4) -> 10 Schaden
    • Krieger: (50/2)-(40/4) -> 15 Schaden
    • Heilerin: (30/2)-(40/4) -> 5 Schaden
    Korrekt: eine Erhöhung um 25% der Atk sorgt für 50% mehr Schaden, eine Absenkung um 25% halbiert den Schaden. Das liegt an der Formel und am Verhältnis von Atk zu Abwehr.

    Nun nehmen wir einen weiteren Faktor hinzu: Levelups
    Durch Levelups steigen Stats. Das erhöht nicht nur den Schaden, nein es verändert das Verhältnis von Atk zu Def und auch das Verhältnis zwischen den Schadenswerten der Helden.

    Nun nehmen wir einen weiteren Faktor hinzu: Statkurvensteigung
    Es gibt auch noch als kreativ, nicht nur die Absolutwerte sondern auch noch das Steigungsverhalten unterschiedlich zu machen. Das ist besonders kritisch, da hierbei aus dem Ruder laufende Werte erst später zu tage kommen. Das Verhältnis kann also auf dem Testlevel richtig sein, aber dann hat man das halbe Spiel fertig und stellt dann fest "oh, ein Faktor 5 den ich nicht wollte" und dann kann man das ganze Balancing des Spieles von vorne machen.

    Statkurvenunterschiede sind ein patentes Mittel um Unterschiede zwischen Helden zu konfigurieren.
    Doch was nicht vergessen werden darf: Diese Unterschiede grob Pi mal Daumen "kreativ" hinzupfuschen kann zur Balancekatastrophe führen. Kontrollierte Unterschiede zwischen Charakteren haben die Eigenschaft kontrollierter Stats, sie sehen langweilig aus.

    Kurzanleitung: Wie fang ich an mein Spiel zu "balancen"?
    Dieser Abschnitt ist ein Beispiel wie man es tun kann. Ich sage nicht man muss es so tun, man kann und ich versuche zu vermitteln, was man davon hat. Ich baue hierbei auf meinem Topic "[RM 2k / 2K3 ] Zahlen- und Werteprogress" auf und werde Grundlagen zu Statkurven etc.nicht wiederholen.
    http://www.multimediaxis.de/threads/...-Werteprogress

    Zuerst legt man fest, in welchem Verhältnis Statkurven steigen sollen. Dieses Verhältnis ist der Faktor zwischen dem Wert auf Stufe 1 und dem auf Stufe 99. Dieses Verhältnis ist bei allen Statkurven im ganzen Spiel identisch.
    Bei allen! An dieser Stelle "Kreativität" walten lassen ist grobe Inkompetenz.

    Annahme: Faktor 15. Statkurven für Helden starten dann bei 40 und gehen bis 600.
    Zuerst wird auf Basis der Grundkurven ein 0815 Durchschnittsheld konfiguriert. Veränderungen erfolgen später.

    • Atk: 40 bis 600
    • Def: 40 bis 600
    • Agi: 20 bis 300
    • Int: 40 bis 600
    ( Warum Agi halbiert? Damit Agi und Atk auf Items bei gleicher Menge rechnerisch gleichwertig sind. Siehe Link zum Statprogress )

    Diese Werte sind die Basiswerte für Helden und Monster!

    Lebenspunkte:
    Wie viele Schläge soll ein 0815-Kämpfer vertragen können bis er stirbt? bei 40 Atk und 40Def ist das Resultat 10 Schaden pro Schlag. Mal angenommen, mal soll 10 Schläge abkönnen ergibt sich eine HP-Kurve von 100 bis 1500.

    Mana:
    Ist ein separates Thema.

    Der 0815-Dummy in der Datenbank
    Es ist sinnvoll in der Datenbank einen Helden anzulegen, der einfach nur diese 0815-Stats besitzt und keinerlei Items. In der Datenbank kann man das Startlevel des Helden festlegen. Dabei passen sich die angezeigten Stats dem gewählten Level an. Man kann diesen Eintrag in der Datenbank also benutzen um auszulesen, welche Statpunkte ein 0815 Kämpfer ( auch Monster! ) auf der jeweiligen Stufe haben sollte.

    Wir erstellen jetzt also drei Helden.
    • Den Barbaren, einen typischen Nahkämpfer
    • Den Paladin, einen Nahkämpfer mit zusätzlicher Magie
    • Den Zauberer, er zaubert magische Angriffe


    Zuerst bekommen diese drei allesamt die Grundstats wie oben gegeben.
    Der erste Impuls wäre jetzt die Atk-Werte wild zu verstellen, kann ja nicht angehen, dass der Zauberer mit dem Schwert schlägt wie ein Barbar, doch jetzt heißt es besonnen zu bleiben und erst andere Entscheidungen zu treffen.

    Sollen alle Helden alle Waffen benutzen können? Sollen alle Helden alle Zauber lernen können?
    Mal angenommen der Zauberer könnte die Zweihandaxt und der Barbar den Zauberstab ausrüsten:
    Dann müsste man die Atk verändern, so dass ein Unterschied vorhanden ist.
    Mal angenommen der Zauberer könnte die Fähigkeit "Hammerschlag der Urahnen" erlenen:
    Dann müsste man die Atk verändern, so dass ein Unterschied vorhanden ist.

    Mal angenommen, Helden könnten nur ihre eigenen Waffen benutzen~ dann könnte man die Schadensunterschiede in Attributen verpacken. Stäbe bekommen 50 anstatt 100, Barbarenwaffen bekommen 125 anstatt 100. Das wäre absolut gesehen ein Schadensunterschied, aber es würde die Verhältnisse des Charaktere wahren.

    Ein weiterer Punkt sind zusätzliche Statpunkte: Ein Ring mit sagen wir 10 Atk würde den Schaden um 5 pro Schlag erhöhen. Wenn der Schadensunterschied in den Statkurven liegt, dann bringt dieser Ring dem Zauberer und dem Barbaren je 5 Zusatzschaden. Liegt er im Attribut würde der Ring dem Barbaren absolut gesehen mehr bringen und das Verhältnis der beiden wahren. Liegt er nicht im Attribut würde ein +10Atk Ring den Schaden des Zauberer um den absolut gesehen identischen Wert, aber dadurch prozentual mehr steigern als den des Barbaren.

    Nehmen wir mal an, alle Helden haben ihre eigenen Waffen und Skills. Dann können die Statwerte bleiben wie sie sind, jeder Held hat identische Werte. Die Waffenattribute werden angepasst, so dass der Barbar mehr und der Zauberer weniger Schaden durch den Nahkampfangriff macht.

    Eine Revolution nebenbei:
    Es ist üblich und anscheinend das Nonplusultra Zauberern einen verkrüppelten Nahkampfangriff zu geben.
    Ich habe mich sicherlich in diesem Forum schon mehrfach darüber erbrochen für wie dämlich ich es halte, als allerersten Eintrag des Kampfmenüs einen Scheissangriff zu haben. Der Traditionelle würden sagen "aber das muss scheiße sein, Zauberer machen nunmal keinen starken Waffenangriff"~ das stimmt. Aber es steht jedem frei diesen Waffenangriff optisch so zu machen, dass es aussieht als würde jemand mit seinem Zauberstab schießen. Ein Zauberer wäre nämlich nicht nur schwach im körperlichen Kampf, es würde es wohl auch vermeiden und statt dessen etwas anderes tun. Wenn es darum geht die Helden spielerisch ausgewogener zu machen kann es Sinn haben sich von diesem traditionell dogmatischen Unfug zu lösen, dass jeder Zauberer einen nutzlosen Angriff als Standardangriff haben muss.

    Nun ja, wir haben jetzt drei Helden. Der Paladin ist der erste spielbare Held, er beginnt auf Stufe 5. Das Intro läuft durch und unser Held begegnet einem Zombiegegner.
    Wie soll man nun die Stats einstellen? Der Makerfachmann öffnet die Monsterdatenbank und orakelt wilde Zahlen in die Textfelder. Falsch!

    Kochrezept für Monsterstats:
    Welche Stufe hat der Held wenn er diesem Feind begegnet?
    Stufe 5, es gab noch keine Levelups.
    Nun wird die Heldendatenbank(!) geöffnet. Dort existiert noch immer der "0815-Kämpfer".
    Sein Startlevel wird auf Stufe 5 gestellt. Das Datenbankfenster zeigt uns daraufhin die Atk,Def,Agi und Intwerte eines Stufe 5 Kämpfers. Exakt diese Werte soll nun der Zombie bekommen.
    Doch wartet: Wenn man diese Werte so nimmt, dann geht der Kampf doch unentschieden aus, oder? Schließlich entsprechen die Werte 1:1 dem Helden.

    Korrekt: Und nun kommt das ultimative Werkzeug der Schwierigkeit von Monsterkämpfen ins Spiel.
    Monster-Atk senken? Nein! Helden-Def...nein! Agilität...Nein! Attributresistenzen..? Nein!

    Die Lebenspunkte
    In den Lebenspunkten kann man bestens und einfach und durchschaubarer und risikoloser als irgendwo anders einstellen wie lange ein Kampf andauern soll. Die Lebenspunkte bestimmen, wie viele Schläge das Monster einstecken kann bis es stirbt, daraus ergibt sich wieviel Schaden es dem Helden zufügen kann.

    Egal ob man einen oder vier Helden hat. Die Stats sind identisch, sie entsprechen immer dem 0815-Kämpfer, die Stats der Helden sind dem sehr ähnlich. Der Entwickler weiß also wie viel Schaden von den Helden zu erwarten ist, er hat einen Wunsch, wie lange ein Kampf dauern soll. Nun muss er lediglich den Schaden pro Held mit der Anzahl der Helden mit der Anzahl gewünschter Kampfrunden multiplizieren und es ergibt sich eine Gesamtmenge an Lebenspunkte, die auf die Gesamtgruppe der Gegner zu verteilen ist. Ob man nun 5 kleine Wespen oder einen Oger als Feind hat, dieser HP-Pool ist zu verteilen, dann sind auch Gegnergruppen, unabhängig ihrer Charakteristik, identisch in ihrer ungefähren Kampfdauer.
    ( zum ausgeteilten Schaden komme ich später )

    Der 0815-Kämpfer soll 10 Schläge standhalten, für ein einzelnes Monster nehmen wir jetzt mal drei Schläge an. Dadurch ergibt sich für die Monster-HP eine Kurve von 30 bis 450. Es lohnt sich dafür ein 0815-Monster in der Heldendatenbank zu erstellen. Die "Startlevel 5"-Einstellung verrät uns sofort die Lebenspunkte für ein Stufe 5 Monster.

    Auf diese Weise lassen sich einfach Monsterstats bestimmen. Und ja, in der Grundform klingt das so langweilig, da will man doch Abwechslung! Es wäre ja unkreativ wenn alle Monster gleich wären! Und wieder geht der Mauszeiger zu den Atk-Werten und...NEIN. Ja, misbalanced und scheiße ist eine Abwechslung nach vielen korrekt gebalancten Monstern, aber es geht auch anders!

    Annahme: Wir wollen ein Monster, dass wesentlich langsamer und dafür härter schlägt!
    Agi skaliert linear, 10 = doppelt so schnell wie 5. Das Monster soll also langsamer sein? Okey: Senke den Agi-Wert. Agilität kann man schmerzfreier verändern, das Agilität nicht im Verhältnis zu anderen Stats oder gar den Stats des Feindes und damit Level abhängig verrechnet wird.

    Nun soll das Monster auch härter schlagen, angenommen 150% des normalen Schlagschadens.
    Finger weg vom Atk-Wert! Statt dessen bietet sich ein Skill an, der auf ein Attribut verweist, dass z.B. 150% Schaden verursacht. Auch möglich wäre ein Basic-Effekt auf einem Skill mit einem 100% Attribut. Dabei werden dann als Basic-Effekt die 50% Zusatzschaden eingetragen.

    Nun heißt es Rechnen. Basis-Atk auf der Stufe durch zwei minus Basis-Def auf der Stufe durch vier.
    Tipp: Auf Stufe 1 mit 40Atk zu 40Def ergibt das 10 Schaden. Auf Stufe 99 mit 600 Atk zu 600 Def ergibt das 150 Schaden. Auch dafür kann man eine Statkurve anlegen, als neuen Helden "Schadenswerte". Angenommen man hat öfter Skills mit einem Basic-Effekt von 50% des Schlagschadens: Dann könnte man eine Kurve von 5 bis 75 anlegen und den Basic-Effect für einen Skill der Stufe X aus der Statkurve des Helden "BasicEffect-Konstanten" auf Stufe X auslesen.

    So langsam sollte klar sein woraus es hinauf läuft:
    Man denkt sich keine Zahlen mehr als. Man bestimmt feste Verhältnisse für etwas, zum Beispiel Schadensboni von Spezialangriffen. Dann berechnet man die Statkurve und aus dieser muss man im Folgenden nur noch auslesen, was für den jeweiligen Level angemessen ist.

    Eingehender Schaden gegen Helden
    Wie viel Schaden ein Held pro Kampf ungefähr nimmt ergibt sich in 1 gegen1 Kämpfen aus den HP des Feindes. Genau wie bei mehreren Gegnern der HP-Pool auf diese geteilt wird, kann man bei mehreren Helden den Schadensinput wieder anpassen. Im Regelfall kämpfen Heldengruppen gegen Monstergruppen. Drei Helden gegen drei Monster. Doch was wenn man nun einmal 6 Monster hat? Nun, die HP lassen sich aufteilen, dadurch bleibt die Kampfzeit gleich, aber der Schaden den die Helden erleiden würde sich verdoppeln.
    Hey, Finger weg von den Atk-Werten! Die Lösung ist wie immer, die Koeffizienz zu verstellen. Das kann man über ein Attribut machen, alles unter 100% lässt sich aber sehr leicht in der AttackInfluence der Skills einstellen. Einfach auf 5/10 und BasicEffekt auf 0 und man hat einen Skill, der 50% des normalen Schadens verursacht. So konfiguriert man eine Monstergruppe, die mehr Feinde zu bieten hat, aber nicht unnormal viel Schaden austeilt.

    Ich höre einen Zwischenruf: "Aber, aber, aber... aber das soll doch die Abwechslung sein!"
    Nein. Abwechslung ist wenn sich der eine Kampf so und der andere anders spielt. Wenn der eine Kampf aber supereinfach und der nächste knüppelhart ist, das ist Misbalance. Es geht darum Abwechslung zu schaffen ohne, dass die Schwierigkeit wild schwankt.

    Angriffe gegen alle Helden
    Gibt es in jedem Spiel. Meistens sind es "fickt die Party kaputt"-Angriffe, der eine oder andere erinnert sich an die Soldatengruppen aus "Im Reich des Himmelsdrachens". Bei einer Gruppe von drei Helden ist ein Angriff gegen alle rechnerisch wie ein Dreifachschaden gegen einen.
    Die Lösung ist einfach: Den Schaden des Gruppenangriffs prozentual reduzieren zB auf 30/40% über die AttackInfluence des Skills.
    Ob ein Gegner dann zufällig einzelne Angriffe oder Gruppenangriffe verwendet entscheidet dann nicht mehr ob der Kampf knüppelhart ist oder einfach. Es ist statt dessen die Art wie Heilung benötigt wird, die sich ändert. Einzelne Angriffe, die zufällig dasselbe Ziel treffen oder Gruppenangriffe, die die ganze Gruppe langsam zermartern schaffen trotzdem ausreichend Gefahr und Heilnotwendigkeit, doch das Ziel soll sein: der Spieler soll auf den Schaden in seiner Art und Weise reagieren.
    Nicht Ziel soll sein, dass Heilung je nach Zufall grade mal locker oder übelst happig ist. Außerdem beeinflusst es den Verbrauch an Items, etwas, dass man kontrollieren sollte.

    Rüstung und Waffen
    Natürlich sollen Helden auch neue Rüstungen kaufen und finden können. Und neue Waffen.
    Welche Stats soll zum Beispiel eine neue Waffe haben?`
    Ich gebe euch einen Tipp: Es hängt damit zusammen, auf welcher Stufe die Waffe verfügbar ist und in welchen Verhältnis der Schaden erhöht werden soll. Das Ergebnis ist eine Statkurve!

    Natürlich sind Waffen und Rüstungen Statuswertgewinne, die das schöne vorher bestimmte Verhältnis völlig durcheinander wirbeln, aber auch das kann man beeinflussen.

    Anhand des Beispiels einer Rüstung
    Mal angenommen, es gibt Rüstung und Helm. Beides erhöht die Def. Der Kniff ist nun, die Items den Defwert nicht über den 0815-Wert erhöhen zu lassen, sondern den Wert der Helden-Defkurve so zu senken, dass sich auf Stufe X mit Ausrüstung der Stufe X wieder der 0815-Defwert auf Stufe X ergibt.

    Annahme:
    • 0815-Defkurve: 40 bis 600
    • Helden-Defkurve: 25 bis 375
    • Rüstung-Defkurve: 10 bis 150
    • Helm-Defkurve: 5 bis 75


    Daraus kann man nun Statkurven erstellen. Zwei neuen Helden namens "Rüstung-Def" und "Helm-Def" mit Statkurven mit den gegebenen Start und Endwerten.
    Stelle den "Helm-Def"-Helden auf Stufe 20 und er verrät dir die Menge an Def, die ein Helm der Stufe 20 haben sollte. Analog kann mit Atk und Waffen verfahren werden. Auf diese Weise sind auch Items keine Orakelei mehr.

    Für komplexe Statboni sollte man sich gut überlegen, wieviel Anteil an Statbonus einzelne Items geben.

    Weitere Anwendungen für Statkurven:
    • Gold von Monstern.
    • Goldpreise für Items.
    • Heilmenge von Items.
    • etc.


    Kraftentwicklung der Helden
    Mit Skills und anderen Specials, Statboni, seltenen Items etc. steigt der Schadensoutput eines Helden weiter über die normalen 100%. Das muss sich irgendwann niederschlagen weil die Kämpfe sonst zu einfach werden. Der Regler hierzu sind die Lebenspunkte der Gegner. Nur die Lebenspunkte.
    Besonders Skills sind Koeffizienzen und Boni auf die Grundstats, die im Regelfall wenn man die möglichen Statboni mit Bedacht wählt immer nahe der 0815-Werte sein sollten. Mit den Lebenspunkten lässt sich der Kraftgewinn am besten und nebenwirkungsfreiesten gegensteuern.

    Kreativität und Gestaltung
    Kreativität wird durch kontrollierte Zahlen nicht eingeschränkt und unkontrollierte Zahlen sind keine Anzeichen für Kreativität.
    Wenn das Spiel spürbar langweiliger dadurch wird, dass die Schadenszahlen und die Schwierigkeit zwischen zwei Gegnergruppen nicht zufällig und willkürlich schwanken, dann ist an dem Spielkonzept selber einiges im Argen.
    Wenn Angst besteht, dass die Kämpfe langweilig werden weil Angriffe immer die selbe Schadenszahl machen ( Die Zufallsvarianz gilt ja als sehr abwechslungsreich und kreativ - ehrlich schaltet sie aus...) , dann liegt das daran, dass das kampfsystem und die Kämpfe in sich stinklangweilig sind.
    Das sind Probleme, die sich nicht lösen lassen indem man Zahlenwerte so wählt als hätte ein Dreijähriger blind auf die Nummerntasten gedrückt.

    Zusammenfassung
    Statkurven sind geil. Sie stellen Werte über den Levelfortschritt hinweg da und können verwendet werden um berechnete Werte entnehmen zu können anstatt diese zu orakeln. Mit ein paar einfachen Vorgaben kann der Inhalt eines ganzen Spieles einfach aus ein paar Heldendummies in der Database ausgelesen werden anstatt dass jeder einzelne Kampf, jedes Monster, jedes Item einzelnd hingepfuscht werden muss.
    Wenn man sich mit der Methode erst einmal angefreundet hat, erspart es viel Arbeit. Arbeit beim Einstellen von Werten, Arbeit beim Testen, da die Werte schon einmal grundlegend richtig sind, Arbeit weil umfangreiche Änderungensnotwendigkeit weit weniger wahrscheinlich werden.
    ----------------------------------------------------------------------------------------------------------------------------

    Ich bitte um Feedback. Wenn ihr etwas nicht versteht, ich Fehler gemacht habe etc. immer her damit. Ich werde den Text gerne weiter verbessern um ihn nützlicher zu machen.

    Geändert von Corti (18.10.2013 um 12:53 Uhr)

Berechtigungen

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