How to make good combinations of xp tables and xp rewards?

Is there a known step by step (automatable) to define mean xp reward formula/table to bases specific challenges rewards (generically, not only defeating enemies) and total xp table that set character level progression speed? Sounds complicated.

For example, if a character defeats about

$$\LevelUpEnemies(Lv) ≈ 120/max(1,6−Lv)!\ +\ 60∗clamp(0,Lv−5,3)\$$

enemies like self then character grows up, initial level is 1 and final level is 10 (like WCIII), characters has about Hp≈(8+2*Lv)², Atk≈(4+Lv)² and Def≈4+Lv, no more data and a attack damage is

$$\Damage ≈ Attack_{Attacker}*\sqrt{ Attack_{Attacker} }/( \sqrt{ Attack_{Attacker} }+Defense_{Target} )\$$.

How can I calculate the (fair) rewards base formula per level and the total xp table to do this?

Notes:

• How can I calculate ==> the step by step text teaching or the algorithm
• Fair ==> preferably proportional to the difficulty (if not, nearly, well-reasoned)

In addition, I see big xp tables with a lot of rounded digits with no beat missing, looks closely handwritten (just not). Is there a method or algorithm that besides builds the data also (perhaps) rounds to maximum digits with no kink?

• As far as I can tell, every developer balances these their own way. You may want to look into sigmoid functions and radical functions. Sep 29, 2020 at 14:04
• I know but some are crap. I want to see reason. In fact I'm answering my question and I want to see more answers. We can see a excelent suggestion. Sep 29, 2020 at 14:13
• Does this answer your question? How to balance experience gain in an RPG Sep 29, 2020 at 14:56
• It might not sound like it, but "some are crap" is actually a great inroad to start making progress on this problem. Try editing your question to describe what specific traits or outcomes you've seen in "crappy" XP progressions. Be precise about what made them bad, from your perspective. Then you can ask for a balancing technique to avoid those specific bad outcomes. Sep 29, 2020 at 15:28
• Prilip, it is good and answers a lot (rhythm) but not all (fair reward accurately, rounding and helper algorithm for constroys). DMGregory, I didn't remember immediately examples of cases (unless mistaken, RO went) but I think the (hardness/reward) is ridiculous when it keep you killing weak enemies. I'll think about details for add. Edit: I don't speak english, sorry about that. Sep 29, 2020 at 15:54

Set Xp Rewards

The worst challenge is the fair average reward definition. There are several ways to gain experience: defeat enemies, accomplish mission, consume items, bonus and so on. It's generally effort with some difficulty, expended time and other things that should be measured using a criterion. How can we simplify it?

We can think about a lot of equivalences between xp farming ways as if all of this were as one. About the question example, it sets a LevelUpEnemies(Lv) to focus on. This suggests that killed enemy xp may be the unification. Indeed mostly all of it involves defeating a number (and quality) of enemies for xp to up. Even missions and other ways usually come down to that otherwise at least have equivalences with it. In this case the calculated mean xp rewards formula that bases all possible game xp sources can be summed up as the mean/expected balanced level enemy xp (LevelUpEnemies(Lv) of it to level up) and don't have more experience sources or in the other sources we compare with enemy xp and adapt it with the agreed equivalences.

