Monday, February 28, 2011

New Version

I know what you are thinking, “Why doesn’t Forge have its own domain name and website.”  The good news is that Forge is now parked at  For now it only mirrors this blog but it may have different content in the future.  (There are hints of a global quest leaderboard but who knows what the future brings.)

New month = new version.  (Well…close to a new month.)  Forge has 979 new cards and a grand total of 6,974 cards.  With almost 1,000 new cards in a month, the developers have really done a ton of work.  Using the nice deck editor filter I can see that Forge implements 133 cards from Mirrodin Besieged, which is very cool.

The great stuff is always the new cards, so let’s get this party started.  Brass Squire (cost: 3, 1/3) – “Tap: Attach target Equipment you control to target creature you control” which is a great way to move expensive equipment around.  Consumptive Goo (cost: BB, 1/1) is a pretty cool creature to have around, it kills creatures and grows bigger all at the same time, “2BB: Target creature gets -1/-1 until end of turn. Put a +1/+1 counter on Consumptive Goo.”  We know that green mages hate burn spells and with Dense Foliage (2G, enchantment, “Creatures can't be the targets of spells”) you can say goodbye to Shock and Lighting Bolt

Duergar Mine-Captain (2 R/W, 1/1) has an untap ability that gives your attacking creatures +1/+0.  I love untap abilities because they are so unusual.  Flameshot (3R, sorcery) lets you deal 3 damage to 1, 2 or 3 creatures.  3R seems expensive for only 3 damage but Flameshot has an alternate cost of discarding a Mountain which is a great bargain.  Ghor-Clan Savage (3GG, 5/5) seems like a regular, hulky green monster but it has Bloodthirst 3, which means when Clan Savage is played and your opponent was damaged this turn, it gets three +1/+1 counters on it, turning it into a real green hulk at 8/8.

For a complete list of new cards click here and in the first post, scroll down to “Added many cards, including” and click “Open”.

Download (Windows, Linux) - Forge (11 MB)
Requires Java and takes about 3 minutes to unzip since it keeps each card in a separate file, so 7,000 cards = 7,000 files.  This is the 02/19 version because that is when it was released on the forum.

Download (Mac, compressed with bz2)
Forge (11 MB) - forge.command has the correct permissions, if forge.command is not used there will be a Java error. For more info, post a question on the forum.

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.

Is announcing a new version each month too often?  Or should I post a new version every 2 months?  Even I have a hard time keeping up to date sometimes.  The rule of thumb is that more users = more time between updates, which is why Word is updated only once a year.  (Of course this question does not apply to people who download the latest version from the forums directly. )

Ideally Forge would have an "update" button so you wouldn't have to move your decks or card pictures but c'est la vie (oh well).  If Forge was perfect, it would have never been written, much like Forge 2.

Thursday, February 24, 2011

Quoted in Wired

I don't know if any of you read Wired but it is a great mashup of computers and pop culture. I got tired of reading PC World and this is the only computer magazine I get. Plus it's super cheap, only $12 for 12 issues.

Wired's main article 2 months ago was about AI, so I wrote a short quip and they happen to print it. In the March issue with the gray factory picture on the cover, p. 19
Tim Rares complained, "You missed the best application of artificial intelligence: videogames. Without great opponents there cannot be great victory. The advances in AI make Need For Speed and Madden more fun to play. 
Tim Rares is a combination of my real and online nom de plume. :)

Additionally Wired mentions the TCG "Race for the Galaxy" on p.76. You can play a computerized version against the AI using this program.

Wololo said,
You've proven yourself that you could code a MTG engine. In my position, I would now either move on to something new, or keep improving/refactoring the exiting.
And I do agree with this.  New = fun.  On a side note I'm learning Clojure, a Lisp-like language that runs on the Java Virtual Machine.  Clojure can use Java classes and likewise, Java can use Clojure.  Clojure's name comes from "Java" + "closure".

"To iterate is human, to recurse divine."  Random computer quote for coders.  It's sort of a joke but too hard to explain. 

By the way, Wololo wrote his own MTG engine called Wagic for the PSP and Windows.  Now you can use the mouse and you should try it out!

Tuesday, February 22, 2011

