Monday, April 25, 2011

List of All Magic Programs

(Updated on 6/2, updated download link for Magarena)

(You can look some of the New Phyrexia cards here from Wizards official spoiler.)

I don't have anything earth-shaking to talk about today.  I thought I might try to create a comprehensive list of all computer programs that play Magic: The Gathering.  Having a comprehensive list makes it easy for a person to glance through the programs to see if any of them are interesting.  This also helps programmers who could help an existing project instead of creating a new one.  A few of these programs are mentioned in the Wikipedia entry Magic: The Gathering Video Games.

Feel free to post other programs in the comments section and I'll update this page.  If you contributed to one of these programs and would like something changed in its description, also post in the comments sections.

p.s. Creating a web page full of links is tedious and boring.  I plan to just update this webpage instead of doing anything like this again.  Hopefully this post will be helpful. :=)

Programs that let you play against the computer.

Duels of the Planeswalker (old version) which is also known as Shandalar

Download Forum - which discusses how to download and install Shandalar on modern PCs.

There is a similar but different forum on the same website that deals with updating Shandalar with new cards.  The updates are collectively called Manalink 2.0 and their forum is here.
Duels of the Planeswalkers - runs on XBox 360, Playstation 3 and Windows.  It was written using C++ and Lua.

Wikipedia Entry
Forum - that discusses how to hack the game to add more cards.
Forge - runs on Windows, Mac, Linux and is written in Java.  It has more than 7,000 cards.

