Wednesday, May 14, 2008

MOL

MOL stands for “Magic Online” and it isn’t doing too well. Version 3 is fresh out of the gates but is lagging way behind. Version 2.5 looked fine to me but I guess it had server issues and maybe couldn’t handle the newer card mechanics. Version 3 seems very stable, but worse at everything else.

The user interface, which is critically important, is getting many complaints. The number one criticism seems to be that the cards are hard to read. While this is a very specific complaint, it might be very hard to fix. And by “very hard” I mean it could take weeks to fix or it may be unfixable. A bad user interface can break an application, that is the reason many videogames look so good but play so badly. The number one complaint I’ve received about MTG Forge has been about the interface.

Designing the “next version” of a piece of software is difficult. For each great new feature that you want to add, it comes with added complexity and complexity is very, very bad. Complicated code takes about twice as long to write. It takes more time to write and more effort to debug. Personally I was amazed that version 2.5 supported multiplayer games since so many cards had to be updated or changed for group play. Version 3 probably should have kept everything the same and just improved the server stability.

Version 3 is the first version that Wizards has developed internally. While most people may think this is a minor point, it is actually very important. Developing your own internal version of Magic Online is like asking a car fix-it place to design a new car engine from scratch.

Version 2.5 was developed externally by the now defunct Leaping Lizards (their logo was very annoying) and Wizards just modified the existing code. Wizards has gone from just making cards and games to developing software. There will be some growing pains as Wizards becomes a better software company. And while version 3 won’t win any awards, Magic Online will continue to improve.

p.s.
There is an old programmer’s joke that goes like this. “You can have software that is easy to use, cheap, or reliable. Pick any 2 out of 3.” Easy to use, cheap code won’t be reliable. Easy to use, reliable code will be very expensive. And cheap, reliable code will be hard to use. MTG Forge falls into this last category :)

p.p.s.
This is probably the funniest article about software development that you are going to read.
Scouse of Cards - The Trouble With Version 3
http://www.starcitygames.com/php/news/article/15781.html

12 comments:

Forge said...

Secret new version of MTG Forge with 240 new creatures!!! To keep your decks, make sure to copy the file "all-decks2". I'll anounce this Monday on my blog. It pays to read the comments, lol.
Download

Nanocore said...

Can't wait....

Wondering how you got 240 new creatures...? Did you write code that covers a large range of creatures or have you just been heads down coding your fingers off?

slyphidine said...

Sprout Swarm:
"Sorry, no convoke yet"

That's hilarious.

Thanks for fixing the damage box issue. For the record, I'm a big fan of the resizable game area.

Silly Freak said...

just saw a little bug... don't know if it was reported already. I returned a sower of temptation to my opponent's deck, but didn't get my creature back. I guess it triggers only from destruction or sacriWhateverTheNounIs?

Rob Cashwalker said...

nanocore - "Did you write code that covers a large range of creatures or have you just been heads down coding your fingers off?"

Let's just say this little birdie told him....

A little birdie who took a month-long journey through the multiverse in search of vanilla and french-vanilla creatures.

There's a couple hundred of 'em.

Leo said...

How do you tap cards in MTG Forge?

Rob Cashwalker said...

Leo, do you mean, how does Forge indicate that they're tapped or how does it track tapping in the game state or how does a user tap a card?

On the GUI, cards are indicated as tapped, by having a bar of text written on it "TAPPED".

In the game ste, each card object has a method called .Tap()

The user can only tap a card when appropriate through game actions. You can't float mana, so you can't just tap a card willy-nilly.

Nanocore said...

To cashwalker....then pass along a special thanks to that little birdie...

ronkotus said...

Hi,
The automatic download of card pictures doesn't seem to work. A new "You must be connected to the Internet." Error window just pops up on top of the Downloading window, even though I am connected. I also checked that my Firewall isn't blocking it. Any suggestions?

Forge said...

Thanks to Rob Cashwalker for the new creatures. He cut-and-pasted like a madman and included the rarity and card pictures.

The new version downloads all of the card pictures correctly.

About Sower of Temptation, think of it like Control Magic. It is hard to program "return that creature to its owner when this creature leaves play." MTG Forge implements "leaves play" as destroyed, which works most of the time but bounce and other cards will make things work incorrectly. So if "leaves play" means destroyed, everything works fine.

Forge said...

The new creatures are all stuck into cards.txt :)

Forge said...

Lol, I wanted to warn people that Sprout Swarm didn't have convoke on purpose. It was an intential omission. I'm glad you like the resizable option, it was written by a reader and sent to me.