In most fantasy games there dragons and in a few there are two headed dragons. A two headed dragon isn’t going to go very far unless both heads work together, much like a three legged race at the park. My point is that MTG Forge has two conflicting goals. One, to program as many cards as possible. Two, to have a decent AI opponent.
These two goals conflict with each other. The AI wants simple cards that are always positive. The AI can easily use a card like Giant Growth versus a situational card like Wrath of God. But as more and more cards are programmed, some of them are going to be cards that depend heavily on the particular situation. Current MTG Forge doesn’t evaluate the game situation, it just blindly plays games. So this is better than just goldfish (playing against no opponent) it doesn’t always simulate the back-and-forth action of a real game.
In a way MTG Forge has a third goal, to program the AI for each card using the least amount of code and time. Often programming the AI for a card takes as long as the card itself. Let’s use Shock for example. When should the computer play Shock?
Currently MTG Forge will use Shock if your life is under 7 (an arbitrary number) or if you have a 2/2 flyer or better. MTG Forge will never double Shock a 4/4. Each card evaluation is independent of the other cards in the computer’s hand. Having different types of AI for red-burn or green-stompy would help give the computer more personality and skill. Just having the computer play instants during combat would be an improvement.