An opponent could cross a lot of ground during one of SHADOWFRAG's short leaps. I wanted to give the person aiming at them a more manageable crossing without making the jumper hang in the air. Slowing every part of the jump would have changed the movement I was trying to keep.

I made two balance passes in the shared movement controller. Players and bots use that controller, as do the client that predicts your movement and the server that checks it. Changing the rules there kept those versions of the same action in agreement. Directional control, the brief window for accepting a jump press around landing, and the quick vertical arc all stayed in place.

Less distance in the same airtime

The second pass reduced running speed from 9 to 8 world units per second and forward leap speed from 21 to 17. World units are the game's internal distance scale. On level ground, the measured leap shortened from 9.84375 to 7.96875 units, while both versions stayed airborne for 0.46875 seconds and reached 1.24827 units high. The player landed closer to the starting point, at the same time and from the same height.

The aimed chi-jump changed in a similar way. Launched at 25 degrees, it travelled 39.2545 units, down from 50.47, with its airtime and height unchanged. I also lowered the maximum horizontal speed from 42 to 34 units per second and the extra push supplied by an air step from 4 to 3. A stationary shadow-grenade throw still covered 21 units.

These are before-and-after measurements from the October 18 test setup. They show the specific change I made: less horizontal reach, rather than a longer or lower jump. They do not establish how much better any particular player would aim.

Checking that a shorter jump still connects

Reducing reach also changes where a sequence of moves ends. I checked directional leaps, air steps and timed hopping, then combinations of chi-jumps, shadow warps, wall kicks and double-jumps. The networking checks replayed movement after delayed world updates to make sure prediction still agreed with the server. Bots needed their route previews to use the shorter reach while accounting for the height they could still gain.

The second-pass record contains 5,325 movement checks, 73,908 bot checks and 63,435 terrain checks. Those are automated assertions about behavior, not counts of players or play sessions. The movement and terrain tests also ran with sanitizers, which look for memory errors and undefined program behavior. Some archived bot stress tests used larger populations than a normal match; they do not change the game's later 64-player ceiling.

The distinction between speed, reach and airtime was useful here. I could shorten a crossing while leaving the next air step or wall kick available. Whether that made a duel feel better still needed play; the measurements and tests told me that I had changed the intended part of the movement.

Back to blogBrowse the glossary