I'm Still Here

(This is in response to the comments about my previous post.)

Don't worry, I'm not going anywhere.  For the last 2 years I've only written this blog and let other people do the coding.  Thankfully there are other people who want to do the coding and those guys have been phenomenal.

I"m looking for a real-world job and I'm thinking about announcing my real name on this blog in order to generate a few leads.  I just created a LinkedIn page and I'm thinking about creating a Facebook page.  (LinkedIn is a business-oriented social network.)

I've never coded professionally but I do have a bachelor's degree in computers, information science, from a state university.  Although I'm not an expert programmer but I do enjoy coding.

I still might try to "computerize" an old TCG like Star Trek, dot Hack, or Inuyasha and see how it sells for $10.  (I would get the parenting company's authorization before I would sell it.)

Monday, February 21, 2011

Forge 2 and Creating a TCG

This is sort of a continuation of my previous post.

I'm not sure why I can't get started on Forge 2.  I wrote the Forge 1 and the first 1,100 cards all by myself.  I wasn't writing it for other people or to annoy Wizards or for fame and fortune.  I wrote Forge because I wanted to.  While this sounds incredible self-righteous, truthfully you have to do things in life because you want to and not because other people want you do.  (When you do things that other people want you to, it is called work and they pay you.)

Currently my real life is a little random.  Like all respectable adults everywhere I need to find a job.  I've interviewed at a couple of computer places but none of them wanted to talk about Forge at all.  They didn't care how many lines it was or the number of times it was downloaded.  Obviously I enjoy Magic and other card games but it is difficult to translate that passion in money. 

I've seriously thought about writing Forge 2 and once it has 200 or so cards, I could try selling it for $5 apiece.  But the more I think about it, my conscience just won't let me.  Maybe selling Forge 2 (or even Forge 1) is legal but it seems too close to stealing.  One of the alternatives is to program a dead, forgotten trading card game (TCG) and sell it. 

Another option I have is to write a program like Forge for an existing TCG and become partners with the publishing company.  I recently found a new TCG called Wizard of Oz with all new artwork or I could do a computer version of Ascension: Chronicle of the Godslayer and add on a quest mode.  Of course the user interface and AI would have to be much better than Forge but I think I could accomplish that.

Ideally I could create my own TCG so I could "computerize" it and sell it for $5 or $10.  Obviously I have no idea how to really create my own TCG.  Wizards says that only publish 1% of all of the cards created for a set, which means that many cards never see the light of day.  I think it would be cool to mash together Magic's and Marvel/DC VS rules into one game.  I don't really know would this be legal but if I stole the same ideas from both games, the resulting TCG would be vastly different from either game. 

On a side note, it would be cool to have a Marvel/DC VS videogame that had all 2,000 or so cards.  The user interface could use some of the great comic art and everybody likes to use their favorite superhero.  Version 1 could let you play against the computer but the AI would be much better than Forge's.  Version 2 could be similar to Magic Online.  And I do know that there was a videogame and an online game but both of them tanked.  I blame the weird user interface that didn't have a cancel button, no kidding.  If you accidentally clicked on a card, you had to play it, even if the card helped your opponent.

So if I sound a little bit lost, well I am.  I'm sure that I'm not the only one on this swirling blue marble.

Keep on forging,

Monday, February 14, 2011

Forge 2.0 - The Best Program Never Written

Forge 2 is vaporware. I've probably started it 5 times using Python and Java. I know what to do better (like fixing CardFactory) but it is just a lot of code to write.

CardFactory is the biggest thing I would change. Cutting and pasting code is a horrible practice and the card code could be much easier to read. Cards should be created from plain text like below. Shock and Prodigal Pyromancer could use the same target and resolve code.

Using the same code for instants/sorceries and activated abilities would be a huge leap forward. (Maybe the same code could be used for static abilities, who knows. It depends on the specific implementation.) In retrospect I think I could have used
Object.clone() to create new card objects.

Rules are the biggest challenge (of course). I would use a "big object" to implement all of Magic's rules in one place. While big objects should usually be avoided, in Magic anything can change anything else, so it is best to put everything into one large object.

The advantages I think would be huge. At first the Rules object could be simple. As more cards are added Rules could become more complicated. In order for Rules to work it has to be given all of the information about the game (which card produced which mana, did you play a red spell this turn, etc..) which would be challenging.

Putting all of the rules into one big object sounds bad until you consider the alternative: sticking the rules in a bunch of different, scattered objects which Forge currently does.

Even if Forge 2 only had these code improvements and the AI played the same, I think it could implement 95% of all Magic cards in existence. Also I think that Forge 2 should implement whole sets and not random cards. Implementing random cards is ok but whole sets would be more fun to use.

Theoretically if I got Forge 2 working with just a few cards, like the white cards from M11, I could release it and let other people do the rest. I just need to build Forge 2's skeleton which is easier said than done.

I'm not sure why working on Forge 2 feels so wrong. Maybe I'm happy with version 1 (and letting other people do all of the hard work). Maybe I'm afraid that I'll fail. Maybe I'm afraid that Forge 2 would not live up to my hype because at first, Forge 2 would only have 20 cards and it would not be very fun.

Like any questionable endeavor, I'm not sure that the work that I would put into Forge 2 would pay off.



If Forge 2 used plaintext for the cards, people could easily add their own custom cards and even construct whole new sets. Below are just a few sample cards. I'm sure everybody would implement their version of "plaintext Magic cards" differently.

When I showed this before many people commented that the "Text:" field seemed unnecessary and could be generated from the other information. Maybe it could but since Magic is so complicated with more than 15,000 cards, I would rather not guess and just include an extra field. Personally I try to make the parsing code as simple as possible in order to reduce the possibility of bugs.


Text: Shock deals 2 damage to target creature or player.
Target: creature or player
Resolve: damage target creature or player: 2

Prodigal Pyromancer
Creature Human Wizard

Activated Ability
Text: tap: Prodigal Pyromancer deals 1 damage to target creature or player.
Target: creature or player
Cost: tap
Resolve: damage target creature or player: 1

Venerable Monk
Creature Monk

Triggered Ability
Text: When Venerable Monk comes into play, you gain 2 life.
Trigger: comes into play
Resolve: gain life – you: 2

Holy Strength
Enchant Creature
Static Ability
Text: Enchanted creature gets +1/+2.
Effect: enchanted creature gets: +1/+2

Glorious Anthem

Static Ability
Text: Creatures you control get +1/+1.
Effect: your creatures get: +1/+1

Monday, February 7, 2011

Forge's Biggest Flaw

Two weeks ago Psycho X left this comment on my blog, "The reasons I chose this program over the others is it's ease of use, ability to play solo against a computer controlled opponent, and also to play decks that I have constructed when I get whim to play and have no live person to play against. The former two I have been able to do, but the latter I keep running into a block, as not all the cards I use in my own deck are available to use in this program."

I understand where he is coming from but Forge is not a playtesting tool.  You can build many decks with Forge but you probably won't be able to build copy a pre-built deck.  Forge has many cards but inevitably it will be missing a few.

Last month in GamePro magazine the director for Epic Mickey was irritated since people were comparing his videogame to Mario.  He insisted that he wasn't trying to make a "Mario killer" but a game that had different action elements like being able to draw or erase any part of the background.  This is similar to how I feel about Forge.   

Many people understand that Forge won't have all of their favorite cards.  I know some people see this as a "flaw" but it is just a fact of life.  Forge doesn't have all of the cards in standard and probably never will since standard includes so many cards because Forge is a volunteer project.  Many people have spent more than 100 hours programming Forge, myself included, and some of these people are still putting in more hours.  It may be hard to realize but Forge is a very unique program.

Nowhere else can you play a TCG with 6,000 cards against the computer and while Forge probably won't have all of your favorite cards, it will have a few of them.

Keep on forging,

Question of the Day:
What is your favorite card in Forge?  Mine is probably Steward of Valeron.  He is a simple card but I enjoy using him.

--Forge isn't totally unique, there is Wagic, which has 6,700 cards.  It is designed to work on a PSP but it can run on Windows, now with mouse support! Wagic Homepage

--Next Monday I plant to write on Forge 2.0 - the greatest program never written.