I feel it is important not to be constrained by the game engine when designing the game itself. The ideas should flow, be bounced off one another and take shape collectively. When a decision has been made then you can bend your tools to your will to make the game the best it can possibly be.
I have recently implemented something I call ‘The Director’ into the game engine. This had its roots in making cut scenes. Actors would be produced, the camera would be ‘stolen’ from the player and the scene would play out. Then all the actors would be killed (entirely to do with game-play and nothing to do with them trying to set up a Trade Union) and the game would continue with the playing field remaining unchanged, the rules would return to normal, and the camera returned to the player.
We have soft scripted a number of levels now, giving me a starting point for what I would need these actors to do. It occurred to me during creating the tools for these cut scenes that I would have to repeat a lot of what I was writing here in order for a level to play out from how we had planned it. It was at this point the director stopped having power in the cut scenes only, and started just taking overall power of the level.
So this class now directs how the levels play out. It watches the playing field, and reacts when certain conditions are met. Currently it makes no decisions and is not an AI, though certain games have gone down that road. Both Left 4 Dead games have such an entity that dynamically reacts to situations, placing zombies and special infected, that certainly provides much replay-ability.
I believe we will not require full AI direction of the levels, certainly in the campaign anyway. It is useful to be able to bend and break the rules when needed to mix the game up and make everything more interesting. On top of this I can build tutorials into the starting levels so you can learn as you play. The possibilities are endless.