Saturday, January 9, 2010

Version 2 Features

This is just a short list of features for Forge 2.

1. Better AI, which also includes AI versus AI. Some AI algorithms can help the computer play better but the computer has to play many games, like a thousand or a hundred thousand. The Temporal Difference algorithm can improve if the AI can play itself.

If I can get AI versus AI working, the AI can play itself and try to find game-crashing errors. Also I’ve heard that watching the AI play itself is a good screensaver. The Wagic project has an AI versus AI mode. Wagic is designed to run on a Playstation Portable (PSP) but it can also run on Windows. It lets you play against the AI like Forge.

2. Better more strict rules interpretation. I want to make the rules engine rock solid and more flexible so it can handle Magic’s insane variety of card effects.

3. Complete code testing coverage with JUnit which will help to stamp out and isolate bugs as well as refactoring.

One “non-feature” is a better user interface. It is always in the back of my mind but I don’t plan on improving the user interface until the rules engine can handle a couple thousand cards.


Anonymous said...

Ah, I am one of those who likes a game playing itself as screensaver. Wagic does indeed do it, but the linux port is somewhat...well, not that convenient to have as one.
Hence I find it great news for AI vs AI games to be possible, I really missed it in Forge. I hope it can be tested soon!

telengard said...

Hehe, I love watching my game play itself (2 AIs) at high speed. Very enthralling (and it is also good for finding bugs).

Anonymous said...

Great idea on letting the AI play its self. I ran into an issue with a card that returned a target creature controlled by the opponent, it was supposed to go to the owners hand but ended up in my hand instead causing a crash.

I know this is a new program but it shows a lot of potential, don't give up.

Robert said...


I've been following your blog, I'm a fellow coder.

You may want to investigate TestNG as a possible alternative to JUnit.

I look forward to reading future posts :)