Wie man den Erfahrungsgewinn in einem Rollenspiel ausbalanciert

10

Ich entwickle gerade ein RPG-Spiel mit einer klassischen Erfahrungspunkte- und Levelup-Mechanik. Der Spieler tötet Monster, erhält Erfahrungspunkte, steigt auf, wenn sie genug sammeln und stärker werden.

Wie kann ich die Anzahl der Exp-Punkte, die zum Erreichen jedes Levels erforderlich sind, und die Anzahl der Exp, die jedes Monster in jedem Level vergibt, ausgleichen?

Philipp
quelle
Danke fürs Schreiben. Ich finde es großartig, Fragen selbst zu beantworten, um Informationen auszutauschen. Ich denke jedoch, dass die Frage für sich allein stehen sollte. Wenn diese Frage ohne die Antwort gestellt würde, würde sie wahrscheinlich als zu weit gefasst geschlossen. Vielleicht können Sie die Frage ein wenig ändern, um weitere Anforderungen aufzunehmen und das genaue Problem anzugeben, auf das Sie gestoßen sind? Die Frage ist im Moment sehr weit gefasst und die Antwort lautet im Wesentlichen "es hängt davon ab, was Sie wollen".
MichaelHouse

Antworten:

18

Der beste Weg, um zu einer Schlussfolgerung in dieser Hinsicht zu gelangen, besteht - wie bei den meisten Dingen in der Spieleentwicklung - darin, zuerst darüber nachzudenken, wie das Spiel gespielt werden soll , und dann die Mathematik zu erstellen, die dazu führt, dass das Spiel so spielt.

Wie lange soll der Spieler in jedem Level spielen?

In einem auf Geschichten ausgerichteten Einzelspieler-Rollenspiel möchten Sie wahrscheinlich Level-Ups als konstanten Belohnungsstrom beibehalten und den Spieler während des gesamten Spiels alle paar Minuten aufsteigen lassen. Die Rate der Level-Ups bleibt konstant, sodass Ihre Minuten-pro-Level-Funktion eine Konstante ist ( time = c).

Bei einem leistungsorientierteren Spiel wie einem MMORPG möchten Sie normalerweise, dass Level-Ups für Anfänger häufig sind, aber mit zunehmendem Fortschritt des Spielers immer seltener werden. In diesem Fall wäre Ihre Funktion Minuten pro Ebene polynomisch ( time = Level ^ c) oder sogar exponentiell ( time = c ^ Level). Die Level-Nummer in einer Exponentialformel unverändert zu nehmen, ist jedoch normalerweise viel zu extrem. Es kann eine gute Idee sein, es durch eine Konstante zu teilen, um den Anstieg viel langsamer zu machen, während es dennoch exponentiell bleibt ( time = c1 ^ (1 + Level / c2)).

Ich würde Ihnen empfehlen, eine Tabelle zu verwenden, um die Zahlen zu ermitteln. Erstellen Sie eine Tabelle mit einer Spalte mit den Zahlen von 1 bis zu Ihrer erwarteten maximalen Ebene und einer zweiten Spalte mit der Ebenenformel. Auf diese Weise können Sie leicht mit verschiedenen Formeln experimentieren, um Zahlen zu finden, die Ihren Wünschen entsprechen. Vielleicht erzielen Sie bessere Ergebnisse, wenn Sie ein Polynom mit einer Exponentialkomponente kombinieren?

Denken Sie daran , dass Sie sehen , Netto-Kampfzeit hier. Die Spielzeit, in der der Spieler aktiv Erfahrungspunkte sammelt. Es zählt nicht die Zeit, die der Spieler damit verbringt, mit NPCs zu sprechen, ihre Ausrüstung zu vergleichen und andere Aufgaben zu erledigen, die keinen direkten Fortschritt verursachen.

In meinem aktuellen Spiel (einem MMORPG) habe ich mir die Formel ausgedacht seconds(level) = 10 ^ (1 + Level / 20). Die ersten Levels dauern nur Sekunden des tatsächlichen Kampfes (sehr sofortige Befriedigung während der Tutorial-Phase), die Level 20 - 40 dauern Minuten, in den 50er Jahren werden es Stunden pro Level und wenn sie sich dem maximalen Level von 100 nähern, dauert es ganze Wochen, bis sie angezeigt werden Fortschritt.

Wie unterschiedlich sollte die Erfahrungsbelohnung pro Feind sein?

