Wednesday, September 30, 2009

Cards with Choices

The hardest cards to program are cards that let the player choose something. Probably the most common phrase in all of Magic is “choose target creature.” This is the simplest choice that the user can make and the code for choosing a creature is simple. More complicated cards like Peel from Reality (1 U, Instant, Return target creature you control and target creature you don't control to their owners' hands.) require the input code to be specifically customized for that specific card.

My favorite cards to code are cards that don’t allow the player to choose anything like Wrath of God (destroy all creatures) or Concentrate (draw three cards). Cards that don’t have choices require less lines of code. Another classic card in this category is Soul Warden (cost:W, 1/1, Whenever another creature comes into play, you gain 1 life).

I would kill Wizards if they made Soul Warden’s ability optional, “you may gain 1 life.” But truthfully I would ignore the “may” and make the ability mandatory versus always asking the user, “Do you want to gain 1 life, yes or no?”

The cards that require the most amount of code are optional abilities, which I personally hate from a programming point of view like AEther Vial (At the beginning of your upkeep, you may put a charge counter on AEther Vial). AEther Vial is a great card but every turn the computer has to pop up a window and ask the user a question, which interrupts the flow of the game.

Random odd fact, Wizards has only printed one card with the word “vial”.


telengard said...

Heh, yeah choosing replacement abilities is the one thing I don't support (yet). Due to having an AI I just can't ask right where it's determined so to speak.

Funny when you code a game all the little fun facts you find it. :)

Forge said...

Funny when you code a game all the little fun facts you find it. :)

Well like I wrote in my blog, I didn't realize that I forgot a mana pool until I had coded Early Harvest and I was testing it, ha.

masayume said...

I think it would make sense to ask the question the first time and present these options: "yes", "no", "always", "never".
With the latter you wouldn't be nagged further as the program remembers and applies the choice made from the player.

Then it would be necessary to have a proper control in the interface that enables the player to edit these already-made-choices.

This concept is extensible also to combat options, which are often tricky to trigger.

Forge said...

I think it would make sense to ask the question the first time and present these options: "yes", "no", "always", "never".

--"Always" and "never" are very hard to program but it would be nice.

GuillermoMila said...

Don't bother with cards wich stop the flow of the game, magic is a game of patience, and you've been doing a INCREDIBLE job with Forge. I know what programming is a pain in the ass, but you have to work like a gameplay of magig, with a lot of patience. Congratulations for your efforts to make a lot of people have great moments of fun.

And completing waht "masayume" says, create options like: "this time only", "always", "no" and "never". If is too hard to programming "always" and "never", only leave "yes" and "no". Seens basic but have to work well.

I like to make a request: the game seens to be in an advantage stage, so you can work a little into the interface graphics. Just a suggestion. ;)

My regards from Brazil.

P.s. sorry about my poor English.