For example, a quest can be as difficult as kill five wolfs (maybe it's the quest... or not) and long as hunt ten wolfs (maybe the quest is travel and hunt it... or not). Why not rewards it with the "five-ten" wolfs xp? In this case, we need to define reward influences of hardness and delay but we can assume that all comes down to a number of enemies and has some equivalence with expected time.

If we set

• generally 66.7% xp is from defeat result (x enemies defeated),
• generally 33.3% xp is from full defeat procedure time (y defeat time) and
• in wolfs case DefeatWolf: XpReward = 30xp

then XpReward = 20*Wolf_Kills + 10*Wolf_Finds such that

• generally the finds is total time to find (can include more actions time),
• generally the kills is number of defeated enemies and
• hunt a single wolf (one find time and one kill) makes Wolf_Finds = Wolf_Kills = 1.

The example quest xp reward is 20*Wolf_Kills + 10*Wolf_Finds = 20*5 + 10*10 = 200xp (like hunt ≈6.67 wolfs). If leveled xp reward base formula on wolf level is 25xp then kill wolf and finish quest is set up to gives 120% and 800% of expected xp reward.

In short, the point is made the challenge rewards formula and number of rewards table/formula be adapted and represented by defeating enemies xp reward formula and combine with the table/formula "number of enemies to level up" to solve it all. But... how we define defeating xp reward (fair) base formula?

The Relative Character Power

Of course we expect duplicate reward for duplicate effort and risk after all. Fair enemies reward requires some relative power notions (when some character becomes 2x, 3x, 10x stronger than was or be stronger than other). Let's use proportion with total damage done until fall as power criterion.

If double damage done (with no other data impact), double power. Triple damage done, triple power. Yes, obviously it is proportional. But if double vitality... hm... it doubles suffered hits until the end. Double combat time (yes, time that character can attack), double hits done, double damage, double power. Yeah, health proportion. If halves damage? Double suffered hits, double time... double power. Inverse proportion.

About the example, power 𝛼 Hp (obviously), but Atk and Def are harder. If we calculate it (I used Maplesoft Maple 15)

we see

• Atk x 2 ⟹ Dmg x 2.343 every levels (3),
• Atk x 3 ⟹ Dmg x 3.804 every levels (5),
• Atk x 4 ⟹ Dmg x 5.333 every levels (7),
• Def x 2 ⟹ (1/Dmg) x 1.5 every levels (10),
• Def x 3 ⟹ (1/Dmg) x 2.0 every levels (13) and
• Def x 4 ⟹ (1/Dmg) x 2.5 every levels (16).

A lot of (X) x (fx) ⟹ (y=Y(x)) x (fy).
How do we deal with this?
What proportion do we set?
Generally...
How to make T( fx*X ) = fy*T(X)?

A way to do it is T(X) = X^log_fx(fy).

$$\T(fx*X)=(fx*X)^{\log_{fx}fy}=fy*X^{\log_{fx}fy}=fy*T(X)\$$.

Then we have to choose power 𝛼 Atk^1.23 or power 𝛼 Atk^1.22 or power 𝛼 Atk^1.21 and power 𝛼 Def^0.58 or power 𝛼 Def^0.63 or power 𝛼 Def^0.66.

But... why fx = 2, 3, 4... criterion?
Why not fx = 1/2, 1/3, 1/4...? Or... fx⟶1?

$$\Taylor:\ \ Y(X+ΔX)=Y(X)+\frac{d}{dX}Y(X)*ΔX+O(ΔX^2)\$$
$$\Defin:\ \ ΔX=(fx-1)*X\$$
$$\Y(fx*X)=Y(X)+\frac{d}{dX}Y(X)*(fx-1)*X+O((fx-1)^2)\$$

$$\Defin:\ \ Y(fx*X)=fy*Y(X)\$$
$$\fy=1+\frac{d}{dX}Y(X)*(fx-1)*\frac{X}{Y(X)}+O((fx-1)^2)\$$
$$\\lim\limits_{fx\to1}{log_{fx}fy}=\frac{X}{Y(X)}*\frac{d}{dX}Y(X)\$$

So we can use pontual formula power 𝛼 x^( x * Y'(x) / Y(x) ).

Maybe it works even in varying amounts across the levels (but I don't know). If X=Atk & Y=Dmg then power 𝛼 Atk^1.25. If X=Def & Y=1/Dmg then power 𝛼 Def^0.5. Finally, we can compare characters power with the proportion power 𝛼 Hp * Atk^1.25 * Def^0.5 in the example context and we can call the proportion relative power (RelativePower = Hp * Atk^1.25 * Def^0.5).

Power and Xp

It's expected that enemy xp reward is proportional to the power (yeah, 2x difficulty is 2x reward), but

1. enemies can give more/less xp and balanced more/less other things (quality items for example) therefore expected value is only a base,
2. the values magnitudes can be greater/lesser than the preferred by design or technical details (means that the final formula can be one of many),
3. the amount can be willfully unbalanced as part of challenge and
4. some rate of unbalance can be permissible or unnoticed,

so it may be convenient set parameters and find the formula that meets arguments conditions. I propose some data and utility for it.

Ideally XpReward 𝛼 RelativePower therefore XpReward = SomeConstant * RelativePower, but can be XpReward = SomeConstant * ( RelativePower ^ SomeExpoent ). In other words, a manner to keep same reward factor for each same relative power factor results is apply a expoent (better close to one, higher incites stronger enemies and lower induces weaker searching) on relative power.

Back to the example. The average relative power per level is

$$\RelativePower ≈ (8+2Lv)^2*(((4+Lv)^2)^{1.25})*\sqrt{4+Lv} \space = \space 4*(4+Lv)^5\$$

thus

$$\XpReward \space = \space SomeConstant*RelativePower^{SomeExpoent}\$$ $$\XpReward \space ≈ \space SomeConstant*( 4*(4+Lv)^5 )^{SomeExpoent}\$$.

Best is SomeExpoent=1. If C=SomeConstant*4 and E=5*SomeExpoent then best is E=5 and

$$\XpReward \space ≈ \space C*(4+Lv)^E\$$.

If E=5 and C=0.0032 then XpReward = C*(4+Lv)^E ⇒ 10, 24.9, 53.8, 104.9, 189, 320, 515.4, 796.3, 1188.1, 1721} but if you want rewards from 20 to 3000 uses E≈4.8665 and C≈1/126.0383 (with that approachs the sequency is 20, 48.6, 102.8, 197, 349.4, 583.4, 927.8, 1416.9, 2091.7, 3000.1).

We has a lot of ways to define the formula. A important data to do it is initial xp reward (to set initial values magnitudes of xp) and new formula can be

$$\XpReward=XpReward_{Initial}*(RelativePower/RelativePower_{Initial})^{SomeExpoent}\$$

that uses C = InitialXpReward/( InitialRelativePower^SomeExpoent ) and must solve to find expoent. We can set SomeExpoent=1. We can find value that set a reward condition. We can postpone the solution to set by a total xp condition (or level up xp condition). When solve SomeExpoent variable we have specific mean leveled xp reward to bases specific rewards in game.

Set Total Xp

We know that

$$\LevelUpXp(Lv) = TotalXp(Lv+1) - TotalXp(Lv)\$$

$$\TotalXp(Lv+1) = TotalXp(Lv) + LevelUpXp(Lv)\$$

therefore

$$\TotalXp(Lv)=TotalXp(InitialLv)+LevelUpXp(InitialLv)\$$ $$\+LevelUpXp(InitialLv+1)+...+ LevelUpXp(Lv-1)\$$.

The total xp table and progression speed depends on each level up xp. Level up xp depends on data that we have, then the point is the level up xp. Usually it's defined by

$$\LevelUpXp = ExpectedTimeToLevelUp * MeanXpGainPerTimeUnit\$$.

Since MeanXpGainPerTimeUnit = MeanXpReward / MeanRewardTime and ExpectedTimeToLevelUp = LevelUpRewards * MeanRewardTime, it gives us the onus of set

$$\LevelUpRewards = ExpectedTimeToLevelUp / MeanRewardTime\$$

properly (also consider LevelUpRewards = LevelUpEnemies and its equivalences with quests, missions, items, equips bonus, performance bonus) and apply to

$$\LevelUpXp = LevelUpRewards * MeanXpReward\$$

from initial level to final but one level. Yup, we don't need final level data.

If levels are from 1 to 10, initial total xp is zero, mean enemy xp sequence is 10, 24.9, 53.8, 104.9, 189, 320, 515.4, 796.3, 1188.1 (levels from 1 to 9) and level up enemies sequence is 1, 5, 20, 60, 120, 180, 240, 300, 300 (levels from 1 to 9 and values from LevelUpEnemies question example formula) then level up xp sequence is 10, 124.5, 1076, 6294, 22680, 57600, 123696, 238890, 356430 (levels from 1 to 9) and total xp sequence is 0, 10, 134.5, 1210.5, 7504.5, 30184.5, 87784.5, 211480.5, 450370.5, 806800.5 (levels from 1 to 10).

But if we includes the xp bonus sequence 0%, 0%, 0%, 5%, 10%, 15%, 20%, 25%, 25% then mean enemy xp sequence is 10, 24.9, 53.8, 110.1, 207.9, 368, 618.5, 995.4, 1485.1, level up xp sequence is 10, 124.5, 1076, 6606, 24948, 66240, 148440, 298620, 445530 (levels from 1 to 9) and total xp sequence is 0, 10, 134.5, 1210.5, 7816.5, 32764.5, 99004.5, 247444.5, 546064.5, 991594.5 (levels from 1 to 10).

But...
When we don't set E...
What will we do?

If E is unset then is because we decided to set using a xp condition, for example TotalXp(10)=1000000. Yeah, you know, TotalXp(10) = LevelUpRewards(9) * MeanXpReward(9) + LevelUpRewards(8) * MeanXpReward(8) + ... + LevelUpRewards(2) * MeanXpReward(2) + LevelUpRewards(1) * MeanXpReward(1) (initial level is one) and each MeanXpReward(?) is (not defined value but) a formula with E variable as power expoent to solve.

A root finder method (like secants, newton, halley) can find E that E -> TotalXp(10)-1000000 is zero (E≈5.2457 with no bonus or E≈5.0097 with bonus) and tables building is possible. Using xp bonus example with E=5.0097 (inexact), mean enemy xp sequence is 10, 24.9, 54, 110.6, 209, 370.5, 623.2, 1003.8, 1499, level up xp sequence is 10, 124.5, 1080, 6636, 25080, 66690, 149568, 301140, 449700 (levels from 1 to 9) and total xp sequence is 0, 10, 134.5, 1214.5, 7850.5, 32930.5, 99620.5, 249188.5, 550328.5, 1000028.5 (levels from 1 to 10).

Rounding Tables Values

You saw not integer values and can simply round each one (digits of your choice) but need caution because it modifies the tables with no previously addressed criteria.

For example, if TotalXp(6) = 32930.5, TotalXp(7) = 99620.5 and MeanXpReward(6) = 370.5 then LevelUpRewards(6) = (99620.5-32930.5)/370.5 = 180 but if modify TotalXp(6) = 30000 and TotalXp(7) = 100000 then LevelUpRewards(6) = (100000-30000)/370.5 = 188.9 (about 5% difference, can be worse).

A extreme case is TotalXp(59) = 834776.7, TotalXp(60) = 915416.7 and TotalXp(61) = 1003364.4. If rounds to nearest integer then TotalXp(59) = 834777, TotalXp(60) = 915417 and TotalXp(61) = 1003364 thus LevelUpXp(59) = 80640 and LevelUpXp(60) = 87947. If rounds to nearest multiple of 10000 then TotalXp(59) = 830000, TotalXp(60) = 920000 and TotalXp(61) = 1000000 thus LevelUpXp(59) = 90000 and LevelUpXp(60) = 80000 (yes, needed xp to level up down from 90000 to 80000 on grow from level 59 to 60, it's a crescent level up xp breaking).

The xp tables often manifest a air of normality properties like 0 < LevelUpXp(Lv) < LevelUpXp(Lv+1) (I never saw not manifest this), 2*LevelUpXp(Lv) < LevelUpXp(Lv-1) + LevelUpXp(Lv+1) (rarely not manifest) and LevelUpXp(Lv)^2 > LevelUpXp(Lv-1) * LevelUpXp(Lv+1) (not so rarely not manifest). The challenge is to make a algorithm that rounds until can't do it with no property crash (conserve present property).

The unique way that I think that does it is to repetitively

• select a level,
• see the holded properties on it and neighbords,
• does a rounding,
• see if it breaks some property and
• decide to keep rounded or revert it.

All values can start rounded to near integer and get more digits to round when algorithm is running. Selection can be a crescent level loop or decrescent (I don't know what is the best) and a extern loop can continue it until don't find more roundings to do.

Code And Test

I coded in C++ (incomplete) here: https://ideone.com/Vgvh0U. I like the results for now. After that I coded in Maple 15 with more satisfactory features. Maple code shown below. I intend to code in Java with graphic interface but I don't guarantee post here. Did you see that I called hardness the relative power (to simplify)?

As code...

BuildXpTables := proc ({ InLv::posint := 1, InTotalXp::nonnegint := 0, RoundDivisor::posint := 1, RoundOffError%::numeric := 0, InCond::= := RewXpFct = 10, FinCond := RewXpExp = 1, ExHardnessSeq::(nonemptylist(positive)) := [seq(32e-5*(4+_tmp)^5, _tmp = 1 .. 9)], ExRewsToLvUpSeq::(nonemptylist(positive)) := [seq(60*(2/factorial(max(1, 6-_tmp))+min(max(_tmp-5, 0), 3)), _tmp = 1 .. nops(ExHardnessSeq)-1)], ExRewXpPosBonAndPen::procedure := ((Lv, ExRewXp) -> ExRewXp) })
local h, c, w, r, n, u, p, v, a, b, e, f, i, l, m, t, d, x;
h, c := sort(ExHardnessSeq), 1-InLv;
w := unapply(ExRewXpPosBonAndPen(l, f*piecewise(cat(, "nargs") = 1, h[l+c], a)^e), l, a);
r := sort(ExRewsToLvUpSeq);  n := nops(r);  u := unapply(r[min(i, n)]*w(i-c), i);
p := unapply(InTotalXp+('add')(u(t), t = 1 .. i-1), i);
v := unapply(('eval')(t, fsolve(eval({InCond, FinCond}, {ExRewXp = w, LvUpXp = u, TotalXp = p, 'RewXpExp' = e, 'RewXpFct' = f}))), t);
d := [RoundDivisor];
x := (t -> proc (i, d) t[i] end proc)((proc ()
n := nops(h); 0; [InTotalXp]; while %% < n do d := [d[], d[-1]]; %%%+1; [%%%[], %%%[-1]+v(u(%))] end do;
p, r := proc (j) piecewise(i = j, m*d[j], d[j]); round(x(j)/%)*% end proc, proc (i) round(x(i)/d[i])*d[i] end proc;
return %% end proc
)());
for m in 10, 5, 2 do b := true; while b do b := false; for i from n+1 by -1 to 1 do if (proc (e, i, m)
local t, a, f, s, u; a := 0; f := i; s := i; u := proc ()
local t;
a, f, s := a+1, min(n, f)+1, max(s-1, 1);
return [seq(t .. t+a, t = s .. f-a)]
end proc;
max(x(i), 1e-999999); abs(p(i)-%); if not(% <= %%*e or % < abs(r(i)-%%)) then return false end if;
u();
if % = [] then return true end if;
for t in % do
p(rhs(t))-p(lhs(t));
if % < 1 then return false end if;
x(rhs(t))-x(lhs(t));
abs(%%-%);
if not(% <= %%*e or % < abs(r(rhs(t))-r(lhs(t))-%%)) then
return false
end if
end do;
u();
if % = [] then return true end if;
for t in % do
~[p]([seq(t)]);
%[3]-2*%[2]+%[1];
if not(0 <= % or r(rhs(t))-2*r(rhs(t)-1)+r(lhs(t)) < %) then
return false
end if
end do;
u();
if % = [] then return true end if;
for t in % do
~[p]([seq(t)]);
if not(0 <= %[4]-3*%[3]+3*%[2]-%[1] or r(rhs(t))-3*r(rhs(t)-1)+3*r(rhs(t)-2)-r(lhs(t)) < 0) then
return false
end if;
(%[3]-%[2])^2-(%[4]-%[3])*(%[2]-%[1]);
if not(0 <= % or (r(rhs(t)-1)-r(rhs(t)-2))^2-(r(rhs(t))-r(rhs(t)-1))*(r(rhs(t)-2)-r(lhs(t))) < 0) then
return false
end if
end do;
return true end proc
)(0.01*RoundOffError%, i, m) then b, d[i] := true, d[i]*m end if end do end do end do;
~[r]([seq(1 .. n+1)], d); %[2 .. ()]-%[() .. -2], ~[v](~[w]([seq(InLv .. n-c)]));
Levels = InLv .. InLv+n, Table[TotalXp] = %%, Table[LevelUpXp] = %[1];
return unapply(('eval')(cat(, "args"), [%, Table[ExRewsToLvUp] = ~[/](%%[1], %%[2]), Table[ExRewXp] = %%[2], ExRewXp = v(w(Lv, Hardness))]))
end proc


All parameters have standard arguments.

• InLv (1) = initial character level,
• InTotalXp (0) = initial character total xp,
• RoundDivisor (1) --> all levels character total xp is multiple of it,
• RoundOffError% (0%) --> round divisor only grows if it don't break relative error limit,
• InCond (RewXpFct=10) = first equation to find SomeConstant (RewXpFct) and SomeExpoent (RewXpExp) with fsolve procedure (can use RewXpFct, RewXpExp, TotalXp(Lv), LvUpXp(Lv) and ExRewXp(Lv), recommended RewXpFct or low Lv),
• FinCond (RewXpExp=1) = second equation to find SomeConstant and SomeExpoent with fsolve procedure (can use RewXpFct, RewXpExp, TotalXp(Lv), LvUpXp(Lv) and ExRewXp(Lv), recommended RewXpExp or high Lv),
• ExHardnessSeq ([1.00000, 2.48832, 5.37824, 10.48576, 18.89568, 32.00000, 51.53632, 79.62624, 118.81376]) = challenge relative power sequence (standard is the example sequence),
• ExRewsToLvUpSeq ([1, 5, 20, 60, 120, 180, 240, 300, 300]) = number of rewards to level up sequence (standard is the example sequence),
• ExRewXpPosBonAndPen ((Lv, ExRewXp) -> ExRewXp) = final reward xp after calculate bonuses and penalties effects.

The procedure returns other procedure that applies eval on argument with Levels = InLv..FinLv, rounded Table[TotalXp], Table[LevelUpXp] from rounded total xp, Table[ExRewsToLvUp] from rounded level up xp and reward xp table, Table[ExRewXp] and formula ExRewXp. The rounding process verify if round divisor rising make some present property in some near level be absent on same level. I can make optional specific properties keeping but I haven't done that yet.

Using all standard arguments except RoundOffError = 0.5% and ExRewXpPosBonAndPen = (Lv, ExRewXp) -> ExRewXp * [1.00, 1.00, 1.00, 1.05, 1.10, 1.15, 1.20, 1.25, 1.25][Lv]) the procedure returns it.

When InCond = (TotalXp(2)=10) or InCond = (LvUpXp(1)=10) or InCond = (ExRewXp(1)=10) replaces standard argument the result is the same thing. Like the examples, if FinCond = (TotalXp(10)=1000000) then that happens.

Finally a great test. The code

prints it.

Lv   1 | Xp          0 | LvUpXp         5 | LvUpXpGrow x 3.000000 | RewXp       5.6 | LvUpRews    0.891
Lv   2 | Xp          5 | LvUpXp        15 | LvUpXpGrow x 2.333333 | RewXp       6.8 | LvUpRews    2.205
Lv   3 | Xp         20 | LvUpXp        35 | LvUpXpGrow x 2.000000 | RewXp       8.2 | LvUpRews    4.251
Lv   4 | Xp         55 | LvUpXp        70 | LvUpXpGrow x 1.714286 | RewXp       9.9 | LvUpRews    7.038
Lv   5 | Xp        125 | LvUpXp       120 | LvUpXpGrow x 1.541667 | RewXp      12.0 | LvUpRews   10.006
Lv   6 | Xp        245 | LvUpXp       185 | LvUpXpGrow x 1.432432 | RewXp      14.4 | LvUpRews   12.814
Lv   7 | Xp        430 | LvUpXp       265 | LvUpXpGrow x 1.358491 | RewXp      17.4 | LvUpRews   15.273
Lv   8 | Xp        695 | LvUpXp       360 | LvUpXpGrow x 1.333333 | RewXp      20.8 | LvUpRews   17.293
Lv   9 | Xp       1055 | LvUpXp       480 | LvUpXpGrow x 1.239583 | RewXp      24.9 | LvUpRews   19.249
Lv  10 | Xp       1535 | LvUpXp       595 | LvUpXpGrow x 1.201681 | RewXp      29.8 | LvUpRews   19.950
Lv  11 | Xp       2130 | LvUpXp       715 | LvUpXpGrow x 1.188811 | RewXp      35.6 | LvUpRews   20.077
Lv  12 | Xp       2845 | LvUpXp       850 | LvUpXpGrow x 1.188235 | RewXp      42.5 | LvUpRews   20.018
Lv  13 | Xp       3695 | LvUpXp      1010 | LvUpXpGrow x 1.183168 | RewXp      50.5 | LvUpRews   19.980
Lv  14 | Xp       4705 | LvUpXp      1195 | LvUpXpGrow x 1.200837 | RewXp      60.1 | LvUpRews   19.887
Lv  15 | Xp       5900 | LvUpXp      1435 | LvUpXpGrow x 1.177700 | RewXp      71.3 | LvUpRews   20.119
Lv  16 | Xp       7335 | LvUpXp      1690 | LvUpXpGrow x 1.183432 | RewXp      84.5 | LvUpRews   19.990
Lv  17 | Xp       9025 | LvUpXp      2000 | LvUpXpGrow x 1.182500 | RewXp     100.1 | LvUpRews   19.986
Lv  18 | Xp      11025 | LvUpXp      2365 | LvUpXpGrow x 1.181818 | RewXp     118.3 | LvUpRews   19.995
Lv  19 | Xp      13390 | LvUpXp      2795 | LvUpXpGrow x 1.177102 | RewXp     139.6 | LvUpRews   20.019
Lv  20 | Xp      16185 | LvUpXp      3290 | LvUpXpGrow x 1.177812 | RewXp     164.6 | LvUpRews   19.990
Lv  21 | Xp      19475 | LvUpXp      3875 | LvUpXpGrow x 1.175484 | RewXp     193.8 | LvUpRews   20.000
Lv  22 | Xp      23350 | LvUpXp      4555 | LvUpXpGrow x 1.174533 | RewXp     227.8 | LvUpRews   19.995
Lv  23 | Xp      27905 | LvUpXp      5350 | LvUpXpGrow x 1.172897 | RewXp     267.5 | LvUpRews   20.001
Lv  24 | Xp      33255 | LvUpXp      6275 | LvUpXpGrow x 1.171315 | RewXp     313.7 | LvUpRews   20.003
Lv  25 | Xp      39530 | LvUpXp      7350 | LvUpXpGrow x 1.169388 | RewXp     367.4 | LvUpRews   20.003
Lv  26 | Xp      46880 | LvUpXp      8595 | LvUpXpGrow x 1.169284 | RewXp     429.9 | LvUpRews   19.995
Lv  27 | Xp      55475 | LvUpXp     10050 | LvUpXpGrow x 1.166667 | RewXp     502.3 | LvUpRews   20.009
Lv  28 | Xp      65525 | LvUpXp     11725 | LvUpXpGrow x 1.165458 | RewXp     586.2 | LvUpRews   20.002
Lv  29 | Xp      77250 | LvUpXp     13665 | LvUpXpGrow x 1.164288 | RewXp     683.4 | LvUpRews   19.997
Lv  30 | Xp      90915 | LvUpXp     15910 | LvUpXpGrow x 1.163734 | RewXp     795.7 | LvUpRews   19.995
Lv  31 | Xp     106825 | LvUpXp     18515 | LvUpXpGrow x 1.161761 | RewXp     925.5 | LvUpRews   20.006
Lv  32 | Xp     125340 | LvUpXp     21510 | LvUpXpGrow x 1.159926 | RewXp    1075.2 | LvUpRews   20.006
Lv  33 | Xp     146850 | LvUpXp     24950 | LvUpXpGrow x 1.159319 | RewXp    1247.8 | LvUpRews   19.995
Lv  34 | Xp     171800 | LvUpXp     28925 | LvUpXpGrow x 1.158168 | RewXp    1446.5 | LvUpRews   19.996
Lv  35 | Xp     200725 | LvUpXp     33500 | LvUpXpGrow x 1.156716 | RewXp    1675.1 | LvUpRews   19.999
Lv  36 | Xp     234225 | LvUpXp     38750 | LvUpXpGrow x 1.155484 | RewXp    1937.8 | LvUpRews   19.997
Lv  37 | Xp     272975 | LvUpXp     44775 | LvUpXpGrow x 1.155221 | RewXp    2239.4 | LvUpRews   19.995
Lv  38 | Xp     317750 | LvUpXp     51725 | LvUpXpGrow x 1.152731 | RewXp    2585.2 | LvUpRews   20.008
Lv  39 | Xp     369475 | LvUpXp     59625 | LvUpXpGrow x 1.152201 | RewXp    2981.5 | LvUpRews   19.999
Lv  40 | Xp     429100 | LvUpXp     68700 | LvUpXpGrow x 1.151383 | RewXp    3435.1 | LvUpRews   20.000
Lv  41 | Xp     497800 | LvUpXp     79100 | LvUpXpGrow x 1.149178 | RewXp    3953.8 | LvUpRews   20.006
Lv  42 | Xp     576900 | LvUpXp     90900 | LvUpXpGrow x 1.149065 | RewXp    4546.5 | LvUpRews   19.994
Lv  43 | Xp     667800 | LvUpXp    104450 | LvUpXpGrow x 1.147918 | RewXp    5223.0 | LvUpRews   19.998
Lv  44 | Xp     772250 | LvUpXp    119900 | LvUpXpGrow x 1.146372 | RewXp    5994.6 | LvUpRews   20.001
Lv  45 | Xp     892150 | LvUpXp    137450 | LvUpXpGrow x 1.145871 | RewXp    6873.8 | LvUpRews   19.996
Lv  46 | Xp    1029600 | LvUpXp    157500 | LvUpXpGrow x 1.144762 | RewXp    7874.8 | LvUpRews   20.001
Lv  47 | Xp    1187100 | LvUpXp    180300 | LvUpXpGrow x 1.143095 | RewXp    9013.4 | LvUpRews   20.004
Lv  48 | Xp    1367400 | LvUpXp    206100 | LvUpXpGrow x 1.142649 | RewXp   10307.4 | LvUpRews   19.995
Lv  49 | Xp    1573500 | LvUpXp    235500 | LvUpXpGrow x 1.142251 | RewXp   11776.9 | LvUpRews   19.997
Lv  50 | Xp    1809000 | LvUpXp    269000 | LvUpXpGrow x 1.140149 | RewXp   13444.2 | LvUpRews   20.009
Lv  51 | Xp    2078000 | LvUpXp    306700 | LvUpXpGrow x 1.139550 | RewXp   15334.4 | LvUpRews   20.001
Lv  52 | Xp    2384700 | LvUpXp    349500 | LvUpXpGrow x 1.138913 | RewXp   17475.6 | LvUpRews   19.999
Lv  53 | Xp    2734200 | LvUpXp    398050 | LvUpXpGrow x 1.137420 | RewXp   19899.3 | LvUpRews   20.003
Lv  54 | Xp    3132250 | LvUpXp    452750 | LvUpXpGrow x 1.136941 | RewXp   22640.4 | LvUpRews   19.997
Lv  55 | Xp    3585000 | LvUpXp    514750 | LvUpXpGrow x 1.135891 | RewXp   25738.2 | LvUpRews   19.999
Lv  56 | Xp    4099750 | LvUpXp    584700 | LvUpXpGrow x 1.134855 | RewXp   29236.3 | LvUpRews   19.999
Lv  57 | Xp    4684450 | LvUpXp    663550 | LvUpXpGrow x 1.134805 | RewXp   33183.6 | LvUpRews   19.996
Lv  58 | Xp    5348000 | LvUpXp    753000 | LvUpXpGrow x 1.132537 | RewXp   37634.3 | LvUpRews   20.008
Lv  59 | Xp    6101000 | LvUpXp    852800 | LvUpXpGrow x 1.132387 | RewXp   42649.0 | LvUpRews   19.996
Lv  60 | Xp    6953800 | LvUpXp    965700 | LvUpXpGrow x 1.131821 | RewXp   48295.0 | LvUpRews   19.996
Lv  61 | Xp    7919500 | LvUpXp   1093000 | LvUpXpGrow x 1.130375 | RewXp   54647.2 | LvUpRews   20.001
Lv  62 | Xp    9012500 | LvUpXp   1235500 | LvUpXpGrow x 1.130312 | RewXp   61788.8 | LvUpRews   19.996
Lv  63 | Xp   10248000 | LvUpXp   1396500 | LvUpXpGrow x 1.128894 | RewXp   69812.3 | LvUpRews   20.004
Lv  64 | Xp   11644500 | LvUpXp   1576500 | LvUpXpGrow x 1.128449 | RewXp   78820.3 | LvUpRews   20.001
Lv  65 | Xp   13221000 | LvUpXp   1779000 | LvUpXpGrow x 1.127038 | RewXp   88926.6 | LvUpRews   20.005
Lv  66 | Xp   15000000 | LvUpXp   2005000 | LvUpXpGrow x 1.126683 | RewXp  100257.5 | LvUpRews   19.998
Lv  67 | Xp   17005000 | LvUpXp   2259000 | LvUpXpGrow x 1.125719 | RewXp  112952.9 | LvUpRews   19.999
Lv  68 | Xp   19264000 | LvUpXp   2543000 | LvUpXpGrow x 1.124853 | RewXp  127167.5 | LvUpRews   19.997
Lv  69 | Xp   21807000 | LvUpXp   2860500 | LvUpXpGrow x 1.124803 | RewXp  143072.7 | LvUpRews   19.993
Lv  70 | Xp   24667500 | LvUpXp   3217500 | LvUpXpGrow x 1.123543 | RewXp  160858.2 | LvUpRews   20.002
Lv  71 | Xp   27885000 | LvUpXp   3615000 | LvUpXpGrow x 1.122822 | RewXp  180733.4 | LvUpRews   20.002
Lv  72 | Xp   31500000 | LvUpXp   4059000 | LvUpXpGrow x 1.121828 | RewXp  202929.7 | LvUpRews   20.002
Lv  73 | Xp   35559000 | LvUpXp   4553500 | LvUpXpGrow x 1.121665 | RewXp  227702.8 | LvUpRews   19.998
Lv  74 | Xp   40112500 | LvUpXp   5107500 | LvUpXpGrow x 1.120411 | RewXp  255334.7 | LvUpRews   20.003
Lv  75 | Xp   45220000 | LvUpXp   5722500 | LvUpXpGrow x 1.120140 | RewXp  286136.3 | LvUpRews   19.999
Lv  76 | Xp   50942500 | LvUpXp   6410000 | LvUpXpGrow x 1.118955 | RewXp  320450.5 | LvUpRews   20.003
Lv  77 | Xp   57352500 | LvUpXp   7172500 | LvUpXpGrow x 1.118508 | RewXp  358655.1 | LvUpRews   19.998
Lv  78 | Xp   64525000 | LvUpXp   8022500 | LvUpXpGrow x 1.117794 | RewXp  401165.7 | LvUpRews   19.998
Lv  79 | Xp   72547500 | LvUpXp   8967500 | LvUpXpGrow x 1.117647 | RewXp  448440.2 | LvUpRews   19.997
Lv  80 | Xp   81515000 | LvUpXp  10022500 | LvUpXpGrow x 1.116238 | RewXp  500981.9 | LvUpRews   20.006
Lv  81 | Xp   91537500 | LvUpXp  11187500 | LvUpXpGrow x 1.115531 | RewXp  559344.2 | LvUpRews   20.001
Lv  82 | Xp  102725000 | LvUpXp  12480000 | LvUpXpGrow x 1.115385 | RewXp  624135.1 | LvUpRews   19.996
Lv  83 | Xp  115205000 | LvUpXp  13920000 | LvUpXpGrow x 1.114583 | RewXp  696022.4 | LvUpRews   19.999
Lv  84 | Xp  129125000 | LvUpXp  15515000 | LvUpXpGrow x 1.114083 | RewXp  775739.2 | LvUpRews   20.000
Lv  85 | Xp  144640000 | LvUpXp  17285000 | LvUpXpGrow x 1.112815 | RewXp  864089.7 | LvUpRews   20.004
Lv  86 | Xp  161925000 | LvUpXp  19235000 | LvUpXpGrow x 1.112685 | RewXp  961955.7 | LvUpRews   19.996
Lv  87 | Xp  181160000 | LvUpXp  21402500 | LvUpXpGrow x 1.112370 | RewXp 1070303.8 | LvUpRews   19.997
Lv  88 | Xp  202562500 | LvUpXp  23807500 | LvUpXpGrow x 1.111204 | RewXp 1190193.0 | LvUpRews   20.003
Lv  89 | Xp  226370000 | LvUpXp  26455000 | LvUpXpGrow x 1.110754 | RewXp 1322782.8 | LvUpRews   20.000
Lv  90 | Xp  252825000 | LvUpXp  29385000 | LvUpXpGrow x 1.110430 | RewXp 1469342.3 | LvUpRews   19.999
Lv  91 | Xp  282210000 | LvUpXp  32630000 | LvUpXpGrow x 1.109409 | RewXp 1631259.8 | LvUpRews   20.003
Lv  92 | Xp  314840000 | LvUpXp  36200000 | LvUpXpGrow x 1.109116 | RewXp 1810053.4 | LvUpRews   19.999
Lv  93 | Xp  351040000 | LvUpXp  40150000 | LvUpXpGrow x 1.108344 | RewXp 2007382.5 | LvUpRews   20.001
Lv  94 | Xp  391190000 | LvUpXp  44500000 | LvUpXpGrow x 1.108090 | RewXp 2225059.7 | LvUpRews   19.999
Lv  95 | Xp  435690000 | LvUpXp  49310000 | LvUpXpGrow x 1.107280 | RewXp 2465064.5 | LvUpRews   20.004
Lv  96 | Xp  485000000 | LvUpXp  54600000 | LvUpXpGrow x 1.106227 | RewXp 2729557.3 | LvUpRews   20.003
Lv  97 | Xp  539600000 | LvUpXp  60400000 | LvUpXpGrow x 1.655629 | RewXp 3020895.5 | LvUpRews   19.994
Lv  98 | Xp  600000000 | LvUpXp 100000000 | LvUpXpGrow x 3.000000 | RewXp 3341649.8 | LvUpRews   29.925
Lv  99 | Xp  700000000 | LvUpXp 300000000 | LvUpXpGrow x infinity | RewXp 3694622.2 | LvUpRews   81.199
Lv 100 | Xp 1000000000 | LvUpXp  infinity | LvUpXpGrow x infinity | RewXp  infinity | LvUpRews infinity

• Did you just ask this question just to post your phd thesis? Oct 30, 2020 at 17:55