I am using my own state machine for my AI in my city management game, it works fairly well. I uses a very simple interface:
public interface IState { int Id {