FORMULAIC ai. After playing the game X hours, you realize that the AI always reacts to the move A with a move B. It's easy to use, then: you play A exactly when you need the AI to follow with B. The AI becomes "a piece of code", as you wrote. This happens to almost every game eventually, but some great games are hard to break. In HoMM3 you can block AI opponent in a castle during a siege with one weak unit - that is what we found at last. You can cheat it with separated units' attack etc. But HoMM3 AI remains the hallmark of the genre, because X was quite long. SOLUTIONs - a) insert RNG that shuffles AI behaviour a bit. It is hard to get the "a bit" right. AI behaviour can become sub-optimal or erratic, especially if "a bit" is too much. I still find the solution better than formulaic approach. b) Make AI decisions complex and intertwined to the point, that it is hard to understand the formula behind it. Well. This is THE great path of AI, really hard to do, although some complex games (Civ series) try to. c) Make AI play optimal, to the point that even formulaic means "formulaic, but hard to beat". This could actually happen with games with simple and clear rules (like MoO) but it's hard.