Magarena is a great, great program. It lets you play Magic against the computer and has almost 2,000 cards. The outstanding feature of Magarena is that the AI is as smart a human opponent. The AI will punish you for mistakes and will play unexpected instants during combat. While Forge’s AI is a nice stroll through the forest, Magarena feels more like all-out war. You can also scale back the AI and limit the time that is had to “think ahead” to only a couple of seconds which makes the AI good but not great.
Magarena also has a great user interface which is skinnable and supports different themes. The cards are artfully displayed so you can easily glance at your hand or the battlefield and see everything. Combat is beautifully handled with a separate combat mode that graphically shows which creatures are attacking and blocking.
Magarena also highlights the cards in your hand that you can play and if you double-click, it has an auto-pay feature. In case you made a mistake, it even has a fabulous undo button. Magarena also highlights cards that have an activated ability that you can use. Also when attacking and blocking, Magarena highlights which creatures you can attack with and block.
Magarena lets you choose between a cheating or non-cheating AI. The difference is that the cheating AI can see the cards in your hand. I randomly play against both cheating and non-cheating opponents and I cannot see a discernable difference. Basically the cheating AI is a little bit better than the non-cheating.
Magarena has a difficult (even grueling) AI and a powerful, candy-covered user interface.
Magarena-1.21.zip (10 MB) (Windows,Linux)
Magarena-1.21.app.zip (10 MB) (Mac)
Just a random programmer,
--Magarena is written in Java, which I think is very cool. Java (can be) great.
--If I understand Magarena’s docs, the strongest AI is the “monte carlo (cheat)” option. This algorithm is very sophisticated. As I understand monte carlo, it plays many thousands of games using random moves and then chooses the move (branch) that generates the best outcome for the AI and the worst outcome for the opponent. Easy to explain but hard to code.