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

Monday, June 7, 2010

User Interface – Simple but Good

Forge’s user interface is basic but useable. The gray background isn’t fancy but at least it uses the card pictures for cards on the battlefield. (Man, I’ll never get used to this new fangled terminology. My head still calls it the “in play” zone. I sound like a crufty 65 year old but I’m only 31.)

Forge’s user interface doesn’t even have fancy little arrows to show you which creatures are attacking and blocking. It uses a plain old text box which shows the defending creature “tabbed” and underneath the attacker. While this is far from optimal, I don’t think I’ve ever received a complaint about combat.

The same thing goes for the deck editor. It is very basic and just shows the card’s stats. The deck editor allows you to sort cards based on color, card name, mana cost, attack or defense. I’m sure a better deck editor exists but at least this one works pretty good. Additionally it can filter cards based on the cards text which is great. (For some reason the filter is slow but maybe we can speed that up later.) (By the way, I have built decks in Yu-Gi-Oh for Gameboy Advance which was a huge pain in the neck since it didn’t have a mouse. While Yu-Gi-Oh isn’t great, it was a good “intro” card game.)

Forge’s main screen which shows the battlefield and the cards in your hand doesn’t have any eye candy but it still works well. Forge even works if you don’t download the card pictures. If the card picture for a card is missing, you will see just a colored textbox.

Originally Forge didn’t show the card pictures on the battlefield and all of the cards were represented using the colored textboxes. That is harkening back to the time when I received complains about the user interface. After it was prettied up a little, the complaints stopped.

And while Forge isn’t the prettiest, it is still #1 in my mind.

p.s.I found this quote which is great summary of the trials of computer programming. It is by Frederick Brooks author of the Mythical Man-Month,

“To avoid bugs one must perform perfectly. If one character, one pause, of the incantation is not in the proper form, the magic doesn’t work. Human beings are not accustomed to being perfect and few areas of human activity demand it. Adjustment to the requirement for perfection is, I think, the most difficult part of learning to program.”

Human beings are far from perfect. I made about 4 errors just typing the quote.

Hey there, just a quick thought about the interface. You could try creating a flash version of the interface. Flash movies should work on linux too and are totally customizable. There are ways to control a flash movie from a java program. You could draw transparent glowing arrows and do any eyecandies you can think of:)

Though it would take a lot of work to rewrite the whole program to work with a new interface. And if java is slow then Flash is ultra-slow:) But if you ever consider "upgrading" the UI, give flash a chance.

This is very nicely done and I've played it quite a bit. The one issue I've had is that sometimes when I'm quickly going through phases of turns, I get ahead a bit, losing track of when I want to stop and do something. I've always thought a clock to show how far though 1 round you've gone, would give you quick visible feedback. Humans read graphics better than text.