Monday, August 9, 2010

10 Complicated Cards

Magic is has a ton of complicated cards that break the rules and Forge implements quite a few of them. Here is a random or not-so-random list. (As you may see, a number of cards start with the letter "A", hm...I wonder why? The answer is a short attention span.)

1. Adarkar Valkyrie - Her "resurrect" ability was one of the early cards that I added myself. At first I didn't think I could program the card but with a little bit of thinking (and hacking) the card works exactly as printed. (Sometimes Forge takes a few liberties and doesn't implement the card exactly as it was printed .)

2. Ageless Entity - Altering a "global effect" like "whenever you gain life" can be complicated since everything in the program has to work together.

3. Ali from Cairo - Similar to Ageless Entity, Ali modifies damage. Technically Ali modifies player damage but that is jargon for "pain in the ass to program".

4. Amulet of Vigor - Events in life are simple but when programming Magic, events can become sticky and complicated. Vigor sounds simple but when does a card become tapped? After it resolves off of the stack and before it is added to the battlefield? If you programming is off, Vigor can become a nightmare to code (and maybe it was).

5. Andradite Leech - "Black spells you cast cost B more to cast" is another example of what I like to call a "global effect", i.e. a card that modifies or changes something in the future. These types of "game changing" cards are the hardest to program. (Take for example the mythological card "Giant Rage" who gives all of your creatures haste in 3 turns AND whenever you play a red spell that is countered.)

6. Anowon, the Ruin Sage - Upkeep effects are simple if they don't allow the player a choice, such as Howling Mine. Anowon is complicated since it requires coding the AI for when the computer has to make a choice. (And the AI tries to make a good guess but will always fail in tricky situations.) Allowing the human player to make a choice is convoluted because you have to understand the Input class that Forge uses. (The Input class process all mouse input but can be hard to understand.)

7. Apocalypse Hydra - This is an X spell which I'm glad that Forge has. Hydra also has a ton of card text but at least it doesn't require any choices. Choices = headache (when it applies to programming)

8. Ardent Plea - Has both exalted and cascade, two fairly difficult effects. Exalted sounds simple to program until you try to code the AI for the computer. Cascade is even more problematical but at least it has a great effect, playing a free card.

9. Elspeth, Knight-Errant - Her ultimate effect creates an ongoing, state effect and all ongoing state effects are complicated. At least the effect is explosive and unusual.

10. Witch-Maw Nephilim - Forge has 4 nephilim and they are all convoluted and ugly. Witch-Maw likes spells and grows every time that you play a card. Additionally if he is big enough, he gains trample, which is another unique effect to code.

I don't think I've never used any nephilim, so I'm going to go build a deck around them right now, bye bye.


Anonymous said...

I really appreciate your work on forge and it gets me really excited how a lot of things currently work - really difficult things to implement on a self-judging System. So thank you for that and go on!

But despite of having a lot of fun in Single-Player-mode I just wanted to ask if you are planning to add a simple Multiplayer-Mode. I guess from the programmers side it can't be too difficult to realize. It just takes a bit of time.

Great work!

Forge said...

Even a simple multiplayer mode is a rules lawyer's nightmare since some cards work differently in multiplayer than in a regular match. Also the AI would need to be greatly improved otherwise the AI would be a blathering idiot.