I often talk about the AI aspect of MTG Forge for two reasons. One, the AI can be improved. Two, I am always looking for specific actions that will improve the AI that can be coded into the program. Just telling me that the computer plays Wrath of God badly doesn’t help. When should the computer play Wrath of God? And answering when he is losing is not the right answer. Currently the computer plays Wrath if he will destroy 2 more of his opponent’s creatures or if he is under 8 life. Obviously this solution is not perfect, but it is reasonable, and that is all I am going for.
The good news is that I’ve found a specific area that the computer can improve on. The computer could play a few spells, like removal, during his Main 1 phase and then play any other spells or creatures during his Main 2 phase. (If the creature has haste, it is played during Main 1.) Currently the computer just tries to play everything during Main 1, which gives away valuable information. Before blocking, I would always look to see what creature the computer just played and I would adjust my blocking according.
The extra good news is that I have implemented the above suggestion into currently released version of MTG Forge and it plays great. The computer attacks and then plays a creature. The results are very satisfying and the games seem more realistic. Before now it never occurred to me that some cards and abilities would be best played during the first or second Main phases. Yes, if I was playing a game of Magic I would use the card/ability during the appropriate phase but that was something that I totally overlooked when I programmed the computer. As Neal Armstrong once said, “One small step for man, one giant leap for MTG Forge.”