What's the best way to move npcs?

I’m making a first person game with 2D characters in a 3D environment like classic DOOM and can’t seem to find a good way to move my enemies/npcs in the world.

Their movement patterns are simple so at first I was at first just using SetActorLocation for them but with that I’m not being able to check for collisions or use any kind of physics (if there’s a gap for instance, the character will just walk over it). I tried implementing my own collision check but it doesn’t work very well so I decided to try to use some builtin function.

I think navmeshes and AI might be too complex for this game so I was trying to implement my own MovementComponent but it’s not going very well, the enemies in the game are all inherited from APawn but all the tutorials and info I can find are for ACharacter and for player input which I don’t need.

Tried using SetPhysicsLinearVelocity and AddImpulse to the Collision Component of my pawns and they don’t seem to be doing any effect.

Thanks.

I think navmeshes and AI might be too complex for this game so I was trying to implement my own MovementComponent but it’s not going very well

I really don’t understand this reasoning. With using navmesh it’s a matter of dropping it in the level, changing the size to fit everywhere they go and calling move to on the AI controller with a location or actor. That’s a lot easier than implementing it yourself.

Also you can use modifiers to allow AI driven characters to jump off ledges and such.

Yeah, in the end using navmeshs was the best thing to do. Still required some work but everything is working now.