Jan Dvorak weist in einem Kommentar auf die Exponentialfunktion hin. Ich erkläre es hier.
Beachten Sie, dass Exponential- (und Trigger-) Operationen erheblich rechenintensiver sind als Quadratwurzeloperationen, die selbst weitaus schlechter sind als die Grundrechenarten. Wenn Sie diese Berechnungen also mehrmals pro Sekunde ausführen, sind Sie wahrscheinlich besser mit Adams Ansatz vertraut . Wenn Sie nur die Werte berechnen, wenn der Spieler das Level erreicht, die Ausrüstung ändert usw., ist die Geschwindigkeit nicht wichtig. Verwenden Sie also, was Ihnen die beste Kurve gibt.
Eine Exponentialfunktion ist einige Base, B , bis zu einem gewissen Leistung, x , y=B^x
. Mathematiker verwenden gewöhnlich eine Basis von e (~ = 2.718), aber es gibt keinen Grund, warum Sie 2 oder 10 nicht verwenden können, wenn Sie es vorziehen.
y=e^x
sieht aus wie das:
Beachten Sie die linke Seite bewegt asympotically auf 0 , so dass wir die x-Achse , indem Sie drehen können y=e^(
-x)
, aber es ist absteigend nach wie vor von 1 auf 0 , und wir wollen es aufzusteigen. Also können wir es mit y=
- um die y-Achse drehen e^(-x)
. Jetzt steigt es von -1 nach 0 auf. Wir können 1 addieren, um y=
1 zu erhalten, - e^(-x)
und es steigt von 0 nach 1 auf.
Von hier aus geht es nur noch darum, es vertikal und horizontal zu skalieren. Wir können das Ganze mit einem Wert multiplizieren, nennen wir es A , der die asymptotische Grenze setzt. Dann können wir x mit einem Wert für die Änderungsrate k multiplizieren , um anzupassen, wie schnell das Limit erreicht wird.
Dies gibt uns eine endgültige Gleichung von y=A*(1 - e^(-k*x))
. Mit den Werten von k=0.012
und A=0.5
können wir den Grenzwert auf 50% setzen und ihn ungefähr an diesen Grenzwert annähern x=400
.
Jetzt können Sie einige Änderungen daran vornehmen. Eine von mir vorgenommene A=0.5041
Optimierung wurde auf geändert. Wenn wir also auf einen Prozentsatz mit 2 Dezimalstellen (wie 32,23%) runden, ist y (399) = 49,99% und y (400) = 50,00%. Ab y (347) gibt es mehrere Stellen, an denen zwei Punkte erforderlich sind, um eine Änderung von 0,01% zu erzielen. Aber dieser letztmögliche Punkt bringt immer noch einen (kaum) greifbaren Vorteil und bringt ihn auf gerade 50%.
Alternativ könnten wir den k
Wert optimieren , um einen ähnlichen Effekt zu erzielen. Auf k=0.02305
die Wert Runden zu 49,99% auf y=399
50,00% an y=400
. Dies hat jedoch das Problem, dass die Grafik am Ende sehr flach ist - es werden 48 Punkte benötigt, um das letzte Hundertstel Prozent (von y(352)=49.99%
bis y(399)=49.99%
bis y(400)=50.00%
) zu erhalten, und die letzte 1% -kritische Chance benötigt satte 230 Punkte (von y(170)=49.01%
bis y(400)=50.00%
). Das ist wahrscheinlich ein bisschen zu nachlassend für die Rendite.
Wenn Sie möchten, können Sie sowohl A als auch k so einstellen, dass sie langsamer auf einen etwas höheren Grenzwert abfallen, um einen Wert zwischen linearem und exponentiellem Abfall zu erhalten. Dabei erhalten Sie Folgendes y=0.6*(1-e^(-0.00447*x))
:
Beachten Sie, dass die Kurve nach 50% fortgesetzt wird, aber da es ein hartes Limit von 400 gibt, kann der Spieler diesen Punkt nicht überschreiten (und wenn er es schafft, gibt es immer noch ein hartes Limit von 60% krit.). Mit dieser Gleichung können Sie 1 Dezimalstelle verwenden und trotzdem alle 2 bis 3 Punkte Gewinne sehen, mit einem abschließenden Häkchen von y(399)=49.9%
bis y(400)=50.0%
.
Mathematisch gesehen scheinen die früheren Gleichungen vielleicht besser zu sein, da sie sich tatsächlich 50% nähern, aber ich persönlich denke, dass sich Gewinne von 0,1% alle paar Punkte besser anfühlen als Gewinne von 0,01%. Sogar mit A=0.05041
und k=0.012
sind 102 Punkte nötig, um von y(298)=49.00%
zu zu gelangen y(400)=50.00%
. 25% Ihrer Punkteausgaben für 2% Ihrer Kritikpunkte sind wahrscheinlich zu gering. Die 60% -Gleichung nimmt nur 20 Punkte für das letzte Prozent an (was immer noch 5-mal höher ist als die 4 Punkte, die für das erste Prozent benötigt werden).
Mit diesen letzten Gleichungen habe ich die Gleichungen einfach in eine Tabelle eingefügt und die Werte manuell angepasst, bis sie gut ausgesehen haben. Sie müssten etwas Ähnliches tun, wenn Sie eine andere Kappe wollten.