Proposal: change Spell Power formula


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

Snake Sneak

Posts: 106

Joined: Friday, 1st March 2013, 20:24

Post Saturday, 9th March 2013, 18:54

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.

  Code:
Mod  50 100 200 400
Raw  50 150 350 750

Divide by 50

Mod 1 2 4 8
Raw 1 3 7 15

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.

Tartarus Sorceror

Posts: 1888

Joined: Saturday, 9th July 2011, 20:57

Post Saturday, 9th March 2013, 19:09

Re: Spell Power

Fergy wrote: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.


Why? The stepdown function is used in several other places in the game, so it makes sense to have it as its own distinct function separate from spellpower.
User avatar

Dungeon Master

Posts: 4031

Joined: Thursday, 16th December 2010, 20:37

Location: France

Post Saturday, 9th March 2013, 20:24

Re: Spell Power

Reintroduce spell schools and int into this formula, I'm not sure the result would be simpler, nor more efficient. This function is not CPU intensive anyway, even on a slow android device, bringing up the spell menu is instantaneous. We have far worse performance issues to be concerned with.
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...

Tartarus Sorceror

Posts: 1888

Joined: Saturday, 9th July 2011, 20:57

Post Sunday, 10th March 2013, 02:05

Re: Spell Power

minmay wrote:
  Code:
<elliptic> someone tell this person that the formula is actually a log and has been for a long time
<elliptic> so he is complaining about nothing
<elliptic> or actually maybe he is complaining about something else? I can't even tell


as far as I can tell his complaint is that spellpower is calculated with two functions instead of just one

Return to Game Design Discussion

Who is online

Users browsing this forum: No registered users and 34 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.