Stuttersteps and how it works
7 years ago
Norway

I've not been able to find a resource where the related enemy behavior and technique is detailed. I spent a few minutes figuring this out and it has been very useful to me so it might be useful to others, as I'm sure I'm not the only one who is struggling with this.

As you might know, multiple enemies in the game will only move when you move and that you can move away from these enemies using stuttersteps. But what is actually the trigger for the movement and how often does it happen. Well, it's fairly simple, and using Bishawk you can see for yourself.

Each enemy has a wide aggro radius, but they will not start to move towards you before ~24 frames has passed since you hit that trigger (lag and spawn frames will increase this). Which is why it feels like they never stop following you after you initially enter that zone, as they didn't start moving before you got deep into their territory.

During your stay in their zone, on the point of the initial trigger after 24 frames and repeatedly every 8 frames, the game will check for a directional input. If there is an input, the enemy will move for 4 frames starting on the frame after the input.

But you might ask, how do the enemies move so smoothly, if it doesn't check for another input for another 3 frames after their movement is done? Well, because the enemy has gotten the smell of you, it will start checking for an input in 4 frames instead, but will return to 8 frames if it finds no input.

So to put this into perspective. If there's an input on the first frame it checks for inputs, the game will do a check on the 5th, 9th, 13th, 17th frame if they all have inputs. If the 5th frame has no input, the next frame will be the 13th frame. If there's no input on the 1st frame, it will check again on the 9th frame, then the 17th frame if there's no input.

What about those other frames? All 7 or 3 frames between each input check are free movement. This means, in a perfect TAS, you would not do any input on the 1st frame, then have 7 frames of movement, one frame of nothing, 7 frames of movement and so on. The enemy will never move, which could make a little fun in a TAS. Too bad we are not all perfect, so how is this useful information in RTA runs?

Because we always have to assume we'll get enemy movement at some point, our movement has to be 4 frames or less, to avoid excessive movement from enemies. With 3-5 frame delay between each input, if the previous input triggered enemy movement, the next input should happen in the safe zone. Doing that we have a tapping frequency of 7-8 movements per second, which has worked wonders for me. If you don't have the ability for that, this information can be used to find other useful ways of doing this. Remember that 4 frames is the largest amount you can safely use without getting caught by enemies much faster, and that you can use the delay between button presses to hit between each trigger.

All of this involves a single enemy on screen, what about multiple? You might've noticed that two enemies with this same behavior might move independent of each other. That is because as I said earlier, their timing starts as you enter their aggro radius. Nothing changes for movement, other than you have multiple enemies that can move on the same frame or 1-3 frames before or after the other enemies.

I hope this can be helpful for runners who are struggling or curious about this technique.

TL;DR, enemies check for your movement every 8 frames, then 4 frames if it returns true, and 8 frames if it returns false.

JSR_ and SilenceErupts like this