Jan Dvorak wskazuje funkcję wykładniczą w komentarzu. Wyjaśnię to tutaj.
Zauważ, że operacje wykładnicze (i wyzwalające) są znacznie droższe obliczeniowo niż nawet operacje pierwiastkowe, które same w sobie są znacznie gorsze niż podstawowa matematyka, więc prawdopodobnie lepiej jest podejść Adama, jeśli będziesz wykonywać te obliczenia wiele razy na sekundę . Jeśli po prostu obliczasz wartości, gdy poziom gracza, zmiana wyposażenia itp., Prędkość nie jest ważna, więc używaj tego, co daje najlepszą krzywą.
Funkcja wykładnicza jest jakaś zasada, B , do jakiejś władzy, x , y=B^x
. Matematycy zwykle używają podstawy e (~ = 2,718), ale nie ma powodu, dla którego nie można użyć 2 lub 10, jeśli wolisz.
y=e^x
wygląda tak:
Zauważ, że lewa strona przesuwa się asympotycznie do 0. Więc możemy obrócić oś x, wykonując y=e^(
-x)
, ale nadal spada ona z 1 do 0 i chcemy, żeby się wzniosła. Możemy więc obrócić go wzdłuż osi y za pomocą y=
-e^(-x)
. Teraz rośnie od -1 do 0. Możemy dodać 1, aby uzyskać y=
1,- e^(-x)
a rosnąco od 0 do 1.
Odtąd wystarczy skalować go w pionie i poziomie. Możemy pomnożyć całość przez pewną wartość, nazwijmy to A , która określa limit asymptotyczny. Następnie możemy pomnożyć x przez wartość szybkości zmiany k , aby dostosować, jak szybko zbliża się do limitu.
To daje nam końcowe równanie y=A*(1 - e^(-k*x))
. Korzystając z wartości k=0.012
i A=0.5
, możemy ustawić limit na 50% i pozwolić zbliżyć się do tego limitu x=400
.
Teraz możesz wprowadzić kilka drobnych poprawek. Jedna poprawka, którą zrobiłem, zmieniała się na A=0.5041
, więc jeśli zaokrąglimy do wartości procentowej z 2 miejscami po przecinku (jak 32,23%), y (399) = 49,99% i y (400) = 50,00%. Począwszy od roku y (347), istnieje kilka miejsc, w których potrzeba dwóch punktów, aby uzyskać zmianę o 0,01%. Ale ten ostatni możliwy punkt wciąż daje (ledwo) namacalną korzyść i sprowadza ją nawet do 50%.
Alternatywnie, możemy dostosować k
wartość, aby uzyskać podobny efekt. At k=0.02305
, wartość zaokrągla do 49,99% o y=399
i 50,00% o y=400
. Jednak to nie ma problemu, że wykres jest bardzo płytkie na końcu - to ma 48 punktów, aby ta ostatnia setną procenta (od y(352)=49.99%
do y(399)=49.99%
celu y(400)=50.00%
), a ostatni 1% crit szansa trwa aż o 230 punktów (od y(170)=49.01%
do y(400)=50.00%
) co prawdopodobnie nieco zmniejsza się w przypadku zwrotów.
Jeśli chcesz, możesz dostosować zarówno A, jak i k, więc zmniejsza się do nieco wyższego limitu w wolniejszym tempie, aby uzyskać coś między rozpadem liniowym a wykładniczym. Robiąc y=0.6*(1-e^(-0.00447*x))
, kończysz z tym:
Zauważ, że krzywa nadal przekracza 50%, ale ponieważ istnieje twardy limit oceny 400, gracz nie może przekroczyć tego punktu (a jeśli uda się go przekroczyć, nadal istnieje twardy limit 60% wartości krytycznej). Za pomocą tego równania możesz użyć 1 miejsca po przecinku i nadal widzieć zyski co 2 do 3 punktów, z ostatnim tyknięciem od y(399)=49.9%
do y(400)=50.0%
.
Matematycznie wcześniejsze równania mogą wydawać się lepsze, ponieważ w rzeczywistości zbliżają się do 50%, ale osobiście uważam, że wzrost o 0,1% na każdą parę punktów jest lepszy niż wzrost o 0,01%. Nawet z A=0.05041
i k=0.012
, potrzeba 102 punktów, aby przejść od y(298)=49.00%
do y(400)=50.00%
. 25% punktów wydanych na 2% twojego krytycznego jest prawdopodobnie zbyt zmniejszone. Równanie 60% zajmuje tylko 20 punktów za ostatni procent (który jest nadal 5 razy wyższy niż 4 punkty potrzebne na pierwszy procent).
Za pomocą tych ostatnich kilku równań po prostu podłączyłem równania do arkusza kalkulacyjnego i ręcznie poprawiałem wartości, aż wyglądały dobrze. Musisz zrobić coś podobnego, jeśli chcesz inną czapkę.