Is it real to make 3D collisions like in FPS?

I think of using our engine to create a 3D FPS. But there is a problem.

I want player’s character and enemies to move like in usual FPS games. I mean anything like that:

Zombie stands ahead of your character. You can’t move by pressing W but still can use ASD.

Many skeletons move to you. One of them stops to attack you and other ones don’t go through him.

I tried to use 3D collisions, 2D physics and using a box for every enemy (inspired by racing game example). But it leads to things like enemy suddenly disappearing and appering behind my character. Or enemies just go away.

Is there any way? Or I used right solution wrong? Or it’s time to study another engine?)