Spreadsheet of the data.
No difference between Lee/Violet and Kuma/Panda.
- Practice mode, vs bot of same character
- Bot set to reset in grounded state, to prevent backsway
- Reset position, and measure the starting distance at a fixed point in the idle cycle
- For 0 ≤ n < ~17, use a macro to:
- Reset position
- Backdash 5 times by inputting b~n~b,d all 1 frame apart, with an extra n frames before pressing d
- Measure the distance at the fixed point in the idle cycle
The macro being frame precise is important. Naive macros simply make a sleep call for the amount of time you want the interval between two inputs to be, but that doesn’t work very well.
The correct approach is to take a performance counter—which acts as a monotonic clock—at the start, then sleep in the smallest increments possible (on Windows the highest resolution sleep you get is ~1ms). After each sleep you check if the current time is the right time for the next input to come, and send the input when it is.
Fixed point in idle cycle
Using the average would also work, but it’s pointless. As long as the measurement taken is consistent, it does the job, because we’re interested in the change of this measurement.
Taking the average, while pointless at worst, also has some pitfalls:
- A lot of characters barely even have 1 stable point in their idle cycle to take a measurement, so there’s a greater chance of making an error when trying to take the min and max.
- The most stable point in the idle cycle is not necessarily the min or the max.
- Doing any kind of calculation on experimental data amplifies measurement errors. Since we only have 2 decimal places, that’s not something we want to do for no reason.
The quality of a backdash has two key aspects:
- How evasive it is
- How much distance it travels with KBD
These are not always the same.
For one, a few characters, most notably Zafina and Alisa—and to a lesser extent Kazumi—are much faster in the first few frames than backdashes that cover a similar total distance. This makes them better at evading moves than simply the total distance of the dash would indicate.
Another aspect to consider is that KBD distance is affected by the way idle animations interact with the dash animation. For some characters, especially Eddy and Lars, this makes a huge difference:
With 0 frame backdashes, Eddy gains a huge amount of distance. The reason is visible in a regular speed KBD if you look at how his feet shuffle. So despite having a low tier backdash, he has the best KBD.
Conversely, Lars loses some distance. So on top of already having a low tier backdash, he ends up with amongst the worst KBD in the game.
The other aspect to consider is at what point the dash is fast. This is more complicated.
Creating tiers and groups
Looking at the velocity data, it’s obvious that a lot of characters have the same backdash. That is, the speeds are all the same at every point—minus some experimental error—except for frame 0, which is affected by the idle animation. (It affects everyone, not just Eddy and Lars.)
But just looking at the numbers and seeing that they line up isn’t very rigorous.
To make it easier to form groups, we need some numbers that summarise how the data changes over time, i.e. a regression. And for that we first need to have an idea of what kind of curve we’re dealing with. Here’s Kazuya’s distance data:
The data forms an S-shaped curve. To find a curve like that, we need a cubic regression.
However, using the full data probably won’t give the best results, because the last few data points taper off quite a lot. Cubic regressions work better when the curve is more symmetrical. Those last few data points aren’t really adding anything, so we don’t use those.
What we end up with is 4 numbers that define the shape of the curve that best fits the data.
- The first number is the constant coefficient. It approximates to how much the idle animation interacts with the backdash animation. This is what we’re trying to get rid of, so we ignore it.
- The second number is the linear coefficient. It approximates to the initial speed of the backdash.
- The third number is the quadratic coefficient. It approximates to how quickly the backdash speeds up.
- The forth number is the cubic coefficient. It approximates to how quickly the backdash slows down.
These numbers make it a lot easier to find groupings. For the most part, the groupings are very obvious from here.
As for ordering the groups themselves, a judgment call has to be made. How much do you weigh early evasiveness vs. later evasiveness? When it’s close or rather unbalanced, there isn’t any great answer. What I decided on was the following weights:
- 3x for frame 3
- 2x for frame 5
- 1x for frame 8
These add up to give the backdash an evasiveness score. Now every curve has a single number to sort the groups by.
From there, the tiers are pretty obvious. Whenever there’s a large jump in evasiveness score between groups, a new tier is formed.
The main area where things are uncertain is if C tier should be split in two at some point.
C tier spans a decent range of evasiveness scores, but there’s no large jump between groups—and most of the groups have some overlap as well. Since the span of scores isn’t so large to be misleading, I decided to keep it as is.
How long should a backdash be for KBD?
For the graph, we need to decide on what length of KBD to use for the y-axis. There’s no strictly correct answer.
For most characters, frame 13 has a speed near 0.02. After that, the remaining 3–5 frames give very little. Notable exceptions are Lars, who gets more on frame 14 than frame 13; and Alisa, who still maintains speed up to frame 16.
For a player who takes 10 frames to input d/b,b,N,b, if they do 13 frame backdashes, they’re doing a backdash every 23 frames. The average KBD distance is 0.69, so they’ll have an average speed of about 0.03 per frame.
If they instead do 12 frame backdashes, they’re doing one every 22 frames, and the KBD distance is now about 0.67. The 0.02 units in the 13th frame is well below the average. So there’s a slight improvement in average speed by doing 12 or 11 frame backdashes.
But average speed isn’t everything. Average distance also matters. Note that almost half of your time in KBD is spent not backdashing, but rather doing the cancel. A 12 frame backdash is 0.02 units worse than a 13 frame one for the entire duration of the first cancel. It’s only when the second dash gets started that the average speed gain gets cashed in.
So if your opponent is likely to have active frames during the first 22 frames of your KBD—which is pretty likely—you’d be better off going with a 13 frame backdash. It’s a good default.
Still, there’s a good argument for going down to 12 or 11 frames. If you have a fast and precise KBD, and if you’re good recognising when the dash you’re in needs that little bit extra, then it’s probably worth it.
And keep in mind these numbers are for a 10 frame cancel—which is quite fast. Make sure you measure your cancel speed before tightening up the backdash.
Some characters’ backdashes can also change things:
- Eddy’s backdash—getting a massive boost from the cancel itself—should be cancelled more often
- Alisa, Kazumi, and especially Zafina frontload more of their speed than others, so they’re likely worth cancelling more often
- Fahkumram, Marduk, Miguel, Dragonuv, and to some extent Bob are fast enough overall that they might be worth cancelling more often
- etc. for the next best KBD distances
There’s no one size fits all answer, but 13 frames is a good default.