Selbst wenn Ihre Feinde keinen expliziten (oder aussagekräftigen) Level-Status haben, sollten Sie sie so gestalten, dass sie eine ausgewogene Herausforderung für einen bestimmten Charakterlevel darstellen. Aber wie viel mehr Erfahrung sollte ein Feind für eine Belohnung der Stufe 40 empfehlen als eine für eine Belohnung der Stufe 30?

Die Antwort auf diese Frage hängt eng damit zusammen, wie viel mächtiger der Charakter pro Level wird und wie weit Sie ihm erlauben möchten, mit seinem Charakterlevel vor oder hinter den aktuellen Feinden zu sein.

Einige Spielsysteme, wie das von World of Warcraft, machen es ziemlich sinnlos, einen Kampf mit einem Feind zu führen, der nur geringfügig unter oder über dem Level des Spielercharakters liegt. Alles, was nur ein paar Level darüber liegt, wird den Spieler vernichten. Alles, was ein paar Level darunter ist, ist überhaupt keine Herausforderung (und keine Belohnung).

Ein Gegenbeispiel wäre die Disgaea-Serie. In diesem Spiel können Sie leicht Feinde mit mehreren besiegen mal das Niveau Ihrer eigenen Charaktere , wenn Sie es klug spielen.

Je restriktiver Sie in der Level-Klammer sein möchten, die ein fairer Kampf für den Spieler ist, desto mehr müssen Sie sicherstellen, dass der Spieler nicht zurückbleibt oder das Level der Feinde, gegen die er gerade kämpft, übertrifft. Wenn der Spieler hinter die Feinde fällt, wird das Spiel frustrierend schwierig, ohne zu schleifen. Wenn der Spieler den Monstern voraus ist, wird das Spiel zu einfach und langweilig.

Eine gute Möglichkeit, den Spieler in der Level-Klammer zu halten, besteht darin, die Exp-Belohnung pro Level zu erhöhen. Einerseits kann der Spieler leicht aufholen, wenn er etwas unter dem empfohlenen Level liegt. Auf der anderen Seite können sie nicht effizient gegen schwache Gegner aufsteigen, ohne in ein härteres Gebiet vorzudringen.

Eine Polynom-Exp-Kurve ( exp = Level ^ c) funktioniert normalerweise gut. Je größer der Wert von c, desto mehr zwingst du den Spieler in die aktuelle Level-Klammer der Monster, gegen die er kämpft.

Denken Sie daran, dass Feinde, deren Niederlage länger dauert, auch proportional mehr Erfahrung bieten sollten. Ein Kampf, der 20 Sekunden dauert, sollte doppelt so viel Erfahrung bringen wie ein Kampf, der nur 10 Sekunden dauert. Dies erweitert Ihre Formel auf exp = (Level ^ c) * minutes_per_combat.

Die endgültige Exp-per-Level-Formel

Die endgültige Formel kann nun aus den beiden abgeleitet werden. Das experience per levelist das time per level in minutesmit dem multiplizierte experience gained per minute. Nehmen Sie also einfach die beiden Formeln, die Sie in den letzten beiden Abschnitten erstellt haben, und multiplizieren Sie sie. Da ist es: Ihre Erfahrung-pro-Level-Formel.

Mit einer Polynomzeiterhöhung pro Ebene wäre die Formel

exp(level) = (level ^ c1) * (level ^ c2)

wo

  • c1 hängt davon ab, wie lange jedes Level dauern soll
  • c2 hängt davon ab, wie nahe Sie den Spieler an der Stufe der Feinde halten möchten, gegen die er kämpft

Was könnte schiefgehen?

Selbst das beste durchdachte Konzept kann das richtige Testen nicht ersetzen. Sollte sich bei Ihren Spieltests herausstellen, dass die durchschnittlichen Spieler viel schneller oder langsamer als gewünscht vorankommen, ist dies normalerweise ein Zeichen dafür, dass Sie die empfohlenen Stufen Ihrer Feinde überschätzt oder unterschätzt haben und wie lange es dauert, bis der durchschnittliche Spieler sie tötet. Versuchen Sie gemeinsam mit Ihren Spieletestern zu analysieren, welche Feinde auf welcher Charakterebene wie schwer zu töten sind, und passen Sie ihren Exp-Wert oder ihre Statistiken entsprechend an.

Philipp
quelle