Wednesday, November 19, 2008

Suggest a Topic

This is probably the lamest post ever but hopefully it will generate a number of comments. What do you, the reader, want to read about? What topics interest you the most? I feel like I’ve talked about everything concerning Magic and MTG Forge twice over.

I do a decent job of just working on MTG Forge and then writing about my experiences. I try to write about computer programming in an interesting fashion. I love to program and I think programming is exciting. And computer programming is especially exciting when you combine it with something fun like Magic: The Gathering. While I’m sure I could get a little excited about coding some sort of business billing application, working on a game I enjoy is much more interesting.

My goal when I write for this blog is to involve both computer programming and Magic. I try not to delve too deep into programming because I don’t want to alienate anyone, although I have a great idea for my update of the Observer pattern which I call an Ordered Observer.

So in closing, tell me what you want to read about. Do you want me to do the occasional Magic rules lawyering, such as explaining the interaction of continuous effects which has 6 layers, section 418.5 in the comprehensive rules? Or do you just want me to talk more about programming Magic? I wouldn’t mind writing a few articles about just Magic but I’m not sure what specifically to write about.

So just post a comment about what topics are interesting to you. For each comment you post I'll send you one mythic rare (this offer is invalid if you own more than 3 Magic cards). Truthfully I don't any mythic rares, so you all are out of luck ;)


Warren said...


I am a new player to Magic the Gathering. (in fact i am learning the game through your wonderful programs)

As a new player, i appreciate if you could post on:

1) "staple" cards, which is commonly used in many decks
2) The various card abilities (like "flying" and newer and more complicated ones like "exalted", and how you programmed them)

I am new to both programming and Magic, do take my comments with pinch of salt

Anonymous said...

High level architecture of the components involved.

What patterns are used, observer model etc.

Fueled said...

I believe there are plenty of other sources to learn about the intricacies of the game, but there are not so many that address the game in view of computer programming.
In my mind, you should stick to that subject and let us know your plans for future design.
Your thoughts on AI are also interesting and can stir up discussion on the subject.

kenny said...

I'm also new to the game through your application. I *love* to program, so I'm really enjoying your articles on programming the game! More of those, please!

BTW - I'm learning a lot from reading your posts! So, that's awesome, too!

Forge said...

Thanks for the comments, hopefully I'll get a few more :) These are all good subjects. To kenny, I'm glad someone is learning something from my posts. I do this because I just like to write and program.

Forge said...

By the way, the card art is a funky Time Spiral token. I thought it looked wierd, so I used it, lol.

Forge said...

The truth is that much of computer programming is like laying cement, every inch is needed but it isn't much interesting to talk about.

About flying and such, it is pretty simple I have a function that takes to creatures and returns true if the second create and can block the first. All evasion abilities like landwalk and fear are added to the function and now it is rather long. The computer uses it to figure out which creatures can be used to block.

canBlock(Card a, Card b) : boolean

Forge said...

I was thinking about converting this to a general videogame programming blog because I really love this game, Fantastic Contraption. You build a little machine that moves an object from point A to point B. The game is very simple but very fun. I would love to program my own version. I would suggest that you try it, you can play it through your browser here.

Forge said...

Also I'm not working much on version 2, I probably made the project too hard for myself.

Version 1 is 95% of what I wanted to accomplish. (The other 5% is a quest mode where you start with a generic deck and you win money by winning your match. And then you buy cards at the game shop.) I probably can hack on a quest mode to the current version and I would love to play it myself.

Anonymous said...


You should totally do a quest mode. That would make MTGForge rock.

rising fruition said...

Regarding Fantastic Contraption: OMG!!! That game sucked me in for a solid week (like playing until the sun came up; I have a pretty flexible work schedule) Then every few days I would go back and try to do the same levels with fewer pieces.
That game is so WICKED GOOD that I won't pay the insignificant $10 to buy the FULL game with more levels. They would have to PAY ME to take it, because it would cost me so much in lost productivity!

rising fruition said...

Regarding Post Ideas:
I really enjoy the posts that talk about how some feature of Magic is implemented. Also, talking about design is good: what were your tradeoffs when you chose to go with that design? What other ways of implementing something did you consider?

I would like to some day be good enough at programming that I could implement MTG. (Meaning in about one tenth the time it might take me now.) I prefer to play with people who are at the same table as me. I'm strange that way. But besides just being a super cool project, I love the idea of artificial intelligence: another huge nut to crack. Even lacking that, if you had a Magic program that could play and undo, and had a search algorithm, you might be able to find some wicked combos by having the computer do lots of searching. Sounds very mechanical when you put it that way. Pro players might like it if you could put in new cards quickly so they could figure out lots of combos when new sets come out. But maybe they are good enough that they figure most of them out by themselves.

Magic has enough meat on it to be a very significant accomplishment in my book. Good job on version 1 Forge.
And regarding you making version 2 too hard for yourself, I feel for you. That's how most of my projects go; I list so many things that I want the program to do that it gets to be overwhelming.

Gando the Wandering Fool said...

Re: general discussion blog -- Rares it is your blog...Not sure how many people will be as interested in the contraptions programming as the mtg programming but dont let that stop you.

Re: The forum post I made...I meant every word of it. But I have a few additional comments to add here:
1) If something is too hard it is usually because you are trying to do too much of it at one need to know what you chunkable level is and stick with that. set a lower expectation for functionality and go with that. Then raise the bar when you know how.

2)What you are doing is in a sense inventing the wheel since you are turning a very complex interactive game into code. And in addition you are supplying the other player. Even in Chess where the heuristics are well known and there are libraries that a programmer can use to build the AI it is no easy task to make a good computer opponent. And alot of the tricks that work for the chess game don't work in mtg because of the complexities of the interactions between players and cards.

3) all these things said I believe it is doable for you to fix what doesn't work in MTG Forge 1 and put out a good MTG Forge 2 with a bit of effort and help from your community. So my suggestion is if you haven't completely forsaken the idea ask for help. Show us your code, tell us your difficulties in specific and let the community give you suggestions/pointers etc to help overcome these obstacles.

NO ONE should expect you to be Atlas with this. You have done alot of the framework already for the conceptualization and functionality would be a shame to go only half the distance and just walk away.

It is up to you and I will support whatever you decide...Believe it or not I AM a fan of MTG Forge and I want to see it functional and working the way everyone wants it to be. I think it is awesome people are actually learning to play (albiet wrongly...but that issue is easily solved when they meet people irl who play.)

Anonymous said...

Very Off-Topic: Yesterday I bought my very first Booster Shards of Alara. First Booster -> first mythic rare :-) Must be starters luck...

Forge said...

LOL, great comments. Truthfully I'll probably change this blog into more general videogame programming blog. I really want to program Fantastic Contraption (FC) and after that I probably go back to Magic. FC is just great and the project should be fairly small. I need a fun small project to refresh myself.

Even though I plan to work on FC, I'm not going to ignore MTG Forge. I may work a little on both.

I realize some of my readers may want to only read about Magic and I understand that. Whenever I get back to MTG Forge version 2, I'll post it on some forums and remind everybody ;)

Forge said...

Gando and others, thanks for the support :}

Forge said...

OK, tentative plan, get MTG Forge 2.0 working with 50 cards and then work on my version of Fantastic Contraption Full details on Monday. :--)