Random Occurence/ Parallel Process

In Zork 1, there’s a thief who pops up in random rooms and steal random thing. And that is kinda elementary to code- just a if statement checking for particular values in a random number generator.

But I’ve been trying to design a new IF system and instead of having the thief as an object which is called at random times, I though about creating the thief as a parallel process to the player so that it might have it’s own primitive AI. For example, if you are in a room practising shooting, the thief will try to remain away (depending upon how many rooms sound travels) and such. I know I can do this by adding more “behavior methods” to be called in different situations but that will make the code too complex and too demanding for end user. What I was thinking was first create a paraller process, give it a preprogrammed attribute like Stealth or Psycopath and then, sit back and enjoy.
So, my question is:
Do you think it’s worth the effort or should I stick to the plain old randomisation? And if yes, can you give me some (theoretical) suggestions to improve it?

I believe in Zork I the Thief was controlled by a (simple) daemon: effectively a process that is run only once each turn. You might look at the code for the Inform 7 adaptation of Zork, although I don’t know how faithful the AI is.

Modern IF systems let you implement an NPC as an object that has a location and takes actions (moving around, etc) like the player. As Draconis said, it’s standard to write a function called once per turn to make these decisions.

If that’s not what you’re thinking of, you’ll have to explain further. IF systems don’t generally handle true multiprocessing (and if they did, it would be very hard to use, because multiprocessing sucks).

I am thinking something like that too, only creating a sort of time limit for player to respond before the daemon controlling the AI moves one step (like ATB of Final Fantasies but controlled by both the universal-time {LISP} and player’s response “speed” creating some kind of equilibrium between the two) and giving it a simple AI to give it a motive (unlike the pig in The Lost Pig who keeps on wandering in random rooms, it may follow some basic set of rule like Photophillic and Hydrophobic so that if it comes near the river, it will dart away automatically but can be “summoned” in a different room by lighting fire).
Well, thanks for replying. It seems like the standard anyway, so I’ll implement the basic idea first and see if I can improve it.