Bis jetzt konnte ich zu jedem programmiertechnischen Problem eine Lösung über Suchmaschinen finden. Was mir verwehrt blieb, war ein Denkanstoß für einen
eleganten Weg um verschiedene Formeln, wie zum Beispiel der Schadensberechnung, Skalierung verschiedener Attribute oder den benötigten Erfahrungspunkte für eine Stufe, usw., zu bilden. Da das immens wichtig für das Game Design und die "Innigkeit" der Spielwelt ist, müssen bestimmt allgemeine grobe Vorgaben existieren. Leider finde ich nur Seiten, auf denen man die Formel andere Spiele einsehen kann. Diese sind von Spiel zu Spiel sehr unterschiedlich, sodass man keine
allgemeine Regel erkennen kann.
Am besten ein Beispiel: Momentan sitze ich an einem Text-RPG. Einem winzigen. Über die Konsole kann man aus verschiedenen Klassen eine Spielfigur zusammen
schreiben (Name, Punkte auf Attribute verteilen, ...) und sich über ein pokemon-ähnliches Kampfsystem durch fünf Räume kämpfen, die einen Dungeon darstellen sollen.
Ich möchte das Kampfsystem natürlich nicht ewig so simpel halten, sondern erweitern. Es gibt sehr viele Attribute, beschränken wir uns vorerst auf Vitalität.
Beispiel I: Lebenspunkte -= Schadenswert
Da ich Pokemon schon erwähnt habe, neheme ich mal das Grundsystem. Wir haben verschiedene Attacken. Diese haben einen Schadenswert und dieser wird dem Gegner direkt abgezogen.
Schadenswert der Attacke: 20
Gegnerische Lebenspunkte: 100
Spieler greift an.
Gegner verliert 20 Lebenspunkte.
Natürlich kann man da noch mit Boni und Mali spielen; Wenn ein Wasser-Angriff stattfindet, dann verdoppelt sich der Schaden auf ein Ziel des Feuer-Typs, usw. Der Vorteil ist, dass ich, zumindest im ersten Eindruck, eine bessere Kontrolle über die Spielwelt habe. Damit meine ich die Werte der Figuren allgemein. Ich bestimme, dass ein Endboss 1000 Vitalität hat, der Spieler weit weniger. Der stärkste Schadenswert des Endbosses beträgt 200. Der stärkste Angriff eines Spielers hat den Schadenswert 20. So kann ich sicher gehen, dass der Spieler vorher Erfahrung sammeln muss, um durch Stufenaufstiege gewonnene Punkte in Vitalität zu stecken. Aber das ist mir zu simpel. Zu steif.
Hier kommen die anderen Attribute ins Spiel. Ich versuche den Schadenswert über die Attribute des Spielers zu beeinflussen.
Beispiel II: Lebenspunkte -= (Schadenswert * ( 1 + (Attribut/100) ) )
Dieses Grundsystem zur Schadensberechnung gehört dem französischen MMORPG
DOFUS. Mir gefällt die Einfachheit und doch bietet es die Möglichkeit, mit seinem Attribut zu skalieren, mit Spielraum für Boni und Mali.
Schadenswert der Attacke: 20
Attribut (bei Stufe 1): 0
Attribut (bei Stufe X): 60
Attribut (bei Stufe Y): 150
Attribut (bei Stufe Z): 400
Gegnerische Lebenspunkte: 100
Spieler greift an.
(Schaden = 20 * ( 1 + (
0/100) ) = 20)
Gegner verliert 20 Lebenspunkte.
Spieler greift an.
(Schaden = 20 * ( 1 + (
60/100) ) = 32)
Gegner verliert 32 Lebenspunkte.
Spieler greift an.
(Schaden = 20 * ( 1 + (
150/100) ) = 50)
Gegner verliert 50 Lebenspunkte.
Spieler greift an.
(Schaden = 20 * ( 1 + (
400/100) ) = 100)
Gegner verliert 100 Lebenspunkte.
Man kann also mit dieser oder einer ähnlichen Formel Zahlen abdecken, die sowohl im Kleinen als auch im Großen funktionieren. Wenn ich jetzt aber anfange zu beschränken, komme ich ins Stolpern. Ich möchte nicht, dass ein Spieler 150, geschweige denn den Wert 400 in einem Attribut haben kann, sondern vielleicht maximal nur 99.
Worauf muss ich da dann achten? Wie lege ich angemessene Werte für die Vitalität aller anderen Figuren im Spiel fest? Außerdem möchte ich, dass nicht nur ein Attribut, sondern mehrere Attribute auf einen Angriff, eine Technik oder einen Zauber, Einfluss haben. Bis jetzt habe ich jedes Mal angefangen zurück zu rechnen. Also minimale und maximale Lebenspunkte, Schadenswerte und Attribute festgelegt. Leider ist das sehr aufwendig, da irgendetwas aufeinmal nicht mehr passt und ich die Werte dorthingehend anpassen muss. Stück für Stück.
Die Berechnungen für den Schaden waren lediglich Beispiele. Ich könnte mit den Erfahrungspunkten weitermachen. Also, wie viel Erfahrungspunkte man für den nächsten Stufenaufstieg benötigt. Auch dort habe ich in PHP eine Funktion geschrieben, die in einer Schleife durchläuft und mir Zahlen auswirft, die anfangs sehr gut aussehen, aber hinten heraus mir persönlich zu unschön sind.
Mir geht es um
allgemeine Formelbildung, sowie Wertverteilung und -ermittlung mit strengem Blick auf Balancing. Wie geht ihr die Sache an? Ich bin für jeden Tipp, Anstoß und Hinweis dankbar! Ich habe ebenfalls verschiedene Artikel über das Thema Balancing gelesen, leider waren diese nicht nur sehr theoretisch, sondern haben meine Frage nie zufriedenstellend beantwortet.
Falls sich irgendwo ein Fehler versteckt oder ich die Sache ungeschickt - um nicht dumm zu sagen - angehe, bitte ich um Nachsicht.
Liebe Grüße, T.