MTG Forge version 2 is just gigantic so I have been trying to figure out what is the most important feature that version 2 will have that version 1 doesn’t? The two main contenders are more cards and a better AI. Hopefully version 2 will have both more cards and a better AI but sometimes you have to make difficult choices.
Having more cards is a fairly simple. Cards could be programmed using text instead of Java. The targeting and resolve code could be separated into separate blocks of code and used over and over again. (Currently much of the card code is copy and pasted.)
Implementing a better AI could be at odds with having more cards. Improving the AI might hinder other parts of the program since the AI influences everything. Having a better AI might mean having fewer cards. (And when I say “fewer cards” I mean having the current number of cards which is about 1,600 instead of 5,000.)
The AI is really interesting so I’m going to work on it first. I’m going to get a few cards working and see how much better I can make the AI. I know the AI could really improve the basic creature combat but I’m not sure how well the AI will handle combat in a full-blown game of Magic with activated abilities and instants.
I’m hoping that the AI will be very competitive and will help you improve as a Magic player. (Let’s also hope that I can find a good Java implementation of the alpha-beta algorithm.)
I tried using Google for about 15 minutes to find a good Java alpha-beta algorithm but I didn't have any luck. If you have any ideas please let me know, thanks.
I think I found a good implementation by downloading the source code from a Java algorithm book. I would like to find an optimized version though.