Forum:The Knockback Formula Challenge

The knockback formula is analagous to the damage formula of the Pokémon series - it's arguably the most important part of the game. Yet we don't know what it is. So, we need to find out. (Note: We're talking the Brawl version, although it's likely the formula won't have changed much between games.)

Now, you might be thinking "But the formula's on SmashBoards already". Thing is, that's not the formula the game uses. It uses what I call "cyclic reasoning" - that is, the given formula takes as input numbers that have been produced by the formula. We need to find a formula that uses the actual data from the game.

Normally, I'd work on this kind of thing myself. But this isn't as easy as calculating KO percentages or measuring stage size. So I need help.

The basic idea is this: We know the initial values, and we know the resulting value. We have to discover what the formula is.

Here is a sample of known data:

For the interested, here's the scoop:
 * The knockback formula must contain all the above variables, but they may need to be used more than once.
 * It is unlikely there are other variables to be considered, but it is (unfortunately) possible.
 * The variables may have to be altered in the formula. For example, it's possible that weight has to be divided by 98 (Mario's weight) or 100 (a "basic" value) to get a percentage-based weight value before being used.
 * The formula for fixed-knockback moves is likely similar but different. We'll worry about it later.
 * Even if an attempt doesn't work, put it up. It may cause more ideas.

I'll start off with a few of my attempts:
 * B+(D+I)*G/(W/98)
 * This is the formula lizted on SmashBoards (in a basic form). It produces a number an order of magnitude too small.
 * (D+I)*B*G*W*A
 * Produces six-digit numbers.
 * (D+I)*(W/98)*B*G*A
 * Very close but still wrong. (i.e. produces 2140.32 for data set (1))
 * B+(D+I)*(W/98)*G*A
 * Too small.
 * (B+(D+I)*(W/98))*G*A
 * Too small.
 * (B+(D+I)*(W/98)*G)*A
 * Way too small.

Toomai Glittershine  eXemplary Logic  The Stats Guy  The Table Designer  00:14, June 14, 2010 (UTC)


 * I got a little closer than you for that first set using (IB+(I+D)B+(I+D)BG)*A*(W/100). For that first row, you get 2113.6, which I suppose is a tiny bit nearer the tested value.  Miles ( talk)   00:47, June 14, 2010 (UTC)
 * Ignore that. Values are way off for I≠0.  Miles ( talk)   00:58, June 14, 2010 (UTC)

I just did some tests on characters of equal weight and unequal fallspeed (Zelda/Sheik and Wario/Yoshi). Apparently, fallspeed has no effect at 0%, but it does otherwise. Also, I've discovered that I misidentified one of the variables; this has been fixed. Toomai Glittershine  eXemplary Logic  The Stats Guy  The Table Designer  15:32, June 15, 2010 (UTC)

Alrighty, now that I can use hacks, things are getting a bit more clear. These are the primary bits of info for right now: Toomai Glittershine 15:55, September 6, 2010 (UTC)
 * A mostly-linear increase in damage dealt (that is, damage done by the attack, with damage before the hit being constant) causes a quadratic increase in knockback. (I say "mostly-linear" because of the 1.05x freshness bonus that causes 3% attacks to deal 3.15% and such, so the difference between 21% and 22% is bigger than the difference between 1% and 2%.)
 * Knockback is altered by gravity, not maximum falling speed. (That is, it's how fast you speed up, not how fast you can go.)