I started Forge, which is an open-source, free project that lets you play Magic: The Gathering against the computer. Currently other people are updating Forge and there will be no more posts to this blog.

Monday, September 1, 2008

New Version, New Gui

The new version of MTG Forge has so many new features I’m not sure where to start at. For starters it has 100 new cards, mostly pump creatures and spells like Looming Shade. I’ve fixed a ton of small things that were wrong with the beta. I also included a brief history of Magic’s creation and early beginnings that I really enjoyed reading.

The user interface has been updated and now shows a miniature picture of the card instead of those ugly text boxes. The card pictures also “tap” so MTG Forge looks like a real game of Magic.

The deck editor has 2 new options. The “New Deck – Generate Constructed Deck” creates a random two color deck. This uses the same code as the “Generate Deck” on the New Game screen.

The second new option is “New Deck – Generate Random Constructed Cardpool”. This is similar to sealed and it gives you 75 random cards from all of the cards available. Unfortunately after you save you deck and try to edit it later, your old cardpool is erased and you are shown all of the cards. My idea for this option was to let players use cards that they don’t usually use, like to play with less powerful cards. Everyone should use Ebony Rhino sometime in their life. (costs 7, 4/5, trample) He may not be the best but at least he is fun.

I added a new keyword that cards.txt recognizes, it looks like this Pump U: 1/1 The mana cost has to be a single character and the numbers to pump the attack and defense have to be single characters also. Here are some other examples, Pump 2: 0/1, Pump 6: 2/2, Pump: B 1/2. I’ve probably all of the creatures that have pump.

I wanted to thank all the users that sent me their improvements. Nantuko updated the user interface. Rob Cashwalker coded 70 or so cards, including some of my favorites like Vampire Bats and Carrion Ants. Another reader cured MTG Forge so it doesn’t slow and have to be restarted. He fixed the Phase object and I am very impressed with his work.

You can download the new version of MTG Forge from here. To save your decks, copy the file "all-decks2"

Hopefully MTG Forge doesn’t have any major bugs but it still has many small ones.

18 comments:

Mr.Chaos, unofficial beta tester.
said...

I love the new look and feel of the game!This now is the halfway point between the first version of MTG Forge and the upcoming all new V2.Seeing the actual cards on the table and see them "tap" makes it feel even closer to the actual paper game.

This probably is as good as it will get with the current version.For more drastic improvements, like moving cards freely and a better layout, we need to wait for V2.

I am very happy with the new version and at the same time, look forward to what can be done with V2.For now, MTG Forge is a very enjoyable way to play a few quick games of magic!

Oh, my elves deck does not like shadow creatures that you can pump!But as long as my Wellwisher survives, so will I!

It's a really fun game; there's just the right amount of difficulty to make you really concentrate to get a win and appreciate a hard fought victory; the interface is getting better all the time (I can't wait to see v2.0!).

Personally I feel that MTG has two equally important parts - the game AND the deck building. Personally, I prefer playing the game to building decks. So the random deck feature is perfect for me!

Now I insist you add multi-player support so that you can play random decks against human opponents. That, to me, would be the best magic game ever :)

(I'm only jealous because I never got round to writing the forge for myself! :)

The other night, I was playing a game, and Radiant, Archangel was shown to be a 4/5... with two flyers in play... should've been a 5/5.

I have also noticed that nearly every random deck the computer has played has been white and something else. Most often, W/B.

I like the way the pump keyword works, but I think it's too limited the way it's coded right now. I had submitted a ton of code to handle those cards completely by code, which wasn't ideal, but it would work. I started to edit the code for it, renaming Pump to PTPump for simple p/t changing. Then I made KPump for adding keywords. And logically, PTKPump for pumping the p/t and adding the keyword. The reasoning being that they require different parsing and wording of the ability descriptions. Plus, they'll be able to handle "+" or "-" and mana costs of more than a single character.

Then, all the code I wrote to handle the pumps (methods added to CardFactoryUtil starting with SSP_) will be null and void!

I am wondering if anyone would be willing to share their created decks.

Also, I think it would be nice to be able to better organize the decks we have. For now it is ok to put everything in the name, but as more and more cards are added people can come up with a larger variety of decks. A few ideas for simple deck organization which I will throw out there are:

a) Be able to create a short description of a deck when you create one, so that it shows up in the deck selection drop down menu.

b) Create groups for decks with similar attributes. ie. color, speed, type (sliver, aggro, weenie, etc..) and allow a user to see what group a deck is in when they select it.

I agree with jesseAll of us play mtg forge and has their own decks. I have some decks that computer plays pretty good but I can't share them. I don't think such option is needed in current version but it would be great in version 2.

I ran into a bug that seems to happen with Bitterblossom, in which I draw multiple cards per turn when I have Bitterblossom in play. I tried it with a few decks and it occurs consistently. As if Bitterblossom didn't give enough card advantage...

Just a quick note, running on Linux, and there are quite a few cards that do not show up. The problem is a case sensitivity issue. The image of the card in the directory has an upper case letter for each word, and the text on the window where the image is normally shown, has it as lowercase.

Update on playtesting:Slyphidine is right, Bitterblossom gives you 2 extra cards at drawphase.This is wrong! Fun and useful, but oh so wrong. (must admit that I wish this was the way the card was supposed to work though. LOL)

Dauti Marauder, a creature with shadow, can block creatures without shadow.This should NOT be possible!Creatures with shadow can only block and be blocked by creatures with shadow.

Other shadow creatures seem to work correctky though, so maybe the problem is just with Dauti Marauder.

More to the point, there is no "drawphase", there's the Beginning Phase which has an Upkeep Step and a Draw Step, and nothing that triggers at the beginning of your Upkeep should do anything in your Draw Step (unless the effect specifically says it does, of course :P).

I stumbled across your blog a month ago when I was thinking of writing my own M:TG AI. It's definitely food for thought. Have you considered playing your AI against itself in order to "evolve" decks which may be more suited for AI play? Another place for AI training would be in "learning" better card-specific heuristics by playing the same game (same shufffle for both decks) many many times, making different decisions and doing some analysis to see if there are bad heuristics in the card logic that often causes the AI to lose games.

"If I can figure out a simple way to import/export decks I might add it. I'm trying to not work on version 1 so I can work on version 2."

I still think an XML format for export/import would be great if plain text isnt what you want. The deck mentor editor uses xml natively and exports to text and imports the same. The reason the text readable formats are preferable should be obvious but just to state it anyway: The more broad the ability of platforms to translate data the better exposure you will get. IE: crossplatform is the key to success (imho).