Download Site
Java - in case you need to download Java
You can download the source code from the SVN 
Magarena - runs on Windows, Mac and Linux.  It is written in Java and has 900 cards.  The user interface is very nice and the AI is very good (better than Forge's AI).

Download Site

You can download the source code from here.
You can read more about Magarena's AI here.  It uses alpha-beta pruning and monte-carlo simulations.
Java - in case you need to download Java
Mage - runs on Windows and also lets you play over the internet, 1-on-1 or multiplayer.  Mage has more than 800 cards and is written in Java.

Download Site - You want to download the "bundle" which has both the client and server.
You can download the source code from here.
Java - in case you need to download Java
Wagic - was written for the Playstation Portable (PSP) but also runs on Windows, Mac, Linux, and the Nokia N900 (maemo).  Wagic's name is the "M" character turned upside down like Mario and Wario.  Wagic has 7,700 cards and is written in C++.

Download Site
You can download the source code from here.
BotArena -  Runs on Windows and has more than 8,096 cards.  It is written in C++ and is looking for programmers to help them out.  The AI is very good.

Magma - runs on Windows and has many cards.  This is sort of an amateur project but I can tell that they have spent a lot of time working on it.

Homapage - translated from Italian.
Download Site - You have to download all of the programs on these two page: page1 and page2.  I have not done this and this is unverified.

Programs that let you play against other people over the internet with rules enforcement.

Mage (see description above)
Incantus runs on Windows and Mac.  It may run on Linux, I don't know.  It has more than 8,000 cards and is written in Python.

Forum - which also servers as a download site.
You can download the source code from here.

**Programs that let you play against other people over the internet (no rules enforcement).

Magic Workstation - doesn't seem to be updated.  Its name is banned from the Wizards of the Coast forums

Forum - this is an unofficial forum but it has many helpful guides and add-ons to download
Online Playtable - runs on Windows and possibly other platforms.

Forum - which also serves as a download site

--Supports HQ (high quality card pictures)
--Multilayer duels up to 6 players
--Draft Games up to 8 players including custome cubes
--Team-Multiplayer duels (2HG, Empoeror)
--Full support for Momir Basic
--Sealed Deck Generator
--100% stability (no random disconnects)
--Replay function
--Automatic dice roll and simultaneous mulligans
Cockatrice runs on Windows, Mac, Linux and is client-server based to prevent any kind of cheating, though it supports single-player games without a network interface as well.  Cockatrice can be used for playtesting purposes, but it is not ready for online tournaments yet due to a lack of deck list security and some other important functions. We aim to resolve these issues shortly.

Download Site - you can also get the C++ source code from here also

Monday, April 18, 2011

Mage - Play Against the AI or Other Human Players

Having this blog is interesting because it is sort of the "hub" (central location) for all things concerning Magic and computer programming.  I'm always impressed with other Magic projects and I wanted to introduce you to Mage which stands for "Magic, Another Game Engine".

The user interface has a little bit more eye candy than Forge and Mage currently has more than 800 cards.  Mage is written in Java and for some reason many Magic projects use Java, which is my favorite language.  (Java isn't perfect but what language is?)

Mage has a number of good features.  The best one is that the AI is challenging and much better than Forge's.  Mage uses min-max which should enable the AI to make fairly smart decisions.  Mage also lets you play against other people over the Internet with rules enforcement, that way you can test you insidious deck against the AI and then pummel other earthlings via the Internet (that's what the i-net was invented for right?).

Some people love multiplayer Magic but so far no other program other than Magic Online implemented it because it was too complicated.  The good news is that Mage supports multiplayer up to 8 players over the internet.  This is very impresive because more players means more rules interactions and some cards work a little bit differently in multiplayer.  The only limitation is that you can't play against the AI in multiplayer.

Sealed and booster draft are always fun and Mage supports both.  You can play up to 8 players in either format.  The "over the top" feature is that you can play against other players or AI opponents in these two modes, so you can hone your skills in secret before crushing your friends.

Other goodies include a visual deck editor and a collection viewer that lets you flip through Mage's card collection.

Deck Editor

Collection Viewer

Mage (Windows, 17 MB) version 0.7.1 - This includes both the client and server.  You need both parts even if you only play against the AI. 

To download the card images click on the "Images" button in the upper-right corner.  You will also want the mana symbols, so also click on "Symbols", to download them.

Mage FAQ - Answers some common questions.

Mage Forum - Where you can ask more questions. - You must have a recent version of Java (version 6 update 10 or greater).

Thanks to the Mage developers: BetaSteward, Nantuko84, Eugen.Rivniy,

As always, thanks for reading this crazy guy's blog,

Mage is written in Java and almost runs on Macintosh.  There seems to be a problem with the file path and the developers don't have a Mac in order to test and fix the problem.  You can get Mage's source from here which uses the Mercurial version control system.

Friday, April 8, 2011

New Version

(Doesn’t the new card art seem like the scariest yet.  I just love Magic.  I don’t understand how it can keep getting better and better.)

Playing a new version of Forge is great.  The sun is brighter.  Life seems easy and gaming….well games just don’t get any better than this.  Forge now has 7,662 cards, which means more than 1,000 new cards.  (1,000 new cards is crazy, really, do these guys ever sleep?)

Some of the new cards include:

Deus of Calamity (6/6 trample) which costs 5 green or red mana, “Whenever Deus of Calamity deals 6 or more damage to an opponent, destroy target land that player controls.” 

Wild Research (2R, enchantment) for 1W you can search your library for an enchantment and put it in your hand and for 1U you can grab an instant from your library and put it in your hand but you have to discard a card at random after.

Tolarian Entrancer (1U, 1/1) “Whenever Tolarian Entrancer becomes blocked by a creature, gain control of that creature at end of combat.”  He is almost unblockable but not quite.  At least he will make your opponent sweat during combat.

Symbiotic Deployment (2G, enchantment) “Skip your draw step.  1, tap two untapped creatures you control: Draw a card”  Do this prevents you from drawing any cards but you might be able to draw more than 1 card per turn.

Puncture Blast (2R, instant) “Wither (This deals damage to creatures in the form of -1/-1 counters.)
Puncture Blast deals 3 damage to target creature or player.”  This is a great card which will make red mages very happy and everybody else very unhappy.  I love the flavor text “Gnarltrunk didn't remember having quite that many knotholes.

Chronosavant (5W, 5/5) has the activated ability “1W: Return Chronosavant from your graveyard to the battlefield tapped. You skip your next turn.”  How much does a 5/5 mean to you?

There are litteraly tons of other creatures and these are just a few, random samples. 

Thanks for making Forge so popular,

The decks that start with "AI" means that the computer should be able to use those decks efficiently and should provide the most challenge.

Forge (13 MB) for Windows and Linux - this is the 04/01 version because that it was when it was first released on the forums 

Forge (8 MB) for Macintosh - I think this applies but maybe it doesn't forge.command has the correct permissions, if forge.command is not used there will be a Java error

Download - Card Pictures (160 MB)
These are most of the low-quality (LQ) card pictures.  You can download the rest of the LQ card pictures or the high-quality (HQ) card pictures using the menu on the New Game screen.

Many people helped with this version. A special thank you goes out to them:

Dennis Bergkamp
Rob Cashwalker
Friar Sol
Jeff Wadsworth
Chris H

Monday, April 4, 2011

Forge Gui - Harder Than It Looks

I'm still working furiously on a new graphic user interface (gui) for Forge but progress has been very, very slow.  I'm using someone else's videogame library so I don't have to write anything from scratch.

Last week I started with three game libraries and picked the smallest one, named Fly, to use.  Fly seemed easy to use and had some documentation but I couldn't get it to load images.  Fly tries to make it "easy" but it ends up not working.  I think it tries to uses reflection or some advance Java stuff.  (Fly didn't come with the source code so I couldn't try to fix it.  I thought about decompiling it but I just tried the next videogame library.)

Ucigame was my next choice.  (And no, I don't know what it stands for.)  It had more documentation than Fly as well as 12 short demos programs which showed how various stuff works.  So step 1 is loading an image and showing it on the screen.  Check, thankfully Ucigame had no problems there. 

So I went on and coded a few more things before I found Ucigame's game breaking problem.  You can't use "for" loops, or any other kind of loops, in the draw() method.  At first I thought I could "code around it" and ignore the problem but I couldn't.  The more I coded the more I thought that this was a serious bug.  I presume it had something to do with a threading problem, where a computer runs two programs at the same time, but I have no idea.  Coding threads is always a problem and that is why I was using someone else's code in the first place.

OK, I was down to my last Java videogame library GTGE, which stands for "Golden T Game Engine".  The slightly odd name stems from the fact that English is not the author's first language.  The good news is that GTGE can load images and use "for" loops in the draw() method.  The bad news is that nothing else is done.  I felt like I didn't do any "real" programming this week because I had to spend a few hours sorting through the various game libraries.  Thankfully GTGE seems pretty good and I'll deal with any problems that it has. 

A good game library (API) tries to help you out but doesn't restrict you either, which is a hard line to walk. 

Tanks for reading,

--Yes, "tanks" is an intentionally misspelled. 

--"API" stands for "application programming interface" and is programming talk for a code library that someone else wrote.  The library tends to have a specific goal like "get web pages over the Internet" or "make writing videogames easier".

--I didn't have any humor in this column so feel free to think of a joke about exploding chickens.  :=)