fps ai can be extremely easy. Just download my black hole file on the codebase and you'll realise I've only featured 5 commands for ai, and even those are easy, things like point object and stuff like that.
the opponent shooting is easy:
point object enemy,px#,py#,pz#
gosub shoot_bullet
Shooting the bullet is actually more difficult than the ai itself and it is bloody easy!
What about ducking?
if object collision (bullet,invisible-cube-around-the-enemy)>0 then..
gosub duck_bullet
Yeah, by creating invisible object around enemies, you can fix many problems and not just ai+collision.
It's amazing you're reading this, surprise... you still are.