Snake Sneak
Posts: 106
Joined: Friday, 1st March 2013, 20:24
Proposal: change Spell Power formula
(Spellcasting/2 + 2*avg school skill) * INT/10 * (1.5 ^ enhancer count).
First lets assume Spellcasting & Spell School will rise at the same rate (They don't, but this makes the math simpler. It won't be much of a difference with what I'm trying to show.)
RawPower = 2.5*School*INT/10*1.5^count
Combine the constants:
Rawpower = .25 * School * Int * 1.5^count
When looking at School or Int separately, they both raise the raw spell power linearly. When you look at them with the respect of time (they both go up over time, but at different rates and different starting values), the equation is parabolic.
Now halve the part over 50, halve the part over 100, halve the part over 150, and plain cap at 200.
This makes it pretty obvious that this formula is in the form of y = 2^x -1
Spell Power = 50 * Log2 (RawPower /50 + 1)
That formula is close enough to what we have in the game (it's also a smoother curve).
Putting both formulas together, you have a parabolic formula nested inside a logarithmic formula. Log is a stronger function than x^2, so eventually this formula becomes less than linear. However, over the short period that this formula exists from, the two functions nearly cancel each other out and the result is pseudo-linear. When looking at each variable individually, they each give diminishing returns.
njvack wrote:Fergy wrote:As another tangent: The current spell power formula stinks.
That's a pretty strong statement. Got any reasoning to back that up? From what I understand, people have actually put some thought into spell power.
It's totally fine to be a newcomer to game design, but saying coming out and saying you don't really totally understand the systems at work and then saying part of it stinks isn't going to encourage a super productive discussion.
Stinks may have been a strong term. Inefficient is a much better word. Instead of using two opposing formulas to roughly replicate what the game designers want, they should use 1 elegant formula that does the same thing.