Firstly with movment: We want simulated movment which looks quite random right? SO a kinda of roaming feature. Fine. Its much the same as usual, the ai finds a path dictated by nodes, sets out on it and this can be simply looped. So at this basic level we have a bot that will inevitably just run in a circle that you have dictated. The random roaming is simply a matter of dictating a range which the bot can stray from the nodes, it will follow the nodes, just as long as it keeps within a distance of them.
I'm not sure if a strict path is even required at this point, could you not just have nodes that a bot will choose at random home in on and then target a new node and repeat?
This is just basic movment and such, when a player is sighted the bot locks on and follows the player until view is obstructed, the lock is broken, and the random node selection begins again.
I'm not sure how players are handled by npc's at this point, but it seems fairly dull, as in the bot selects on randomly and foillows. The thieves, assassins and general cuththroats at this point are out of business. You cant sneak up on a bot with a sensory radius. A simple way for things like this to work is just gibve the bots a direct line of sight, one on which they will definatly lock to, and then a perifrial cone of view, one which they might just ignore. Makes stealth alot better no? Well, actually this depends on the whole attacking doesnt start until bot is facing you thing. Which is annoying to say the least. But thats a new and obviouse topic.