A little while ago I had a big math project for school. Since I’d just gotten Brawl and very much preferred playing it over doing homework I decided to combine the two and make my math project about Brawl. So I set out to figure out how the knock back system in Brawl works. To achieve this I looked at the “Fasted Launch Speed” at the end of match statistics. This shows how fast a character was sent flying and as such represents the knock back of a move. If you only connect with one move during a match this number will tell you the knock back of that move. So using the handicap function to set the percentage I tested many different moves on many different characters and found several patterns. First up, I found out that knock back is calculated after damage. So the percentage after the attack is what determines its strength. Next I figured out that like Melee each move can be divided in two parts, the base knock back that determines how much an attack would hit for at 0% (Which is theoretically impossible since knock back is calculated after damage) and an increment which determines how much the knock back increases for each attack. Both these parts are each affected by different attributes of the character that is being hit.
Weight:
This one was pretty simple to figure out since it’s the same as it was in Melee. The base knock back of a move is not affected by weight. So this only leaves the incremental knock back with damage. By calculating this incremental knock back against different characters and comparing it to the value I found for Mario I made the following weight table:
Bowser 1.111
Donkey Kong 1.091
Snake 1.076
Dedede 1.071
Charizard 1.061
Ganondorf 1.056
Samus 1.051
Yoshi 1.045
Wario 1.045
R.O.B. 1.040
Ike 1.035
Captain Falcon 1.030
Link 1.030
Wolf 1.020
Lucario 1.010
Ivysaur 1.010
Mario 1
Luigi 0.995
Sonic 0.985
Ness 0.980
Pit 0.980
Lucas 0.980
Diddy Kong 0.975
Toon Link 0.970
Ice Climber 0.970
Peach 0.960
Marth 0.944
Sheik 0.935
Zelda 0.935
Falco 0.919
Olimar 0.919
Zero Suit Samus 0.914
Fox 0.910
Pikachu 0.904
Meta Knight 0.904
Kirby 0.899
Squirtle 0.884
Mr. Game & Watch 0.884
Jigglypuff 0.849
The numbers in this table show the weight of a character compared to Mario, so Bowser is 1.111 times as heavy as Mario, Jigglypuff is 0.849 times as heavy as Mario. This table has proved to be 100% consistent with all moves I’ve tested.
Fall speed:
As I already said, base knock back is not affected by the weight of a character. However, different characters still have different base knock back for the same move. Upon further testing I found that this seemed to be related to the fall speed of characters. With characters like Jiggly and Samus having a low base knock back and characters like Fox and Wolf having a high base knock back. My theory is that this was added to account for the increased susceptibility that fast falling characters have to combos. I also found that the amount by which the base knock back for characters differs is not the same for all moves. For weaker moves it’s the same, but for stronger moves it seems to differ a lot. To account for this I took Ike’s fully charged forward Smash as a bench mark and assigned it a value of 100 for the deviation of its base knock back per character. This number is purely arbitrary but it does allow me to make a list to compare fall speed. This gave me the following list. Again I took Mario as a benchmark, hence he has a value of “0”.
Jigglypuff -0.78
Samus -0.54
Olimar -0.47
Kirby -0.44
Lucario -0.40
Peach -0.37
Luigi -0.32
R.O.B. -0.32
Zelda -0.26
Marth -0.25
Toon Link -0.16
Ivysaur -0.16
Ness -0.12
Yoshi -0.05
Pit 0.00
Mario 0
Mr. Game & Watch 0.01
Ice Climber 0.07
Snake 0.16
Donkey Kong 0.20
Ike 0.28
Dedede 0.29
Wario 0.30
Charizard 0.33
Sonic 0.33
Pikachu 0.40
Zero Suit Samus 0.44
Link 0.46
Lucas 0.49
Diddy Kong 0.55
Meta Knight 0.68
Bowser 0.91
Ganondorf 0.91
Captain Falcon 0.92
Squirtle 1.05
Falco 1.23
Wolf 1.84
Sheik 2.21
Fox 3.41
It should be noted that these numbers shouldn’t be takes as absolute values. They show how much a character deviates from Mario. So you can’t say “Fox falls 3 times as fast as Squirtle” but you can say “The difference between Fox and Mario is 3 times larger then the difference between Squirtle and Mario”.
How much of an impact do these two values have on knock back?
As a general rule you can say that weight has far more of an impact on knock back then fall speed. For example, Jiggly falls significantly slower then Bowser and as such takes less base knock back. But in most situations she’s still fly faster because of the weight difference. The only time fall speed makes a noticeable difference is with fairly weak moves or at low percentages. As such the added knock back fast fallers get from attacks should not have much of an impact on their survivability.
The mathematical formula
For the purpose of posting this here I’ve cut out most of the math. However, I would like to include the formula for calculating knock back:
v = d * a / m + b + f * c
v = is the velocity a character has when it flies away.
d = the damage the character has after the attack
a = is the incremental knock back of a move on Mario
m = the weight of the character being hit from the list I posted
b = the base knock back of a move against Mario
f = is the value in the fall speed list above
c = is a value that determines how much the base knock back differs based on fall speed. For attacks where b is smaller then 2200 (the vast majority of moves in the game) this value is 100. For attack above 2200 it seems to vary between 70 and 170.
Other interesting facts I found while testing
First up, the percentage given in the game is not very accurate. The percentage a character has is internally tracked as a decimal number, but only displayed as a number without decimals. So a character with 90.5% will fly further then one with 90.0% even though the game will display both as having 90% damage. The same is true for moves, many moves don’t do a whole number of damage. Ike’s Forward Smash for example does roughly 32.3% damage when fully charged. Also, the game does not stop counting at 999%. So taking damage above 999% will still increase the knock back you take, even if the added damage is not shown in the game. To account for this I worked out what real damage that moves did by using it over and over on a single character in a box shaped level I made (obviously with a suicide after each attack to reset the diminishing returns) and then for all my other tests I set the starting damage with the handicap mode to ensure it was a number without decimals. This way I could calculate the exact damage after a given attack with decimals.
There is a maximum knock back a character can take, namely 80529mph. However, this takes an enormous amount of damage to reach. For example, Marth Final Smash, which is the strongest move I tested will do roughly 80000mph against a Jiggly at 300%. Many other moves won’t even reach this maximum at 999% damage. Obviously such a knock back results in instant death.
The knock back displayed is given in “Miles per hour”. However, this is quite obviously complete bull**** since the numbers don’t match up with what’s happening on the screen. A knock back of 1000mph will hardly move a character, which is clearly nonsense. However, this does not matter for the weight list I’ve derived from it since it’s based on the relative differences in knock back between different situations, not on what the absolute numbers are. My guess is that it’s simply an internal number that they’ve added a unit to too show what it represents.
Wiimotes don’t give a perfectly consistent signal. I used Wiimotes for testing because they’re wireless and it would happen fairly frequently that an attack would go of early while charging it. Which probably happens because of a break in the signal which the game interprets as the player releasing the button. However, these breaks seemed to be very short, probably only a few frames, so for anything other then charging attacks it shouldn’t be very noticeable.
Weight:
This one was pretty simple to figure out since it’s the same as it was in Melee. The base knock back of a move is not affected by weight. So this only leaves the incremental knock back with damage. By calculating this incremental knock back against different characters and comparing it to the value I found for Mario I made the following weight table:
Bowser 1.111
Donkey Kong 1.091
Snake 1.076
Dedede 1.071
Charizard 1.061
Ganondorf 1.056
Samus 1.051
Yoshi 1.045
Wario 1.045
R.O.B. 1.040
Ike 1.035
Captain Falcon 1.030
Link 1.030
Wolf 1.020
Lucario 1.010
Ivysaur 1.010
Mario 1
Luigi 0.995
Sonic 0.985
Ness 0.980
Pit 0.980
Lucas 0.980
Diddy Kong 0.975
Toon Link 0.970
Ice Climber 0.970
Peach 0.960
Marth 0.944
Sheik 0.935
Zelda 0.935
Falco 0.919
Olimar 0.919
Zero Suit Samus 0.914
Fox 0.910
Pikachu 0.904
Meta Knight 0.904
Kirby 0.899
Squirtle 0.884
Mr. Game & Watch 0.884
Jigglypuff 0.849
The numbers in this table show the weight of a character compared to Mario, so Bowser is 1.111 times as heavy as Mario, Jigglypuff is 0.849 times as heavy as Mario. This table has proved to be 100% consistent with all moves I’ve tested.
Fall speed:
As I already said, base knock back is not affected by the weight of a character. However, different characters still have different base knock back for the same move. Upon further testing I found that this seemed to be related to the fall speed of characters. With characters like Jiggly and Samus having a low base knock back and characters like Fox and Wolf having a high base knock back. My theory is that this was added to account for the increased susceptibility that fast falling characters have to combos. I also found that the amount by which the base knock back for characters differs is not the same for all moves. For weaker moves it’s the same, but for stronger moves it seems to differ a lot. To account for this I took Ike’s fully charged forward Smash as a bench mark and assigned it a value of 100 for the deviation of its base knock back per character. This number is purely arbitrary but it does allow me to make a list to compare fall speed. This gave me the following list. Again I took Mario as a benchmark, hence he has a value of “0”.
Jigglypuff -0.78
Samus -0.54
Olimar -0.47
Kirby -0.44
Lucario -0.40
Peach -0.37
Luigi -0.32
R.O.B. -0.32
Zelda -0.26
Marth -0.25
Toon Link -0.16
Ivysaur -0.16
Ness -0.12
Yoshi -0.05
Pit 0.00
Mario 0
Mr. Game & Watch 0.01
Ice Climber 0.07
Snake 0.16
Donkey Kong 0.20
Ike 0.28
Dedede 0.29
Wario 0.30
Charizard 0.33
Sonic 0.33
Pikachu 0.40
Zero Suit Samus 0.44
Link 0.46
Lucas 0.49
Diddy Kong 0.55
Meta Knight 0.68
Bowser 0.91
Ganondorf 0.91
Captain Falcon 0.92
Squirtle 1.05
Falco 1.23
Wolf 1.84
Sheik 2.21
Fox 3.41
It should be noted that these numbers shouldn’t be takes as absolute values. They show how much a character deviates from Mario. So you can’t say “Fox falls 3 times as fast as Squirtle” but you can say “The difference between Fox and Mario is 3 times larger then the difference between Squirtle and Mario”.
How much of an impact do these two values have on knock back?
As a general rule you can say that weight has far more of an impact on knock back then fall speed. For example, Jiggly falls significantly slower then Bowser and as such takes less base knock back. But in most situations she’s still fly faster because of the weight difference. The only time fall speed makes a noticeable difference is with fairly weak moves or at low percentages. As such the added knock back fast fallers get from attacks should not have much of an impact on their survivability.
The mathematical formula
For the purpose of posting this here I’ve cut out most of the math. However, I would like to include the formula for calculating knock back:
v = d * a / m + b + f * c
v = is the velocity a character has when it flies away.
d = the damage the character has after the attack
a = is the incremental knock back of a move on Mario
m = the weight of the character being hit from the list I posted
b = the base knock back of a move against Mario
f = is the value in the fall speed list above
c = is a value that determines how much the base knock back differs based on fall speed. For attacks where b is smaller then 2200 (the vast majority of moves in the game) this value is 100. For attack above 2200 it seems to vary between 70 and 170.
Other interesting facts I found while testing
First up, the percentage given in the game is not very accurate. The percentage a character has is internally tracked as a decimal number, but only displayed as a number without decimals. So a character with 90.5% will fly further then one with 90.0% even though the game will display both as having 90% damage. The same is true for moves, many moves don’t do a whole number of damage. Ike’s Forward Smash for example does roughly 32.3% damage when fully charged. Also, the game does not stop counting at 999%. So taking damage above 999% will still increase the knock back you take, even if the added damage is not shown in the game. To account for this I worked out what real damage that moves did by using it over and over on a single character in a box shaped level I made (obviously with a suicide after each attack to reset the diminishing returns) and then for all my other tests I set the starting damage with the handicap mode to ensure it was a number without decimals. This way I could calculate the exact damage after a given attack with decimals.
There is a maximum knock back a character can take, namely 80529mph. However, this takes an enormous amount of damage to reach. For example, Marth Final Smash, which is the strongest move I tested will do roughly 80000mph against a Jiggly at 300%. Many other moves won’t even reach this maximum at 999% damage. Obviously such a knock back results in instant death.
The knock back displayed is given in “Miles per hour”. However, this is quite obviously complete bull**** since the numbers don’t match up with what’s happening on the screen. A knock back of 1000mph will hardly move a character, which is clearly nonsense. However, this does not matter for the weight list I’ve derived from it since it’s based on the relative differences in knock back between different situations, not on what the absolute numbers are. My guess is that it’s simply an internal number that they’ve added a unit to too show what it represents.
Wiimotes don’t give a perfectly consistent signal. I used Wiimotes for testing because they’re wireless and it would happen fairly frequently that an attack would go of early while charging it. Which probably happens because of a break in the signal which the game interprets as the player releasing the button. However, these breaks seemed to be very short, probably only a few frames, so for anything other then charging attacks it shouldn’t be very noticeable.