tag:blogger.com,1999:blog-8896044425123736642024-03-05T05:38:26.604-08:00Computer Programming and Magic: The GatheringI 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.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.comBlogger553125tag:blogger.com,1999:blog-889604442512373664.post-90024822948403475362012-09-14T08:35:00.002-07:002012-09-14T08:43:41.059-07:00Small UpdateYou can get the latest version of Forge from the <a href="http://www.slightlymagic.net/forum/viewforum.php?f=26">forum</a>.<br />
<br />
<a href="http://www.slightlymagic.net/wiki/List_of_MTG_Engines">Here</a> is a list of programs that are similar to Forge and let you play Magic: The Gathering against the computer or other players.<br />
<br />
Keep on tapping,<br />
mtgraresForgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com0tag:blogger.com,1999:blog-889604442512373664.post-56068689924527838992012-04-28T11:52:00.000-07:002012-05-02T04:21:29.787-07:00That’s All FolksA king was nervous about the future and asked a wise man, “Tell me something that is always true” and the wise man replied, “Change”. <br />
<br />
This will be the last entry for this blog. It has been a great five years but I think it is time to be moving on. Forge is a huge success as well as this blog. Currently the blog gets 650 hits a day which is phenomenal for a niche topic. Writing a regular post of 150-300 words takes around 90 minutes and is always a challenging.<br />
<br />
I created Forge and this blog when I was at my lowest point in life and did not know what to do with my time. Thankfully my real life has been improving so now I have less free time. I haven’t programmed anything in more than a year but I will probably start another programming project sometime when another itch needs to be scratched. (Most open source projects start with somebody having an itch.) I have some interesting ideas about another trading card game videogame but no concrete ideas or code.<br />
<br />
Thanks for reading. You the readers have improved my life. Thanks for playing Forge and thanks for reading this blog.<br />
<br />
Keep on tapping,<br />
mtgrares<br />
<br />
p.s.<br />
--Forge will continued to be developed and new cards will be added. New versions of Forge can be download from <a href="http://cardforge.org">cardforge.org</a><br />
<br />
--I will try to updat <a href="http://mtgrares.blogspot.com/2011/04/list-of-all-magic-programs.html">list of all Magic programs</a> because it seems to get a good number of hits.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com19tag:blogger.com,1999:blog-889604442512373664.post-66796387531643260192012-04-17T11:04:00.000-07:002012-04-17T11:04:25.866-07:00Deck Editor and Schlemiel’s AlgorithmYears ago I wrote Forge’s first deck editor. It didn’t do anything fancy and you couldn’t search for anything. You really didn’t need to “search” much because Forge only had a couple hundred cards. I did work hard on the deck editor’s “sort” feature which let you sort cards by name, type (instant, creature, etc…), mana cost, power or toughness. (In my mind “sort” was good enough, so a separate search function wasn’t really needed.) <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp0j4-jtXJX0STbrTm3KMGZSpM7TwPWXYFhyphenhyphenUTSyVwvU56w39cTatK3jXgCEip4an3JHjradXxh9jbCoR5evJJVYv5CWsHSm7QK63ykdPmc-ZsU4kvQ_Olux6E5sZuchZyl7IGPq5OHmJ-/s1600/Angel+of+Glory%2527s+Rise.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="370" width="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp0j4-jtXJX0STbrTm3KMGZSpM7TwPWXYFhyphenhyphenUTSyVwvU56w39cTatK3jXgCEip4an3JHjradXxh9jbCoR5evJJVYv5CWsHSm7QK63ykdPmc-ZsU4kvQ_Olux6E5sZuchZyl7IGPq5OHmJ-/s400/Angel+of+Glory%2527s+Rise.jpg" /></a></div>(From the upcoming set <a href="http://www.wizards.com/magic/tcg/article.aspx?x=mtg/tcg/avacynrestored/cig">Avacyn Restored</a>)<br />
<br />
But there was a problem. As more cards were added, the deck editor’s sort function became slower and slower. At first I guessed that it was a problem with Java but it wasn’t. I thought I was implementing “sort” correctly and that was as fast as it could be. (Later, I learned the correct way to sort things using Java’s JTable.) This “slow sort” problem plagued Forge for a couple of years until the nice developers totally revamped the deck editor and now it is awesome. The new deck editor is actually fun to use because it works so well.<br />
<br />
The old deck editor basically used a “n squared” solution that grows very quickly. For example, to sort 100 cards it might take 2 seconds, 200 cards - 10 seconds. But to sort 300 cards took 15 seconds. As you can see, the sort times grows fast very rapidly. For a funny explanation of the same thing, real Joel Spolsky’s explanation of Shlemiel the painter below.<br />
<br />
(Begin Quote)<br />
<br />
Shlemiel gets a job as a street painter, painting the dotted lines down the middle of the road. On the first day he takes a can of paint out to the road and finishes 300 yards of the road. "That's pretty good!" says his boss, "you're a fast worker!" and pays him a kopeck.<br />
<br />
The next day Shlemiel only gets 150 yards done. "Well, that's not nearly as good as yesterday, but you're still a fast worker. 150 yards is respectable," and pays him a kopeck.<br />
<br />
The next day Shlemiel paints 30 yards of the road. "Only 30!" shouts his boss. "That's unacceptable! On the first day you did ten times that much work! What's going on?"<br />
<br />
"I can't help it," says Shlemiel. "Every day I get farther and farther away from the paint can!"<br />
<br />
(End Quote)<br />
<br />
Basically it is hard to know if you have the “right solution” when you code. A program can be fine until you add that one feature that just breaks everything. Life and computer programming are both comprises. The perfect solution does not exist.<br />
<br />
Excelsior,<br />
mtgrares<br />
<br />
p.s.<br />
Joel Spolsky is great and each article has more computer info than my 4 years in college studying computers. Read his blog and be enlightened. For those people who can follow some short code segments in C, Joel talks more about C and Shlemiel <a href="http://www.joelonsoftware.com/articles/fog0000000319.html">here</a>. <br />
<br />
Joel Spolsky’s book’s “Joel on Software” and “More Joel on Software” are the best things that I have ever read. They are more readable (and edited) than his blog.<br />
<br />
<a href="http://www.joelonsoftware.com/">Joel Spolsky’s Blog</a>Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com4tag:blogger.com,1999:blog-889604442512373664.post-64707401074068326092012-04-10T10:31:00.001-07:002012-04-10T10:39:12.486-07:00New VersionForge has 500 new cards for a total grand total of 10,524 cards. Over 10,000 cards is just insanely crazy but it is more fun than a 100 pound ice cream. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg20ixhNLh4MFPrKqsgSaqAjgFIBpLrp8WrAC9etkm7afsM-A7CLt1BOZmKuw5yrHgitxGmThhJCOMV8hPhCdECS_yt2g4QuDg1yNpqD-9ee6InL7X79pBX-5gDyfUoeD3FsWpcdRysyTE/s1600/pulse+of+the+forge.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg20ixhNLh4MFPrKqsgSaqAjgFIBpLrp8WrAC9etkm7afsM-A7CLt1BOZmKuw5yrHgitxGmThhJCOMV8hPhCdECS_yt2g4QuDg1yNpqD-9ee6InL7X79pBX-5gDyfUoeD3FsWpcdRysyTE/s400/pulse+of+the+forge.jpg" /></a></div><br />
Some of the new cards include:<br />
<br />
Mirror Strike (3W, Instant) – “All combat damage that would be dealt to you this turn by target unblocked creature is dealt to its controller instead.” The card sounds cool and should win a few games. <br />
<br />
Pulse of the Forge (1RR, Instant) – “Pulse of the Forge deals 4 damage to target player. Then if that player has more life than you, return Pulse of the Forge to its owner's hand.” The “pulse cycle” is great and repeatedly dealing damage is fabulous. This card has “card advantage” written all over it.<br />
<br />
Fist of Suns (3, Artifact) – Let’s you pay WUBRG for any card. This card screams screams, “Please build a deck around me.”<br />
<br />
Gomazoa (2U, 0/3, Creature) – “Defender, flying and Tap: Put Gomazoa and each creature it's blocking on top of their owners' libraries, then those players shuffle their libraries.” A blue creature that just won’t die and lets you skip combat phases, cool.<br />
<br />
The extra crispy avenger,<br />
mtgrares<br />
<br />
-----------------------------------------------------------------<br />
<b>Downloads</b><br />
<br />
Forge version 1.2.6<br />
<br />
<a href="http://cardforge.org/releases/releases/forge/forge/1.2.6/forge-1.2.6.tar.bz2">Download</a> (45 MB) – Windows and Linux <br />
<br />
<a href="http://cardforge.org/releases/releases/forge/forge/1.2.6/forge-1.2.6-osx.tar.bz2">Download</a> (46 MB) – Mac<br />
<br />
Forge requires <a href="http://java.com/getjava">Java</a><br />
<br />
To uncompress bz2 files you can use <a href="http://winzip.com">Winzip</a> or the free, open source program <a href="http://www.7-zip.org/download.html">7z</a>.<br />
<br />
----------------------------------------------------------------<br />
<br />
Many people helped with this version. A special thank you goes out to them. <br />
<br />
Agetian<br />
Catatafish<br />
Chris H<br />
Dave<br />
Doublestrike<br />
Fnoed<br />
Friar Sol<br />
Jeff Wadsworth<br />
Marc<br />
Max mtg<br />
SBeauchamp<br />
Skiera<br />
Slapshot5<br />
Sloth<br />
Squee1968<br />
WompWomp<br />
XitaxForgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com5tag:blogger.com,1999:blog-889604442512373664.post-45983846558702420152012-04-02T00:01:00.001-07:002012-04-02T00:01:02.987-07:00Playtesting and ForgeA while ago a reader mentioned that he used Forge to playtest new decks. I thought it was an interesting comment because I never considered that idea. Forge has around 75% of all of the cards in standard (75% is just a guess) but I see how it could be a good playtesting tool. Any cards that Forge did not have, you use the developer menu and change mana and life points as needed.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">(Dark Ascension token)<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimL8Jl5C1QhrPdMDlINMfBUmJUXWSg73N1qUTwdzmlkRpCYHTKPliRA5xP_WmpGHTAkDjEbKVx7QzuH6_Xw7iJJihmCSEh5A6v1bvfMq9cdTiCNl0brTu9ug_YpmyqAYRWVQqBjvKrmngE/s1600/human.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimL8Jl5C1QhrPdMDlINMfBUmJUXWSg73N1qUTwdzmlkRpCYHTKPliRA5xP_WmpGHTAkDjEbKVx7QzuH6_Xw7iJJihmCSEh5A6v1bvfMq9cdTiCNl0brTu9ug_YpmyqAYRWVQqBjvKrmngE/s400/human.jpg" /></a></div><br />
Forge is a good playtesting tool because you can see a variety of game situations. It is hard to look at a card at face value and say, “This card is good” or “This card is bad”. Your experience with other similar cards may make you think that a card is good or bad but without using that specific card in a game, you cannot be sure. I have built decks around cards that I thought were great but the playtesting showed me the truth. <br />
<br />
Forge lets you test and build decks very quickly which helps you playtest many different decks. Since the AI is very basic, you can play whole games in 5 or 10 minutes. A real life 1-on-1 game would usually take 30 minutes or longer. <br />
<br />
On a side note, Magic has a very influential pro-tour and there could be a market for a program that lets players playtest decks. The application could be stupid and only a “virtual tabletop” that did not understand the rules. The application would allow users to make decisions for both players and at the most basic level the application would not need any AI. A simple AI like Forge would not be too difficult to code but it would need to be able to use all of the cards in standard.<br />
<br />
Just a humble guy,<br />
mtgraresForgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com2tag:blogger.com,1999:blog-889604442512373664.post-83201833117203101402012-03-26T00:01:00.003-07:002012-03-26T00:01:02.709-07:00Should the AI Bluff When Attacking?Bluffing is not a major part of Magic but it is still exists. By “bluffing” I mean attacking as if you held a card like Giant Growth. You can even bluff with cards like Shock by attacking your opponent’s 4/4 with your lowly 2/2. Usually I would wait until the 4/4 attacks and then block it with your 2/2 and kill it with Shock but every game as different specific tactics and situations.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtOnUeoNC-zoyJXuwfQqaOqpMMG05RmbnRHEHCnPzMrIurvbuRAHoPYw2Ny716VMirEQn21bvi1RDwzjoG5xtTjy2O0fm0IGzJ5CCzItPb8Hwgi6mTLnf8eU3ijgYU1hwYdd-ygqawNA-Q/s1600/147a.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtOnUeoNC-zoyJXuwfQqaOqpMMG05RmbnRHEHCnPzMrIurvbuRAHoPYw2Ny716VMirEQn21bvi1RDwzjoG5xtTjy2O0fm0IGzJ5CCzItPb8Hwgi6mTLnf8eU3ijgYU1hwYdd-ygqawNA-Q/s400/147a.jpg" /></a></div><br />
“When should you bluff?” I tend to never bluff when attacking because I never know if the AI will block or not. Obviously if I think that a bluff would win me the game, I will try it. Otherwise I might only bluff with small creatures if I had plenty of other creatures on the board.<br />
<br />
The AI is interesting because it plays multiple matches and it could keep track of the number of times that a bluff failed or succeeded. The AI could bluff more or less as needed. In order for the AI to act like a human player the bluff should work 50 to 75 percent of the time (although this is just a rough guess). The AI could bluff all of the time but that would be very stupid. (The goal of the AI is to make it act like a human player and force you to make hard combat decisions.)<br />
<br />
Right now the AI never bluffs on purpose. The AI may bluff accidentally because combat is very complicated (but very fun). I am just happy that the AI can play instants during combat, so players are surprised some of the time. For many years I attacked like a madman because I knew the AI never used instants during combat. The AI can also use Counterspell which is always stuns me and makes me momentarily panic. <br />
<br />
Feedback Question:<br />
When (and if) should you bluff when playing Magic?<br />
<br />
--mtgrares<br />
<br />
p.s.<br />
Some games like poker are almost exclusively based on bluffing, which explains why I am so bad at it.<br />
<br />
Because of my programming background I never have to ask myself, “Will computers ever evolve, like in the Terminator movies?” because computers are really, really stupid. A computer is just a very fast calculator.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com4tag:blogger.com,1999:blog-889604442512373664.post-47807007508220635982012-03-17T11:31:00.000-07:002012-03-17T11:31:10.846-07:00Nothing NewI usually have a fabulous article to post every Monday but sometimes the well runs dry, aka. I have no idea in the whole universe about what to write. Usually ideas just randomly float into my head, which I think are gold, but other people may have (very) different opinions.<br />
<br />
Read some <a href="http://dorktower.com">Dork Tower</a> and have a great week.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com5tag:blogger.com,1999:blog-889604442512373664.post-61281318757774396302012-03-12T00:01:00.005-07:002012-03-12T00:01:00.865-07:00Cooperation and Why Forge Doesn’t Have Flame WarsForge is one big collaboration with people from different countries and languages. All of these people are united in their love for Magic: The Gathering. I am guessing that Forge has had at least 100 people submit Java code to the project and at least 50 have made substantial contributions. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKXhsn-2fa8Deoqr-ZoBDDO2PVRHMLu16o_twNcVRZbOtBAzdAK0bzvqIabBEZoqwpBOvzRnIjZ1kqxS1pfZDRVH1cAZJJhDz2iRwjEl2-z-i-LZ9BgTzE1SS1u-fodCz2mv1nkFNCKyT8/s1600/deranged.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKXhsn-2fa8Deoqr-ZoBDDO2PVRHMLu16o_twNcVRZbOtBAzdAK0bzvqIabBEZoqwpBOvzRnIjZ1kqxS1pfZDRVH1cAZJJhDz2iRwjEl2-z-i-LZ9BgTzE1SS1u-fodCz2mv1nkFNCKyT8/s400/deranged.jpg" /></a></div><br />
I presume most people add a card or two that they really wanted. Forge is a random collection of cards, so you can never be sure which cards Forge has or doesn’t have. Most people also have a favorite card, or three, or a card that they enjoy using. Even if the card is usually crappy but has the chance to win the game once in a while. Crappy cards aren’t crappy 100% of the time, so it is ok for Forge to incorporate them. <br />
<br />
Forge also does not have forum flame wars. Everybody acts like an adult (which is rare of the internet) and avoids the usual, “I’m right and you’re wrong” arguments that are never ending. This subject reminds me of an old joke about two guys who both moved. One guy says, “My new neighbors are nice but my old neighbors were nice also.” The other guy says, “I hate my new neighbors because they are just like my old neighbors.” Basically if you are nice, people will respond nicely and vice versa if you are angry. <br />
<br />
All open source software is a testament to cooperation and the joy of working with your fellow man. Other types of media such as books and movies do not lend themselves to collaboration as well as software (for whatever reason). And many types of open source projects are not videogames. Maybe amateur videogames tend to be not very good or maybe open source videogames need more of a singular vision to be successful, who knows?<br />
<br />
I am still surprised that people want to work on Forge because it was started by an amateur programmer using an old PC. Truthfully I started Forge because it was cheaper for me to code new cards versus buying them and I still get a thrill when I use rares like Darksteel Colossus, Elvish Piper, and Wrath of God because I never owned them in real life.<br />
<br />
I am also happy that Forge’s simple AI does not detract from the fun factor. Making that early decision was a tough one.<br />
<br />
--mtgraresForgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com1tag:blogger.com,1999:blog-889604442512373664.post-89500180975035934142012-03-05T00:02:00.038-08:002012-03-05T00:02:00.053-08:00New Version – Dark Ascension and 10,000+ cardsForge is awesome. It has 154 Dark Ascension cards and a total of 10,382 cards, which is crazy. The new user interface looks great and when you start Forge, it has a nice, modern menu (which is shown below).<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCCTwTK-xvKWngvGnXM8TcZ-zHmBwMY10bGZ0ARZ-ywjVXPw4EseQ6QPwtGHcIs8iYTwvY_xsxjNV8rTDfXS8J_gAAGgDvSrL6I9BamG8mjo4cWr-4pBYW048rKl7nwAp25njM8E2y6-md/s1600/forge+-+start+screen.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="250" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCCTwTK-xvKWngvGnXM8TcZ-zHmBwMY10bGZ0ARZ-ywjVXPw4EseQ6QPwtGHcIs8iYTwvY_xsxjNV8rTDfXS8J_gAAGgDvSrL6I9BamG8mjo4cWr-4pBYW048rKl7nwAp25njM8E2y6-md/s400/forge+-+start+screen.jpg" /></a></div><br />
And here is a screenshot of the actual game. (Click to see a larger image.)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7aBGlRYPitfeE6AB6Fs_HnZV1cHww5xsQxv934zAlDvTXwDGvm0EddwjCe6PMkfzqf9kmn325G7n_pTevtGi0fXL89ZycHEWdZccLZpFDeTRmO3FGguy1y_Lx5YWPjamlnulmkq5jAtc_/s1600/forge+screenshot.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="225" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7aBGlRYPitfeE6AB6Fs_HnZV1cHww5xsQxv934zAlDvTXwDGvm0EddwjCe6PMkfzqf9kmn325G7n_pTevtGi0fXL89ZycHEWdZccLZpFDeTRmO3FGguy1y_Lx5YWPjamlnulmkq5jAtc_/s400/forge+screenshot.png" /></a></div><br />
To get to the deck editor, choose Utilities from the left-hand menu and then you will see the Deck Editor. Most people will also want to use the Import Pictures (also found in Utilities) which imports cards pictures from a previous version of Forge. You can use the Import Pictures feature if you don’t want to move the files yourself.<br />
<br />
I do not have much to add, so here is what Chris. H. posted:<br />
<br />
(Begin Quote)<br />
We have reached a new milestone. All Modern legal sets are at least 80% complete and all Extended legal sets are at least 90% complete.<br />
<br />
A number of bugs were found and fixed. The mana pool bug which caused crash reports was fixed. We also have a performance fix relating to static abilities. These reported bugs were also fixed: Avatar index bug, Quest opponent refresh, Avatar switch bug and Win streak (stats) not refreshing.<br />
<br />
The UI has a few new features including the option to pick an avatars from a collection of pictures. This can be accessed from the Settings -> Avatars tab.<br />
<br />
The organizational structure of the /res/decks/ folder has been improved and we now have these four subdirectories:<br />
<br />
/decks/constructed/<br />
/decks/cube/<br />
/decks/draft/<br />
/decks/sealed/<br />
<br />
You can now buy PreCon decks, Starter packs, Tournament packs and Fat packs from the quest mode card shop.<br />
<br />
The Forge archive includes a readme.txt file and we ask that you spend a few minutes reading this file as it contains some information that may prove usefull. We do tend to update this file at times and you should quickly read this file and look for new information for each and every new release. Thank you.<br />
<br />
We have changed the archival format used for the Forge distributions from ".zip" to ".tar.bz2". There are utilities for Windows, Mac OS and the various *nix's that can be used to decompress these ".tar.bz2" archives. We recommend that you decompress the Forge archive into a new and unused folder.<br />
<br />
Some people use the Windows application 7zip. This utility can be found at http://www.7-zip.org/download.html. Mac users can double click on the archive and the application Archive Utility will launch and extract the archive. Mac users do not need to download a separate utility.<br />
<br />
(End Quote)<br />
<br />
Just another Pro-Tour wannabee,<br />
mtgrares<br />
<br />
------------------------------------------------------------------<br />
Downloads<br />
<br />
<a href="http://cardforge.org/releases/releases/forge/forge/1.2.4/forge-1.2.4.tar.bz2">forge-1.2.4.tar.bz2</a> (33.2 MB, at cardforge.org) - for Windows, Linux<br />
<br />
<a href="http://cardforge.org/releases/releases/forge/forge/1.2.4/forge-1.2.4-osx.tar.bz2">forge-1.2.4-osx.tar.bz2</a> (34.2 MB, at cardforge.org) - for Mac<br />
<br />
<a href="http://www.slightlymagic.net/forum/viewforum.php?f=26">Forge Forum</a> – in case you need to ask questions or confess your addiction to Forge :)<br />
<br />
<a href="http://java.com/getjava">Download Java</a> - Forge requires Java 6<br />
------------------------------------------------------------------<br />
<br />
p.s.<br />
Many people helped with this version. A special thank you goes out to them. (Attempted to list names alphabetically):<br />
<br />
Agetian<br />
ArsenalNut<br />
Chris H<br />
Corwin72<br />
Dave<br />
Doublestrike<br />
Friar Sol<br />
Hellfish<br />
Jeff Wadsworth<br />
Marc<br />
Max mtg<br />
NicoAndCo<br />
Rob Cashwalker<br />
Roujin<br />
Slapshot5<br />
Sloth<br />
Squee1968<br />
Timmermac<br />
WompWomp<br />
<br />
p.p.s.<br />
Magic has some great artwork. Here are a few Dark Ascension cards that Forge has.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWVsU4-1UKlcTrsPN48d3jUIsxOmpEXaL8gY62e9NXLZ00Eek6mNipCRXVrJGa8Eguu1_XQvMgAL0A4NU4yxVzqC57tQsNG5hIVsY2O-086mV3wcNK5JTQSVUjSe44bTdeHVY5gUxcy-mb/s1600/beguiler.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWVsU4-1UKlcTrsPN48d3jUIsxOmpEXaL8gY62e9NXLZ00Eek6mNipCRXVrJGa8Eguu1_XQvMgAL0A4NU4yxVzqC57tQsNG5hIVsY2O-086mV3wcNK5JTQSVUjSe44bTdeHVY5gUxcy-mb/s400/beguiler.jpg" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2yuXOTQ7tJu58IrCxLwnyh-3akubEsJOC3v3lxIBBC9NCN-P43thXozMIDT4279R075rzjdh5cB-siqk7KB4W8JWl4ySuGvQfepRrVfFQdS7c2Dt0xOk1k2GoM-xL_5zumZ056GshWX7V/s1600/fal.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2yuXOTQ7tJu58IrCxLwnyh-3akubEsJOC3v3lxIBBC9NCN-P43thXozMIDT4279R075rzjdh5cB-siqk7KB4W8JWl4ySuGvQfepRrVfFQdS7c2Dt0xOk1k2GoM-xL_5zumZ056GshWX7V/s400/fal.jpg" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqofCKzbxm31hPUZFTzk0ob2xjsKfhNlGkxz_UvFDr0qWmkcvTk40CQ5HHA9C2XXNYodbGhH2SPXvL1TMU1j7t64BuHWI0ItdCYtbJtirTJ-y6OGcKQ_xSDrczme1kUL5hh41CPVk77U7-/s1600/elbrus.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqofCKzbxm31hPUZFTzk0ob2xjsKfhNlGkxz_UvFDr0qWmkcvTk40CQ5HHA9C2XXNYodbGhH2SPXvL1TMU1j7t64BuHWI0ItdCYtbJtirTJ-y6OGcKQ_xSDrczme1kUL5hh41CPVk77U7-/s400/elbrus.jpg" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin_yAgxdfx3vnRUHAw3lsipix4jAvYRqCz9zE9J-vDVyVweXWyU9wlhdruTmKvzYIfz0TL8j9T704Ejo6nBfmfYVXqXWGo7S1rYmPwHPVvfTYcyDRR5GIGA65u5tI8DKJUva0YpLQb2O5n/s1600/elbrus+2.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin_yAgxdfx3vnRUHAw3lsipix4jAvYRqCz9zE9J-vDVyVweXWyU9wlhdruTmKvzYIfz0TL8j9T704Ejo6nBfmfYVXqXWGo7S1rYmPwHPVvfTYcyDRR5GIGA65u5tI8DKJUva0YpLQb2O5n/s400/elbrus+2.jpg" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAtqpri5fyYqjFJ_jlqoFRJd6d_6i5JQsKwfgjel5XxpKrlbCDAkgxhdNF2i8B6PqXwkp9ZziyBQKkq3MJBpE_ZFaMxiThgm_H6u3VUwsqISi2KWl6rmxvrJi5ij5ZvJQ76DGT-V8rcYcO/s1600/drog.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAtqpri5fyYqjFJ_jlqoFRJd6d_6i5JQsKwfgjel5XxpKrlbCDAkgxhdNF2i8B6PqXwkp9ZziyBQKkq3MJBpE_ZFaMxiThgm_H6u3VUwsqISi2KWl6rmxvrJi5ij5ZvJQ76DGT-V8rcYcO/s400/drog.jpg" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUWJbvpKrC2zBDWhjFdzT5DgZaEq3m7CGpB2KENmio18W-HDlbx_eYe1u7an_Jhv_F9US1c0IjTWl1GkK4VGxyIj4Yr0efVK7BSQIbcf_9iT6zb5Urk6LlksFgTjO5b9LFvTFKS5b5e3Xt/s1600/arch.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUWJbvpKrC2zBDWhjFdzT5DgZaEq3m7CGpB2KENmio18W-HDlbx_eYe1u7an_Jhv_F9US1c0IjTWl1GkK4VGxyIj4Yr0efVK7BSQIbcf_9iT6zb5Urk6LlksFgTjO5b9LFvTFKS5b5e3Xt/s400/arch.jpg" /></a></div>Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com7tag:blogger.com,1999:blog-889604442512373664.post-26714970531418780512012-02-27T00:01:00.002-08:002012-02-27T00:01:00.676-08:00Dark Ascension is ComingI thought about posting a new version of Forge today but the most recently released version on the forums does not download the new Dark Ascension card pictures, and I know that everybody loves to use and abuse new cards. Hopefully a new version of Forge will be posted to the forums on March 2nd but that is only a tentative date and it may change. The next version will have at least 149 cards from Dark Ascension.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXGv7LeDSMrkFZ579jXrCFr9UK8fqsl0zArcebdshnziD1Rf-JpitZSIRTtkuB1j8Vbs9T5Ev8oewwoXVudzkiJ5Av2v21UvuyjLXMNAF-rGsBg-ikBhkpgXRrSlthG5wkc1z_c0mm8es6/s1600/moonveil+dragon.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXGv7LeDSMrkFZ579jXrCFr9UK8fqsl0zArcebdshnziD1Rf-JpitZSIRTtkuB1j8Vbs9T5Ev8oewwoXVudzkiJ5Av2v21UvuyjLXMNAF-rGsBg-ikBhkpgXRrSlthG5wkc1z_c0mm8es6/s400/moonveil+dragon.jpg" /></a></div>The Forge team is very happy to announce that Forge now supports more than 10,000 cards, which is a major milestone. Here is the announcement that they posted on the forum. (This relates to the 02-03 version which does not download the Dark Ascension card pictures.)<br />
<br />
{begin quote}<br />
<br />
The Forge team is very proud to announce that more than 10,000 cards are now available for play! This is an impressive amount, particularly considering that as of October 2011, the official game has produced 12,246 unique cards.<br />
<br />
Rares, the creator of Forge, generously shared his work as an open source project about five years ago. Since then, dozens of people have contributed their talents to evolve the codebase to the point it's reached today: a game engine that can successfully juggle 10^5 10^4 unique cards, available for free.<br />
<br />
The honor of writing the 10,000th card has gone to an unnamed hero, which is suitable since it's these brave code warriors that make the game what it is. A well-deserved thanks to anyone who has volunteered their time to script, test, maintain, report, code, suggest, debug, design, or in any way contribute to this project.<br />
<br />
A special thanks in particular to the CCGH web site and its administrators for providing us with the Forge forum, and to the unsung team of people who quietly maintain the servers which assist this project in one fashion or another.<br />
<br />
With this in mind, we move onward and upward. Enjoy your next game of Forge!<br />
<br />
{end quote}<br />
<br />
I sarcastically asked, “What will the developers do once Forge supports every card in existence?” and someone replied, “Start debugging”. That was a joke but it was very funny. Although I know Forge can be buggy, it is also awesome. (I have heard much the same thing about Elder Scrolls V: Skyrim, awesome but buggy.)<br />
<br />
Dark Ascension<br />
I presume most people know about magiccards.info but I will mention it anyways. Magiccards.info is similar to Gatherer but has very, high-quality scans of Magic cards. You can view a visual spoiler for Dark Ascension at magicards.info <a href="http://magiccards.info/query?q=%2B%2Be%3Adka%2Fen&v=card&s=issue">here</a>. <br />
<br />
If you want to download all of the card pictures and peruse them offline, <a href="http://www.mediafire.com/?ygcc3cff4zxnrr9">link</a> (26 MB).<br />
<br />
<a href="http://www.slightlymagic.net/forum/viewforum.php?f=48">Deck Forum</a><br />
Forge has a separate forum just for decks and you can upload and download a ton of new/different decks. The “New Quest Deck” post allows people to post decks and then adds them to the list of opponents for Forge’s quest mode. You can also download a different set of files for sealed and draft, which is called a “cube”. Another person posted the top 8 decks from the Grand Prix Lincoln 2012 as well as 256 decks from “Building on a Budget” which is posted weekly on dailymtg.com.<br />
<br />
That is about it. Have a grape (great) week :)<br />
<br />
-mtgrares<br />
<br />
p.s.<br />
I have started to get into miniature wargaming, which is pretty cool. I love making strategic decisions and talk about a genre that really needs a good videogame. Awhile ago I played a ton of Advance Wars for Gameboy Advance. While it isn't really a “wargame”, it is still an excellent game.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnI_kSXU9anx2Z1_yTvukeD-fgosWyIH4z_q4Js9QMYE49ZP0xQLcejbNul9U7v3a4p4XVf4FUlmm0iT8CwtE5amIiMxAbQ8UzzC4jc8B6_C5YoGYa2VKlaufvnEvqc5hmuIYw8zXjlB5I/s1600/adv_screen004.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="241" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnI_kSXU9anx2Z1_yTvukeD-fgosWyIH4z_q4Js9QMYE49ZP0xQLcejbNul9U7v3a4p4XVf4FUlmm0iT8CwtE5amIiMxAbQ8UzzC4jc8B6_C5YoGYa2VKlaufvnEvqc5hmuIYw8zXjlB5I/s400/adv_screen004.jpg" /></a></div>Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com5tag:blogger.com,1999:blog-889604442512373664.post-67950074749512826902012-02-21T09:26:00.000-08:002012-02-21T09:26:14.584-08:00Magic: The Gathering For iPhone and Android(I don't have much to say this week.)<br />
<br />
The Wagic project lets you play Magic on your iPhone or Android.<br />
<br />
Wagic works on Windows, Linux, the nokia N900 (maemo), the Nokia N9 (meego), Android (tablets and phones), iOS(iPhone/iPad/iPad2) and the Sony PSP (Wagic does not require you to hack your PSP).<br />
<br />
<a href="http://wololo.net/wagic/download/">Wagic Link</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy-CnlsDn4H4HRfPLC0twSYxWdMe7P5mLaFtBpkiqnyQ3iX2ui39bkjH7R9Z2lvsVv5eQ20uVb62ebV4vImDya3c6gR_0eBt_tTXZUJ5Tt4cUBBF631Xa65gncACz4Mjz3AV1qFEYBpiGI/s1600/FSscreen2.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="228" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy-CnlsDn4H4HRfPLC0twSYxWdMe7P5mLaFtBpkiqnyQ3iX2ui39bkjH7R9Z2lvsVv5eQ20uVb62ebV4vImDya3c6gR_0eBt_tTXZUJ5Tt4cUBBF631Xa65gncACz4Mjz3AV1qFEYBpiGI/s400/FSscreen2.jpg" /></a></div>Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com5tag:blogger.com,1999:blog-889604442512373664.post-45580932198438479302012-02-11T09:53:00.000-08:002012-02-11T09:53:52.783-08:00Browsing Forge’s Source Code – Part DeuxSimilar to the line that Morpheus said in the Matrix, “Some things changes and some things don’t.” Much of Forge has been changed and improved but the core foundation is the same. Card objects, hold one or more SpellAbility objects. Today I will be looking through the “creature cardfactory” that handles the weird, oddball abilities that are not scripted. (Scripting only cares about multiple cards with the same ability.)<br />
<br />
The creature cardfactory is relatively small, only 2,600 lines including blank lines, and handles around 69 creatures. (You can view the Java source code <a href="http://svn.slightlymagic.net/forge/trunk/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java">here</a>.) The first creature is one that I recognize “Force of Savagery”. It is an enigmatic 8/0 creature that only costs 2G. Obviously the key is that it needs to be pumped up by Glorious Anthem or similar cards. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuR743k5QbHgRTjlk6VskJVzcLh_IUt2B-ItOGzgZpinMZ5FbtC0on4VWB8PTApkqvxXatYLDD9lvnZpKOO2yqEODPsEvPTrkd5oheyZp5LECw0MYMn24onMjsZ8JxlNcV-2e5PNUAhWO1/s1600/force.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuR743k5QbHgRTjlk6VskJVzcLh_IUt2B-ItOGzgZpinMZ5FbtC0on4VWB8PTApkqvxXatYLDD9lvnZpKOO2yqEODPsEvPTrkd5oheyZp5LECw0MYMn24onMjsZ8JxlNcV-2e5PNUAhWO1/s400/force.jpg" /></a></div>The code below is just for the AI and checks to see if Glorious Anthem or its green cousin Gaea's Anthem is in play. The problem is that checking for specific cards is that new cards are added/created all of the time. <br />
<pre>if (cardName.equals("Force of Savagery"))
{
final SpellAbility spell = new SpellPermanent(card)
{
public boolean canPlayAI()
{
final CardList list = AllZone.getComputerPlayer().
getCardsIn(Zone.Battlefield);
return list.containsName("Glorious Anthem")
|| list.containsName("Gaea's Anthem");
}
};
card.clearFirstSpell();
card.addSpellAbility(spell);
}</pre><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLnml94i4cWvj0IboJSHC9j5cs5izO45J7-BbJssweFU35vhZX5VJXAF8sfyCJK0BVZN9bk-f_HdJKxeVpbfDMgU9mOEdSLS_opaWV7yEZxDYMS5_Amjhx2alX5gUTbriUfa_WIAbYTr_l/s1600/dre.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLnml94i4cWvj0IboJSHC9j5cs5izO45J7-BbJssweFU35vhZX5VJXAF8sfyCJK0BVZN9bk-f_HdJKxeVpbfDMgU9mOEdSLS_opaWV7yEZxDYMS5_Amjhx2alX5gUTbriUfa_WIAbYTr_l/s400/dre.jpg" /></a></div>Drekavac is the next card that I recognize. I originally added it but the code has been updated as Forge has changed. Drekavac (2B, 3/3) the drawback is that you must discard a non-creature card. In the code that tells the AI not to play this card I see this comment.<br />
<br />
<blockquote>I could never get the AI to work correctly, it always played the same card 2 or 3 times</blockquote><br />
This takes me back because that is my original comment. Now I know how to fix the problem but the AI probably should not play cards with a drawback anyways, since it cannot tell when the drawback is tactically prudent or not. I always liked using Drekavac for some reason.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggO9a7h3CcSkgHXy_mrc2oF3CAcRw1Kf6c2faLFQVomAveU5Qp93Jbaxz-U7ALmscx4Cu821c0_XftHI6AE6utkROk1i-F1g5g_TfEQs0rsfa0B_LeAK1-QwzWs6joaN_OysJsw76lrR_a/s1600/phy.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggO9a7h3CcSkgHXy_mrc2oF3CAcRw1Kf6c2faLFQVomAveU5Qp93Jbaxz-U7ALmscx4Cu821c0_XftHI6AE6utkROk1i-F1g5g_TfEQs0rsfa0B_LeAK1-QwzWs6joaN_OysJsw76lrR_a/s400/phy.jpg" /></a></div>The next card is Phylactery Lich. It is a pretty cool rare that gets you a 5/5 indestructible creature for only BBB if you own an artifact. The code here only deals with letting the player choose an artifact. Elsewhere, where static or state effects are checked, the code checks to see if the artifact with the phylactery counter is destroyed. The AI for this card is simple and just makes a “sanity check” to see if the computer has an artifact on the battlefield.<br />
<pre>public boolean canPlayAI()
{
return (!AllZone.getComputerPlayer()
.getCardsIn(Zone.Battlefield)
.getType("Artifact")
.isEmpty()
&&
AllZone.getZoneOf(this.getSourceCard()).
is(Constant.Zone.Hand));
}</pre><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqyGnIr0uUwog53WC0eSEERfc3etJBbhRw6MAqG7Au8vde4FHjrWwgstZMrMaMkcKqA9DN0nob-CIoRJMAbfdsM8Y38OHwn0RocNcoa7wLhjwCNDzX-E9R3srsQMj1rLd-I7-sXPA9gks0/s1600/sky.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqyGnIr0uUwog53WC0eSEERfc3etJBbhRw6MAqG7Au8vde4FHjrWwgstZMrMaMkcKqA9DN0nob-CIoRJMAbfdsM8Y38OHwn0RocNcoa7wLhjwCNDzX-E9R3srsQMj1rLd-I7-sXPA9gks0/s400/sky.jpg" /></a></div>Sky Swallower is another card that I coded back in the day. Sky Swallower is another situational card that the AI plays badly. I thought it might be a good card but I don’t think I have ever won a game with it. I know it <I>could</I> win a game. In the code there is my original comment that has not been updated.<br />
<br />
// TODO - this needs to be targeted<br />
<br />
Technically Sky Swallower’s ability is targeted and Forge does not target the opponent because it makes the code a few lines shorter. I know that Magic has a few cards that give protection to a player but years ago, I knew that Forge did not have any of those cards. I used Forge’s excellent deck editor to search for cards that give protection to players and I could not find any but I could be wrong.<br />
<br />
While these were just small snippets of code, it felt good to look at actual source code.<br />
<br />
Huzzah,<br />
mtgrares<br />
<br />
p.s.<br />
“Part deux” is taken from one of my favorite movies, “Hots Shots: Part Deux”. Deux is French for “two”.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com6tag:blogger.com,1999:blog-889604442512373664.post-86707045983114297982012-02-07T11:20:00.000-08:002012-02-07T11:20:21.794-08:00Just a Bit of HumorI can't think of anything to write about, so here is something to distract you. <a href="http://dorktower.com">Dork Tower</a> is great. The picture is a little small but you can see it full size <a href="http://www.dorktower.com/2011/11/25/dork-tower-friday-november-25-2011/">here</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMJDeiESj4_vDAUxOijbf-Va65QCc4o6VGi0TGLOzMl1CvCHRD7ZyGqRCB0T-WiLEIKIXJUKQIXjB19XYmLuof6m3UfWmGde2iWCP7NMADtRnrEASN2evJBNsIpiu725rh_BipIWrvQ0WN/s1600/ClassicDorkTower309.gif" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMJDeiESj4_vDAUxOijbf-Va65QCc4o6VGi0TGLOzMl1CvCHRD7ZyGqRCB0T-WiLEIKIXJUKQIXjB19XYmLuof6m3UfWmGde2iWCP7NMADtRnrEASN2evJBNsIpiu725rh_BipIWrvQ0WN/s400/ClassicDorkTower309.gif" /></a></div>Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com0tag:blogger.com,1999:blog-889604442512373664.post-29806168200759778712012-01-30T01:33:00.000-08:002012-01-30T01:33:00.139-08:00Browsing Forge’s Source CodeSource code is great. Similar to a the relation between a cooking recipe and a cake, source code “creates” a program. I like the think of source code as the secret internal guts of a program that you never get to see. I have not looked at Forge’s source code in a long, long time, so I’m just going to randomly pursue it. (You can view the source code yourself <a href="http://svn.slightlymagic.net/forge/trunk/src/main/java/forge/">here</a>.) <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf_dRxoJfwkw9ZEfMYOsIzmOx-_3OK-7rdsKDxHNL7OeCfDYvIPJ8BL4DQE6D4g5CVO7ONL5OUv3RKWs0RE9hKyZuQTdPTj9AHWLNYXJVDs6MKvnIXJzMEXPhVxpuEzEexxAPF8VPSJ76G/s1600/goblin.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf_dRxoJfwkw9ZEfMYOsIzmOx-_3OK-7rdsKDxHNL7OeCfDYvIPJ8BL4DQE6D4g5CVO7ONL5OUv3RKWs0RE9hKyZuQTdPTj9AHWLNYXJVDs6MKvnIXJzMEXPhVxpuEzEexxAPF8VPSJ76G/s400/goblin.jpg" /></a></div><br />
(A class is just a bunch of related Java statements.)<br />
<br />
I’m always drawn to the class Card but I see the class ColorChanger so I’m going to look at that first. ColorChanger is very basic but it lets you change the color of any card. ColorChanger also uses a time stamp to keep track of the color changes. Below is the most important method. I understand most of the code but bIncrease is interesting because it changes the time stamp. I think the time stamp is important because two cards may change all of the other card colors in the game but the card that is played last takes priority and “overrides” any previous cards.<br />
<pre>public final long addColorChanges(final String s, final Card c, final boolean addToColors, final boolean bIncrease)
{
if (bIncrease)
{
CardColor.increaseTimestamp();
}
this.globalColorChanges.add(new CardColor(new ManaCost(s), c, addToColors, false));
return CardColor.getTimestamp();
}</pre>The Card class is used everywhere in Forge and I have fond memories of creating it from scratch. Currently the Card class is 8,800 lines long (including blank lines) and you can view it <a href="http://pastebin.com/FrG2PUTg">here</a>. The most important methods are:<br />
<br />
getName() : returns String<br />
isSick() : returns boolean – Does this creature have summoning sickness?<br />
<br />
getOwner() : return Player – Who owns this card?<br />
getController() : return Player – Who is currently using this card?<br />
<br />
getManaCost(): returns String represent the cost of this card. Even though not every card has a mana cost, most cards do.<br />
<br />
One of the longest methods is hasProperty() which covers many additional sources of information like does this card have one color or multiple colors? Is this card double-faced? Is this card a flip card? Is this card enchanted? Is this card haunted by any other cards?<br />
<br />
hasProperty(final String property, final Player sourceController, final Card source)<br />
<br />
And finally I will look at IPlayerZone, which implements all of the zones in Magic: battlefield, graveyards, exiled, in hand, or in your library. IPlayerZone is technically an interface and just outlines what methods it need and does not contain any working code. IPlayerZone is just a thin wrapper for ArrayList and has the regular, boring methods like add(Card), remove(Card), size(), isEmpty(), and contains(Card) : boolean. I did not directly create IPlayerZone but I indirectly created it. To easily filter cards I created a different, yet similar class named CardList which easily lets you do common task such as find all elves or Forests in play.<br />
<br />
Much of Forge has changed since I worked on it and just browsing through the source code, Forge looks very impressive. Just looking at individual classes is just a glimpse of the program’s overall form and structure but it shows just how many details have to be laboriously spelled out so the computer can process them. And yes I do understand that Forge has its share of errors but Forge really is a work of art. <br />
<br />
Forge is the best videogame ever created. (Well next to Minecraft…)<br />
<br />
Humble scribe,<br />
mtgrares<br />
<br />
p.s.<br />
Just in case my previous link doesn't work, you can view Forge's Java source code <a href="http://svn.slightlymagic.net/forge/trunk/src/main/java/forge/">here</a>.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com3tag:blogger.com,1999:blog-889604442512373664.post-47757050487754506262012-01-24T10:23:00.000-08:002012-01-24T10:36:51.413-08:00Magarena – Great AIMagarena is a great, great program. It lets you play Magic against the computer and has almost 2,000 cards. The outstanding feature of Magarena is that the AI is as smart a human opponent. The AI will punish you for mistakes and will play unexpected instants during combat. While Forge’s AI is a nice stroll through the forest, Magarena feels more like all-out war. You can also scale back the AI and limit the time that is had to “think ahead” to only a couple of seconds which makes the AI good but not great.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjstVzTBrPTqFRY0izOgQLjdH8V3SKIHCkpzWvHTMRsbM05BM5ffcTsuF0lPMYFVPRtmHfGmnnpqI8UY2k3te9kKuGlkAR2GcXBKXB-zJsFQqP91OT06UKNvp0jezamM4FPwV50B5MS5kAQ/s1600/magarena+-+screenshot.JPG" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="300" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjstVzTBrPTqFRY0izOgQLjdH8V3SKIHCkpzWvHTMRsbM05BM5ffcTsuF0lPMYFVPRtmHfGmnnpqI8UY2k3te9kKuGlkAR2GcXBKXB-zJsFQqP91OT06UKNvp0jezamM4FPwV50B5MS5kAQ/s400/magarena+-+screenshot.JPG" /></a></div><br />
Magarena also has a great user interface which is skinnable and supports different themes. The cards are artfully displayed so you can easily glance at your hand or the battlefield and see everything. Combat is beautifully handled with a separate combat mode that graphically shows which creatures are attacking and blocking.<br />
<br />
Magarena also highlights the cards in your hand that you can play and if you double-click, it has an auto-pay feature. In case you made a mistake, it even has a fabulous undo button. Magarena also highlights cards that have an activated ability that you can use. Also when attacking and blocking, Magarena highlights which creatures you can attack with and block.<br />
<br />
Magarena lets you choose between a cheating or non-cheating AI. The difference is that the cheating AI can see the cards in your hand. I randomly play against both cheating and non-cheating opponents and I cannot see a discernable difference. Basically the cheating AI is a little bit better than the non-cheating. <br />
<br />
Magarena has a difficult (even grueling) AI and a powerful, candy-covered user interface.<br />
<br />
<a href="http://magarena.googlecode.com/files/Magarena-1.21.zip">Magarena-1.21.zip </a> (10 MB) (Windows,Linux)<br />
<br />
<a href="http://magarena.googlecode.com/files/Magarena-1.21.app.zip">Magarena-1.21.app.zip</a> (10 MB) (Mac)<br />
<br />
<a href="http://www.slightlymagic.net/forum/viewforum.php?f=82">Magarena Forum</a><br />
<br />
Just a random programmer,<br />
mtgrares<br />
<br />
p.s.<br />
--Magarena is written in Java, which I think is very cool. Java (can be) great.<br />
<br />
--If I understand Magarena’s docs, the strongest AI is the “monte carlo (cheat)” option. This algorithm is very sophisticated. As I understand monte carlo, it plays many thousands of games using random moves and then chooses the move (branch) that generates the best outcome for the AI and the worst outcome for the opponent. Easy to explain but hard to code.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com4tag:blogger.com,1999:blog-889604442512373664.post-87855609780773853282012-01-21T11:41:00.000-08:002012-01-21T11:41:55.003-08:00Late AgainRobin - "Holy Cheesecake Batman, no new article today."<br />
<br />
Batman - "Yes, this seems to be the work of the nefarious Sweet Tooth".<br />
<br />
I'll try to post a new article sometime Monday.<br />
<br />
p.s.<br />
I just watched an 70's Batman cartoon and it was hilariously bad, though entertaining enough that I watched the whole episode. It even had the mischievous Bat-Mite, who causes more chaos than he solves. The show had horrible puns throughout. It was similar to a really good b-movie and I just couldn't look away.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com0tag:blogger.com,1999:blog-889604442512373664.post-75791222150688742992012-01-17T11:17:00.000-08:002012-01-17T11:18:54.542-08:00New Version(Sorry for not publishing anything on Monday.)<br />
<br />
New versions of Forge are great and taste like fresh buttered movie popcorn, hmmm… There are 200 new cards and the user interface has gotten a major overhaul. (And yes Forge now has Serum Powder.)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmU8uFHNNnFlG7vUTqKCsOjfh3QdMHOLWuKNOQMlIYGSFgFpk24Xa78jltoEZVrPM4daCsPyPn6XaA6IUFqPjfOBikHTMSw4D2DBjeqlVsROUQbDUk37uJGTcNQcqL6yO9UHZdIaPfJIn-/s1600/serum+powder.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmU8uFHNNnFlG7vUTqKCsOjfh3QdMHOLWuKNOQMlIYGSFgFpk24Xa78jltoEZVrPM4daCsPyPn6XaA6IUFqPjfOBikHTMSw4D2DBjeqlVsROUQbDUk37uJGTcNQcqL6yO9UHZdIaPfJIn-/s400/serum+powder.jpg" /></a></div>Chris. H. posted:<br />
<br />
(Begin quote)<br />
<br />
A new UI is being developed and it will take some time before it is finished. Forge is somewhat unstable at this time as the new user interface is a work in progress.<br />
<br />
The first step was to update the battlefield window. The second step was to update the New Game window and this section still needs some work. We want to get constructed node and then quest modes working first and will then try to get the draft and sealed modes working again afterwards. While most of this work has now been done there are still a few areas that are not finished and you may discover a bug or two.<br />
<br />
Enjoy the new work and be patient as this part of the project moves forward. For now, only "Constructed" mode is far enough along to be considered reasonably stable. Quest mode, Sealed and Draft are somewhat stable and you should be able to use these three modes without too many bugs and issues being noticed. Please report all bugs and issues that you notice.<br />
<br />
(End quote)<br />
<br />
Working on a new user interface is very complicated. It takes weeks to create a new user interface and mere minutes to criticize. I’m not saying that all criticism is bad but try to balance your criticism with a little bit of praise. A good balance points out the good and as well as the bad. <br />
<br />
Listing some positives also helps the author know what he is doing right, which is as important as highlighting the negatives. If you only list negatives, the author will probably just give up out of frustration.<br />
<br />
Some of the new cards look very cool.<br />
<br />
Bogardan Phoenix (2RRR, 3/3, flying) returns to the battlefield after dying once.<br />
<br />
Culling Scales (3, artifact) - "At the beginning of your upkeep, destroy target nonland permanent with the lowest converted mana cost" if there is a tie, target any one of them. This card is just dying to be the center of a creatureless blue control deck.<br />
<br />
Doubling Cube (2, artifact) - "3, tap: Double the amount of each type of mana in your mana pool". Deckbuilders, start your engines.<br />
<br />
Vish Kal, Blood Arbiter (4WBB, 5/5, flying, lifelink) and some cool an ability to grow larger, if you sacrifice a creature. Everybody loves flying fatties.<br />
<br />
Serum Powder (3, artifact) - If you have Serum Powder in you hand, you can exile all of the cards in your hand and then draw the same number of cards, which is an unique ability. In my option, Serum Powder seems like it would improve most decks.<br />
<br />
Dreams of TCG videogames,<br />
mtgrares<br />
<br />
p.s.<br />
Maybe it was good that I didn't post anything Monday since a new version of Forge was released yesterday. Sometimes being late is a good thing :+)<br />
<br />
--------------------------------------------------------------------------------<br />
<br />
01-16 is when this version of Forge was first posted to the forums.<br />
<br />
<a href="http://cardforge.org/releases/releases/forge/forge/1.2.1/forge-1.2.1.tar.bz2">Link</a> - Forge 01-16 (Windows, Linux) 33 MB and can be unzipped with <a href="http://winzip.com/">Winzip</a> or <a href="http://www.7-zip.org/download.html">7-Zip</a> (free, open source)<br />
<br />
<a href="http://cardforge.org/releases/releases/forge/forge/1.2.1/forge-1.2.1-osx.tar.bz2">Link</a> - Forge 01-16 (Mac) 35 MB and can be unzipped with with <a href="http://www.kekaosx.com/en/">Keka</a><br />
<br />
<a href="http://www.mediafire.com/?f7stkn8nqglzkbc">Download</a> - Card Pictures (160 MB) - These are some of the low-quality (LQ) card pictures. <br />
<br />
<a href="http://java.com/">Java</a> - Forge requires Java in order to run <br />
<br />
If you have any questions/comments, please post them to the <a href="http://www.slightlymagic.net/forum/viewforum.php?f=26">forum</a>.<br />
<br />
Reporting Bugs:<br />
Forge is always a work-in-progress. Some cards (and card interactions) are more buggy than others. To report a bug, please follow the instructions <a href="http://www.slightlymagic.net/wiki/Forge#I_think_I_found_a_bug_in_Forge._What_do_I_do.3F">here</a>.<br />
<br />
p.s.<br />
These are the people that make Forge awesome. They donate their time, skill, and patience.<br />
<br />
ArsenalNut<br />
Chris H<br />
Dave<br />
DeadSpeak<br />
Doublestrike<br />
Friar Sol<br />
Hellfish<br />
Jeff Wadsworth<br />
Marc<br />
Mark<br />
Slapshot5<br />
Sloth<br />
SoulStorm<br />
Squee1968<br />
Xanbie<br />
ZzzzSleepForgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com2tag:blogger.com,1999:blog-889604442512373664.post-82876079316352065972012-01-09T01:05:00.000-08:002012-01-09T10:55:34.563-08:00Thank YouThis post is going to be a little bit different. I don’t have bits of Java code to throw at you. This is just a simple article saying, “Thank you for downloading Forge.”<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJN1Xy60iDSzqgvfbX5RDgZpZvToA6gxyXWPyEWNbfk9tt8YBODePzTZLhgxADb9oxJugqU-sqTXoxkXYFb-eRJK-NAZfvzFrY9Nfy-54GsOOhbAqiN8ErYOc-Bs2T4A1Gano3Y1oaAy2S/s1600/griffin.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJN1Xy60iDSzqgvfbX5RDgZpZvToA6gxyXWPyEWNbfk9tt8YBODePzTZLhgxADb9oxJugqU-sqTXoxkXYFb-eRJK-NAZfvzFrY9Nfy-54GsOOhbAqiN8ErYOc-Bs2T4A1Gano3Y1oaAy2S/s400/griffin.jpg" /></a></div>(Card picture from the set - Duel Decks: Ajani vs. Nicol Bolas)<br />
<br />
When I started working on Forge I was at my lowest point and very depressed. My college degree was getting me zero interviews and I had recently got myself into a huge heap of trouble which gave me a little too much time on my hands. I knew that I enjoyed programming so I started working on Forge as a hobby. I thought that more than likely no one else will ever see my work but it would at least give me something to do.<br />
<br />
Now other people actually contribute code to Forge and I just blog about it. Most open source)projects don’t ever get off of the ground but with Forge there has always been people wanting to work on it, which is exceptionally rare. For some reason open source videogames are rare and I’m glad that Forge is a shining example.<br />
<br />
The current developers have to deal with my design decisions and I say “Thank You” because they have done such a good job programming around Forge’s limitations. I created Forge as well as I could but there were gaping holes in my logic and architecture. I am humbled by the fact that they have added so many more cards to Forge than I would have been able to do as individual programmer. Sometimes the group is smarter than the individual (but not always).<br />
<br />
I also want to say thanks to you for reading this blog. Most of my life seems like a failure: no job, no girlfriend and I’m 33, but writing for this blog is very satisfying. I get 200 to 300 hits a day which is very impressive considering that I only post one article a week.<br />
<br />
If I would have been able to find a job, Forge probably would have never been written. The same thing probably could be said of J.R. Rowling, author of the Harry Potter series. She began writing because she was nearly homeless and didn’t know what to do with her life. <br />
<br />
I enjoy telling people that I started a thriving open source project. Creating and working on Forge have been one of the highlights of my life. I would encourage you to try to do something “big” yourself, even if the odds are stacked against you. Even writing this very geeky, niche blog is very rewarding.<br />
<br />
Even if I never get a job programming professionally, Forge has given me confidence in my skills.<br />
<br />
Humble programmer and writer,<br />
mtgrares<br />
<br />
p.s.<br />
<br />
-- I also understand that Forge is far from perfect. I wrote Forge to very flexible but that flexibility makes Forge harder to use. Thanks for powering through and being able to see the beauty of Forge.<br />
<br />
--A side note about my recent programming activity. I haven’t written any Java code in three years. I don’t know if it is burnout or just laziness. The main reason that I avoid coding is because it takes so much concentration, which is exhausting. Programming is like doing an extremely, long math problem. If you get the right answer it feels great and when you get the wrong answer, you feel like crap. I try to praise the coders who work on Forge because I know how strenuous it can be. Trying to fix a bug can be like the 3rd circle of hades.<br />
<br />
I do enjoy programming and maybe I can prod myself to work on a small project. Trying to tackle a big project is like wrestling with a bear, you might win but it won’t be pretty.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com13tag:blogger.com,1999:blog-889604442512373664.post-58499946053722352602012-01-02T12:12:00.000-08:002012-01-02T12:12:00.707-08:00Card ScriptingCard scripting is cool. Instead of having to program cards using Java, which is usually very long and over 100 lines of code, card scripting is shockingly short. Probably 95% of all cards in Forge are scripted. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjai3mmzwSxjB9yL0ETlJBm6HPPSKXPepT-FMAKa7DtLgnQmABgP0yS-6ju-3VoGge3FUhNNsVcWn38HRMRgYWTcxKBuNoSpVQjHbxBcAuTLAyL4pT2C5Chf0giqQoocHnKshCp9BZKsz7c/s1600/shivan.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjai3mmzwSxjB9yL0ETlJBm6HPPSKXPepT-FMAKa7DtLgnQmABgP0yS-6ju-3VoGge3FUhNNsVcWn38HRMRgYWTcxKBuNoSpVQjHbxBcAuTLAyL4pT2C5Chf0giqQoocHnKshCp9BZKsz7c/s400/shivan.jpg" /></a></div>To look at a specific card’s scripting: first go to the forge folder, then res, then cardsfolder, and unzip “cardsfolder.zip”. Cards like Jace, the Mind Sculptor do not have any scripting and the text file only holds basic information about the card such as its name, cost, card types and starting loyalty.<br />
<br />
Shock is always my favorite example.<br />
<br />
Name:Shock<br />
ManaCost:R<br />
Types:Instant<br />
Text:no text<br />
A:SP$ DealDamage | Cost$ R | Tgt$ TgtCP | NumDmg$ 2 | SpellDescription$ CARDNAME deals 2 damage to target creature or player.<br />
SVar:Rarity:Common<br />
SVar:Picture:http://www.wizards.com/global/images/magic/general/shock.jpg<br />
SetInfo:8ED|Common|http://magiccards.info/scans/en/8e/222.jpg<br />
SetInfo:7ED|Common|http://magiccards.info/scans/en/7e/219.jpg<br />
SetInfo:STH|Common|http://magiccards.info/scans/en/sh/98.jpg<br />
SetInfo:9ED|Common|http://magiccards.info/scans/en/9e/220.jpg<br />
SetInfo:10E|Common|http://magiccards.info/scans/en/10e/232.jpg<br />
SetInfo:6ED|Common|http://magiccards.info/scans/en/6e/206.jpg<br />
SetInfo:M12|Common|http://magiccards.info/scans/en/m12/154.jpg<br />
SetInfo:ONS|Common|http://magiccards.info/scans/en/on/227.jpg<br />
Oracle:Shock deals 2 damage to target creature or player.<br />
End<br />
<br />
Obviously there is a fair about of information here such set information, where each card picture is located as well as its rarity. <br />
<br />
A:SP$ DealDamage | Cost$ R | Tgt$ TgtCP | NumDmg$ 2 | SpellDescription$ CARDNAME deals 2 damage to target creature or player.<br />
<br />
This is the “scripting” part that creates the card Shock. The scripting restricts the targets to creatures or players, specifies the mana cost, and has some text to show the player.<br />
<br />
My 2nd favorite example is Elvish Piper. He isn’t a powerhouse but he is a fun card to use. <br />
<br />
Name:Elvish Piper<br />
ManaCost:3 G<br />
Types:Creature Elf Shaman<br />
A:AB$ ChangeZone | Cost$ G T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature | ChangeNum$ 1 | SpellDescription$ You may put a creature card from your hand onto the battlefield.<br />
PT:1/1<br />
SVar:Rarity:Rare<br />
<br />
Elvish Piper’s activated ability is far more complicated than Shock’s. The cost is listed as “G T” which seems to mean “1 green mana” and “tap this card”. “Origin$ Hand” means that the creature card is taken from the player’s hand.<br />
<br />
Name:Shivan Dragon<br />
ManaCost:4 R R<br />
Types:Creature Dragon<br />
PT:5/5<br />
K:Flying<br />
A:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn.<br />
<br />
Shivan Dragon’s pump ability is a common effect, “R: Shivan Dragon getes +1/+0 until end of turn”. Any card with a similar ability can be scripted as well.<br />
<br />
Name:Shivan Meteor<br />
ManaCost:3 R R<br />
Types:Sorcery<br />
A:SP$ DealDamage | Cost$ 3 R R | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 13 | SpellDescription$ CARDNAME deals 13 damage to target creature.<br />
K:Suspend:2:1 R R<br />
<br />
Shivan Meteor is fairly straightforward except that it also has suspend. Shivan Meteor regularly costs 3RR but can be suspended (and played) in 2 turns for 1RR. The scripting for suspend is simple since other parts of Forge handle the actual implementation.<br />
<br />
Name:Akroma, Angel of Wrath<br />
ManaCost:5 W W W<br />
Types:Legendary Creature Angel<br />
PT:6/6<br />
K:Flying<br />
K:Vigilance<br />
K:First Strike<br />
K:Trample<br />
K:Haste<br />
K:Protection from red<br />
K:Protection from black<br />
SVar:Rarity:Rare<br />
<br />
Even though Akroma has a ton of text, all of the text is standard keywords. Cards with activated abilities require more scripting than Akroma.<br />
<br />
Name:Day of Judgment<br />
ManaCost:2 W W<br />
Types:Sorcery<br />
A:SP$ DestroyAll | Cost$ 2 W W | ValidCards$ Creature | SpellDescription$ Destroy all creatures.<br />
<br />
Name:Wrath of God<br />
ManaCost:2 W W<br />
Types:Sorcery<br />
A:SP$ DestroyAll | Cost$ 2 W W | ValidCards$ Creature | NoRegen$ True | SpellDescription$ Destroy all creatures. They can't be regenerated.<br />
<br />
Obviously these two cards are almost clones of each other. Wrath of God is slightly more powerful because creatures can’t regenerate. Obviously Wizards of the Coast thought that Wrath of God was unbalanced and then created Day of Judgment. The Wrath of God scripting includes “NoRegen$ True” which is a minor point but very important. Since Wrath of God is scripted, its mirror Damnation is also scripted and has a different mana cost of 2BB.<br />
<br />
Scripting is great and it allows non-programmers to add new cards. The scripting has gotten more complicated and is now a “little language” that does one thing well: create Magic cards. <br />
<br />
Average blogger,<br />
mtgrares<br />
<br />
p.s.<br />
Eons long ago while I playing Magic Online, I remember using my Elvish Piper to play Darksteel Colossus (11, 11/11, creature, indestructible, trample). Because they were expensive cards, I only had one copy of each card so I was very happy when I actually got to use them. :+)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN9eXbxmzq-OcPh7QOjQ7rfN4HEm7zdEwILHvLJhYyNvWrbgmNAcYzP5AbvoX8yC7z9zd5cVpA656NbgpvBq187tYncNAx1U_wBS4e9K5gK_3Zbk7N2lJ6jQh8EXyTNfnVDUzhwX6qAhvR/s1600/208.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN9eXbxmzq-OcPh7QOjQ7rfN4HEm7zdEwILHvLJhYyNvWrbgmNAcYzP5AbvoX8yC7z9zd5cVpA656NbgpvBq187tYncNAx1U_wBS4e9K5gK_3Zbk7N2lJ6jQh8EXyTNfnVDUzhwX6qAhvR/s400/208.jpg" /></a></div>Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com8tag:blogger.com,1999:blog-889604442512373664.post-65419980030630358082011-12-19T01:15:00.000-08:002011-12-19T01:15:00.875-08:00New VersionSanta’s little computer programming elves have been furiously coding in order to bring you new cards for the Christmas season. (Back to real life.) Forge’s development team, which has been called the “A-Team of programming” and the “Java Giants”, has been energetically coding new cards and features. There are 400 new cards for a total of 9,745 cards, making Forge the “best videogame ever created”. (Soon to be copyrighted phrase by Forge’s crack team of invisible lawyers.)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5q2P1LpF0nHZ4E2iPGInW1u47ax_p3eOTIlk99IxTMzuYBz43FxMgdULnDsIiT0l3OMguE71Loikt0oSnql9xYg-SCMP5R0MDQYDXmQ4ik8ycg8ofQcSy0z9EXUpwY9QYKvnwqCLIdoaN/s1600/184.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5q2P1LpF0nHZ4E2iPGInW1u47ax_p3eOTIlk99IxTMzuYBz43FxMgdULnDsIiT0l3OMguE71Loikt0oSnql9xYg-SCMP5R0MDQYDXmQ4ik8ycg8ofQcSy0z9EXUpwY9QYKvnwqCLIdoaN/s400/184.jpg" /></a></div>Some of the new cards include:<br />
<br />
Aerial Caravan (4UU, 4/3 creature, flying) has "1UU: Exile the top card of your library. Until end of turn, you may play that card" which is awesome because you can play any card for only 1UU. Combine this with Sensei’s Diving Top for complete insanity.<br />
<br />
Autochthon Wurn (10GGGWW, 9/14, trample) - Has convoke so you tap creatures to reduce the mana cost. Other convoke cards include Conclave Equenaut (4WW, 3/3, flying) and Conclave Phalanx (4W, 2/4).<br />
<br />
Instants can also have convoke like Devouring Greed (1WW, "Exile target attacking or blocking creature").<br />
<br />
Basandra, Battle Seraph (3RW, 4/4, flying) has "Players can't cast spell during combat" as well as "R: Target creature attacks this turn if able". Both abilities combine to completely dominate the game. If you can get this card on the board, you have a good change of winning the game.<br />
<br />
Cease-Fire (2W, instant) says “Target player can't cast creature spells this turn. Draw a card". This card (almost) makes your opponent skip a turn AND replaces itself. Cease-Fire is very good in constructed and awesome in sealed or draft.<br />
<br />
Please note that you need to play Cease-Fire BEFORE your opponent’s main 1 phase. If the computer has already cast a creature and it is on the stack, you are too late.<br />
<br />
Damping Matrix (3, artifact) turns off all activated abilities, which is awesome. This one card can completely change the flow of the game.<br />
<br />
Engineered Explosives (X, artifact) has "sunburst" which means "This enters the battlefield with a charge counter on it for each color of mana spent to cast it." <br />
<br />
Engineered Explosives lets you destroy all non-land permanents that have a converted mana cost equal to the number of (sunbursted) charge counters. This card is roughly a targeted Final Judgement. Any card that lets you destroy multiple creatures is a game-winner. Engineered Explosives combines well with cards like Birds of Paradise, which can produce any color of mana.<br />
<br />
I presume most everybody knows this but let me mention it anyways. If you have green mana Engineered Explosives will destroy all cards that have a converted cost of 1, which means if the card cost was 1 or W or B or U or R or G, the card would be destroyed. If you have green and blue mana Engineered Explosives will destroy any card with a converted cost of 2, such as 1G, 1U, BB, or RG.<br />
<br />
Goblin Cannon (4, artifact) says "2: Goblin Cannon deals 1 damage to target creature or player. Sacrifice Goblin Cannon". This card makes me laugh. A beginner will pay 2 and deal 1 damage. An advanced player will wait and spend 6 to deal 3 damage. <br />
<br />
The reason that you can use this ability multiple times is because Goblin Cannon is destroyed when the ability resolves, i.e. is pushed off of the stack. If Goblin Cannon said “2, sacrifice Goblin Cannon: etc…” then you could only use the ability once because the ability’s cost forces you to sacrifice the card. Before the colon is a cost. After the colon is an effect. <br />
<br />
And I’m pretty sure that the computer will only pay 2 and use Goblin Cannon once.<br />
<br />
Pro-Tour Wannabe,<br />
mtgrares<br />
<br />
-------------------------------------------------------------------------<br />
<br />
<div style="text-align: center;"><span style="font-size: large;"><b>Downloads</b></span></div><br />
(11-25 is when this version of Forge was first posted to the <a href="http://www.slightlymagic.net/forum/viewforum.php?f=26">forums</a>.)<br />
<br />
<a href="http://www.mediafire.com/download.php?gfitxfbedq2qt11">Link</a> - Forge 11-25 (Windows, Linux) 31 MB and can be<br />
unzipped with <a href="http://winzip.com/">Winzip</a> or <a href="http://www.7-zip.org/download.html">7-Zip</a> (free, open source)<br />
<br />
<a href="http://www.mediafire.com/download.php?c55oyc652u10bro">Link</a> - Forge 11-25 <span style="font-weight: bold;"> </span>(Mac) 32 MB and can be unzipped with <a href="http://www.kekaosx.com/en/">Keka</a><br />
<br />
<a href="http://www.mediafire.com/?f7stkn8nqglzkbc">Download</a> - Card Pictures (160 MB) - These are some of the low-quality (LQ) card pictures. <br />
<br />
<a href="http://java.com/">Java</a> - Forge requires Java in order to run <br />
<br />
If you have any questions/comments, please post them to the <a href="http://www.slightlymagic.net/forum/viewforum.php?f=26">forum</a>.<br />
<br />
<a href="http://pastebin.com/6wGSX0N2">Readme.txt <br />
</a>Contains lots of goodies such as:<br />
Installation and Updating to a newer version Instructions<br />
Advanced Updating to a newer version Instructions<br />
The Mac OS application version info<br />
Picture location info<br />
Launching Forge and Memory Issues<br />
Java 7 Issues<br />
Card Picture Issues<br />
<br />
Reporting Bugs:<br />
Forge is always a work-in-progress. Some cards (and card interactions) are more buggy than others. To report a bug, please follow the instructions <a href="http://www.slightlymagic.net/wiki/Forge#I_think_I_found_a_bug_in_Forge._What_do_I_do.3F">here</a>. <br />
<br />
New Features:<br />
When a spell or an ability appears on the stack and it says "(OPTIONAL)" you can right-click it to decide if you want to always accept or to decline it.<br />
<br />
The JuzamJedi cube has been updated with a newer list of cards.<br />
<br />
p.s.<br />
These are the people that help make Forge awesome. They donate their time to: slog (read) through somebody else’s code, fix tiny details, stress out and go prematurely bald so we can have such a great piece of software. I (and everyone that uses Forge) sincerely thank you.<br />
<br />
ArsenalNut<br />
Chris H<br />
Dave<br />
Doublestrike<br />
Friar Sol<br />
Hellfish<br />
Iran<br />
Jeff Wadsworth<br />
Marc<br />
Max mtg<br />
Rob Cashwalker<br />
Slapshot5<br />
Sloth<br />
SloweForgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com2tag:blogger.com,1999:blog-889604442512373664.post-74778980939994360562011-12-16T11:42:00.000-08:002011-12-16T11:42:46.606-08:00Wizards of the Coast - Lay-offsYou want to work at Wizards of the Coast right? The place were Dungeons and Dragons is right around the door and is home to best TCG ever created. Even the venerable, Pro Tour commentator Randy Buehler was laid off, ouch! <br />
<br />
I have a hard time understanding how Wizards isn't rolling in money because Magic Online seems like such a huge success.<br />
<br />
<a href="http://community.wizards.com/go/thread/view/75882/19599502/WOTC_announces_lay-offs">Here</a> is a link to those laid off.<br />
<br />
<a href="http://www.dorktower.com/">Dork Tower</a>, a free online comic, is great!<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVPyRfnCqgqED-RbAAfTf308lcS5cWRvofMb9IXMDPkbRuMOdCl6i0tPPsYgaQnPKmn6QCxqvGThNrK9-89x9-IzPRqUzOpvFrUtzQ9LQoDK-F5RsAAdead37v1-EyhuI9wBwqqRvQm8P7/s1600/DorkTower1013.gif" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVPyRfnCqgqED-RbAAfTf308lcS5cWRvofMb9IXMDPkbRuMOdCl6i0tPPsYgaQnPKmn6QCxqvGThNrK9-89x9-IzPRqUzOpvFrUtzQ9LQoDK-F5RsAAdead37v1-EyhuI9wBwqqRvQm8P7/s400/DorkTower1013.gif" /></a></div><br />
-------------------------------------------------------<br />
<a href="http://community.wizards.com/wotc_richbaker/blog/2011/12/13/december_update">Rich Baker</a> has posted his farewell on WotC's forums.<br />
<blockquote>Today, Wizards of the Coast eliminated my position. I have unfortunately been let go, after more than 20 years of employment with TSR/WotC.<br />
<br />
I still hope to write for the Forgotten Realms novel line as time and opportunity permit. In fact, I'm going to go home tonight and finish my second draft of Prince of Ravens. There may be some more opportunities down the road.<br />
<br />
D&D fans... thanks for a great run. I hope I've given you some good gaming over the years. Your game is in good hands with Mike and Monte.<br />
<br />
For fans of the A&A minis games, I would like to say that this does not signal the cancellation of any miniatures lines. I hope I can take on some of the design work on a freelance basis, but we'll have to see.<br />
<br />
Time to splice the main brace, as they say. Good gaming, all!</blockquote>Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com5tag:blogger.com,1999:blog-889604442512373664.post-71763790595993064752011-12-12T01:17:00.000-08:002011-12-12T01:17:00.506-08:00The Accidental Creation of ForgeIn many ways Forge was a happy accident. I was bored and looking for something “interesting” to code. People can go there whole lives without programming something “interesting” and most code is as interesting as a phone book. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvlBcF9LXtu1GCyKTKZB2njnXpoHq048gRKtErRMZYWVeKOpRLXJHa1kReJok4_1uDJbj3MMGVacv2NIti_q4f4EmbHsyTtu-LMLPgW38PucBJEpEfBz3GfMzcwHXplDH9KsqOtYz5AOx/s1600/singenuity.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="400" width="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvlBcF9LXtu1GCyKTKZB2njnXpoHq048gRKtErRMZYWVeKOpRLXJHa1kReJok4_1uDJbj3MMGVacv2NIti_q4f4EmbHsyTtu-LMLPgW38PucBJEpEfBz3GfMzcwHXplDH9KsqOtYz5AOx/s400/singenuity.jpg" /></a></div><br />
Magic: The Gathering had a number of hard problems, such as how to code many different types of cards. Obviously the more card text meant that the card would be tougher to program. Some of the thorny problems were, “How to encode a Magic card into Java?” and “How you do allow a card to override almost any rule?” <br />
<br />
Forge uses two mechanisms for the card code. Readable “scripting” and Java code, which is much longer but infinitely flexible. The scripting is very useful that it probably accounts for 90% of all of the cards in Forge. The scripting has also become more complicated, which is a good thing, because it can be used to add more cards.<br />
<br />
Forge allowed me to witness the trials of a “real program”. Once a program is over 10,000 lines of code, then you start to see all of these tiny problems that you may or may not be able to fix. A “real program” is like a concrete building which is set in stone. Although buildings can be moved and overhauled, they take an enormous amount of effort. (When I began writing Forge I purposefully ignored “protection” because it was too complicated. I was amazed when Dennis changed hundreds of lines of code just to get protection working.)<br />
<br />
The graphic user interface (gui) is also a hard problem, with no clear solution. There is a ton of information that the player would like to have at his fingertips and the screen quickly become full. I took my stab at Forge’s gui design and it was functional but sparse. More and more gui details have been added, such as attacking and defending icons, which makes the game easier to play.<br />
<br />
The gui continues to evolve. Here is a beautiful screenshot to wet your whistle. (Please note that this gui is not currently available and is a work-in-progress.)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjICu1dZ2WzK_JlSP7dBYuUm7JeBun4pOWbFChqSgfCQb2i-YXweJNKQq-IIdb-sapLzoR7S8gv8R2chg5srduT9EDZsPjXJ816Rcz7eadGk7CN2jPBPcJnQq665ToJqzLYTcMMPe1hItGp/s1600/New+UI.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="240" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjICu1dZ2WzK_JlSP7dBYuUm7JeBun4pOWbFChqSgfCQb2i-YXweJNKQq-IIdb-sapLzoR7S8gv8R2chg5srduT9EDZsPjXJ816Rcz7eadGk7CN2jPBPcJnQq665ToJqzLYTcMMPe1hItGp/s320/New+UI.jpg" /></a></div><br />
Devoted Magic Player,<br />
mtgraresForgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com7tag:blogger.com,1999:blog-889604442512373664.post-87951373189140454012011-12-05T01:08:00.000-08:002011-12-05T01:08:00.136-08:00Forge Sharpens Your SkillsOne of my goals of Forge was to sharpen people's Magic skills even though the AI would be a little dumb. My idea was that people would use a wide variety of cards and could play more games. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9nI1qa8ELPnkz67GHhWnjiptTmWF5kHLH-xenjrQXKg7D7mesO43Z02ema1jbfW0mFa2dCvXbCIpdK0yyCT7zgjDFe4VVGdrEw7SLjJCuaPNc_QhYRqtP9sl99bh_rdZv6ZQGGCrW4o12/s1600/mayorofavabruck.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="320" width="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9nI1qa8ELPnkz67GHhWnjiptTmWF5kHLH-xenjrQXKg7D7mesO43Z02ema1jbfW0mFa2dCvXbCIpdK0yyCT7zgjDFe4VVGdrEw7SLjJCuaPNc_QhYRqtP9sl99bh_rdZv6ZQGGCrW4o12/s320/mayorofavabruck.jpg" /></a></div><br />
Having actual experience with a wide variety of cards is essential to becoming a good Magic player. Rarely will one card be better than another in all circumstances. Comparing Terror and Assassinate will make a good example. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdvl4vaC6UIxzPdKKADz3-FDQFa4BjqmtTiL6v-q9-ajoZl1bGsLNyDWgq2mIIvZPElu4FAKxVRAYDPI38ZtS-vhKbI0_s_ye0LZLfUkhyUlck8yw8ltakcZs4OYAwCjjRNH-3u5lcvuLg/s1600/terror.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="320" width="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdvl4vaC6UIxzPdKKADz3-FDQFa4BjqmtTiL6v-q9-ajoZl1bGsLNyDWgq2mIIvZPElu4FAKxVRAYDPI38ZtS-vhKbI0_s_ye0LZLfUkhyUlck8yw8ltakcZs4OYAwCjjRNH-3u5lcvuLg/s320/terror.jpg" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWr4UpkPw4Ryt54m5iL7id86C7gXy6PZYMkRrQCLe94SfuNwlb1eVaED6s-OCwpmttOe7cZ9WXwgqss7XrU-aa8TGZY_UbGnB_eXbok8PcgoEHrtObwIzv7Y2KhF8DcdUMUsLq6CO89KOJ/s1600/assassinate.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="320" width="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWr4UpkPw4Ryt54m5iL7id86C7gXy6PZYMkRrQCLe94SfuNwlb1eVaED6s-OCwpmttOe7cZ9WXwgqss7XrU-aa8TGZY_UbGnB_eXbok8PcgoEHrtObwIzv7Y2KhF8DcdUMUsLq6CO89KOJ/s320/assassinate.jpg" /></a></div><br />
The question is, "Which card is more valuable?" Obviously Terror costs 1 less and is an instant, making it very valuable. Assassinate can kill any creature if it is tapped, which usually means that the creature gets in one good swing before you can kill it. In general I would take Assassinate over Terror because Assassinate can kill black creatures but it would really depend on the type of deck or format. (Forge doesn't really use the concept of formats like Modern or Legacy.)<br />
<br />
Obviously the best way to get better at Magic is to just play the game. It doesn't matter if your opponent is the reigning world champion (<a href="http://en.wikipedia.org/wiki/Magic:_The_Gathering_World_Championship#2011_World_championship">Jun'ya Iyanaga</a>) or a random friend. Just playing the game will help you know when you should attack and if you are winning or losing. <br />
<br />
(A quick side note, if you are winning you should be willing to trade creatures when you attack but not when you block because you want to the game to end sooner rather than later. If you are losing, you want the game to last longer because you are hoping that you can draw a powerful card to change your situation. When you are losing you should trade creatures very carefully. <br />
<br />
Trading creatures means that both creatures die.)<br />
<br />
In Forge, the AI attacks often to put pressure on you. The AI may even lose because he attacks too much but sometimes the AI is correct. Since the AI tries to be aggressive, it will occasionally startle you and make you sweat, which means that it is a good game.<br />
<br />
Hopefully Forge has made you a better Magic player :+)<br />
<br />
Question of the Week:<br />
Has Forge sharpened you Magic skills?<br />
<br />
Just a guy,<br />
mtgraresForgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com4tag:blogger.com,1999:blog-889604442512373664.post-19573576658871521412011-11-28T13:48:00.000-08:002011-11-28T13:48:00.025-08:00Sealed and Drafting the Forge Way<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw1HRvzfe-97LMV8BP04_x1SMDoMxiTtkoDzQgKYsalqHIYpLk4n6bsUlQ7OxvYULEcpcsu2JC92y7b90MRmQFnwXFG5GsfccXhWLP3Rx-jYOp3i-W7pWszHj_U9YECuCpNWkwTS3ZUHDz/s1600/angel.jpg" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"><img border="0" height="320" width="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw1HRvzfe-97LMV8BP04_x1SMDoMxiTtkoDzQgKYsalqHIYpLk4n6bsUlQ7OxvYULEcpcsu2JC92y7b90MRmQFnwXFG5GsfccXhWLP3Rx-jYOp3i-W7pWszHj_U9YECuCpNWkwTS3ZUHDz/s320/angel.jpg" /></a></div>(This card is an Innistrad token picture which is pretty cool for just a token.)<br />
<br />
Forge’s quest mode is fully realized and fleshed out, while the sealed and drafting modes are bare bones. Obviously Forge’s sealed and drafting modes don’t have questing “levels” and it is easy to win against the computer. <br />
<br />
Unfortunately the drafting mode is very easy. While the AI does create his deck from the cards that he picks, the decks are mediocre at best. The AI could draft much better if the card set was much smaller. Trying to give 9,000+ cards a power rating, such as A or C, is much harder than only giving 350 cards a rating. Forge does allow the user to create a custom set to draft from but it is complicated.<br />
<br />
I do not know how to make the AI better at sealed deck. Basically you are trying to create a deck that is “good” with a semi-random collection of cards. The deck should have a basic mana curve with mostly creatures, some removal is possible, and a few creatures/spells that are good finishers: either creatures with evasion or spells that cause direct damage. While I understand the basics of deck building, I don’t know how to specifically program the AI to build better decks. <br />
<br />
Programming a better drafting AI seems impossible because you need to create a specific formula for the computer to follow. Human intuition is trained through observation but computer programming is accomplished through logical steps, if this is true then do that. Programming is like following a recipe with mathematical precision, there is no “flavor to taste”. <br />
<br />
Basically the computer is an idiot and computer programming makes the idiot appear smarter than he really is. (If you have ever seen an unintelligible error message, you will quickly realize how dumb the computer really is.)<br />
<br />
From the very beginning, I knew that Forge’s drafting and sealed mode would not feel like real life but it would it be an approximation. When you draft in Forge you still have to watch your mana curve, choose good creatures, splash for big spells, and stay in your colors, all of the things that you have to do when you draft in real life. I’ve never drafted or played sealed deck in real life, so for me Forge is as close as it gets. (I’m guessing that most people have haven’t drafted or played sealed deck in real life but who knows.)<br />
<br />
Question of the week:<br />
Have you played draft or sealed deck in real life?<br />
<br />
Currently not programming but has thoughts <br />
of programming again some day…<br />
--mtgrares<br />
<br />
p.s.<br />
--Part of this blog is just me hammering the fact that programming is very hard. Programmers understand this but many other people do not. Think of Java code as concrete. Concrete cannot be randomly thrown around and neither can code. <br />
<br />
--Artificial intelligence is just an illusion, like a magic trick. The illusion can be strong but it doesn’t mean that it is true. I have no fear of computers learning to think and becoming sentient. (Despite many movies to the contrary.)<br />
<br />
Someone once asked, “Can a computer think?”<br />
<br />
He replied, “Does a submarine swim?” <br />
<br />
(Stolen from <a href="http://andyblumenthal.posterous.com/watson-can-swim">here</a>.)Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com12tag:blogger.com,1999:blog-889604442512373664.post-23047394807860890322011-11-26T13:15:00.000-08:002011-11-26T13:15:46.017-08:00The Forum Is Currently Not WorkingCurrently Forge's forum is not working as well slightlymagic.net. I hope the problem is only temporary because the forums have been very useful. Please post any relevant information.Forgehttp://www.blogger.com/profile/15838286606081721333noreply@blogger.com11