I understand that finite state machines (FSMs) are used very often in game AI, but I don't know much about them. Do you understand them, and have you used them in your game project? From reading this article I have a feeling that FSMs would be very amenable to object-oriented design, but I'm not entirely sure how to go about doing it. I would like to hear your thoughts on the subject.