What do you think of enemies that can block or dodge your attacks?
It can be kind of tricky to get this right. Dodging especially. Like, the question is obviously, when should enemies dodge? Should they dodge when you attack? How often? If they only dodge right when you attack, then the dodge is kind of guaranteed, but also kind of like, “Okay, we feel like you shouldn’t get damage this hit because we felt like it, rolled some dice and you didn’t come up lucky”. So for all effective purposes, sometimes your hits just don’t deal damage. This is lame naturally, but this is how dodges in say Dark Messiah, and God Hand work as well as maybe a few other games. It does from a superficial standpoint make the enemies look more intelligent however.
The Souls games have enemies that can dodge too, but it is a randomly utilized part of their moveset rather than something they choose to do in reaction to the player. So they can dodge at bad times or good times and their dodges can be punished.
Curse of Issyos did a similar thing to this with blocking (look up footage and you’re bound to see it). Many enemies have shields that can block you, and when you hit them it’s decided randomly whether they are gonna block or not, so it’s as if they have way more health than they’re actually supposed to have. Sometimes you kill an enemy in 2 hits, sometimes it can take like 10 even though the enemy only has like 2 health. This is total nonsense.
Halo 1 did a SUPER clever thing here. They have enemies that dodge out of the way of your bullets, but they only do it in response to you successfully shooting them first, and they’re vulnerable for the entire dodge. So rather than enemies just deciding to dodge a bullet right as you shoot, they’ll dodge after being shot a little, so your first shot is always successful, and then you have this minigame of trying to trace them as they dodge.
Souls again has the correct solution on blocking here, enemies are programmed to block for periods of time or when they’re not attacking, and you’re given anti-block options like kicking and usually get a ton of damage if you do this successfully.
Basically, make blocking and dodging behaviors consistent and predictable, and give players a way to counter them.