The UX of Solitaire

A while back someone had pointed me to World of Solitaire and asked for some UX advice.  I tell it like it is, so for good and for bad, I will give my best advice.

First, the good stuff.  This is a technical marvel.  Honestly, this is a ridiculously rich experience all done with 500kb of YUI and hard work (and 2 megs of images).  I can’t believe someone had the patience and wherewithal to build this thing.  It’s absolutely marvelous and detailed.  Lots of options for backgrounds, decks and games.  It has more solitaire games than I could shake a stick at.

As personal background, Solitaire and Freecell are two of my favorite games.  When I have a few minutes to kill, I often launch the Windows Vista versions of solitaire and freecell, which are just gorgeous.  Really slick games.  I like breakout on my cheap cell phone too, especially when I am in my favorite thinking spot (the bathroom).

The desktop version of solitaire has some pros and cons versus the online version.  The desktop version is slicker.  Nicer animations, smoother graphics and better interaction.  However, it only works on Vista which is a major drawback.  I would still use it as the gold standard for interaction design of solitaire and try to make the online version almost identical.  Also, the online version has MANY more solitaire versions, so that is a pro over the desktop version.

Some specific advice:

  1. Keyboard shortcuts.  There is no reason not to include keyboard shortcuts in an RIA application.  Control-Z means undo.  Spacebar should throw the card up in freecell.  (Actually, double-click should do this too).  Think about ALL of the ways that a user might try something and make them all work.  Like single click on one column and then click on another.  This should mean “move”.
  2. Bigger canvas.  I think the site wastes too much space on credits and options.  Those things should be overlays and not hard canvas boundaries.  Big cards are a must.  One thing I found annoying is how often the game reloaded the cards in a different size. Very distracting.
  3. Experiment with alternate rendering engines.  Try possibly using the canvas tag or even flash for the main game.  Actionscript is alot like Javascript.  This might be a pipe dream, but it seems that there should be a more cutting edge rending engine that could resize the cards dynamically rather than reload them as images.  I also thought the cards could have more 3D effect, like shadow. And when the cards are dragged they should be “lit” in some way.
  4. Upload your own background pattern.  This is a nice to have, but it might be fun.

I wonder how this kind of site makes any money.  The author has a blog here, but it isn’t clear how he does this site.  If it is pure love of card games, I stand in awe.  The web is so awesome that someone can just decide to do something fun like this and make it a reality.

Well, there it is.  Definitely a cutting edge RIA, but also still not quite as rich as the desktop.  We are getting closer and closer.  Hopefully, we all keep pushing the envelope.

2 replies on “The UX of Solitaire”

Glen, thank you VERY much for reviewing the site. I subscribe to your RSS feed and enjoy reading your view points on the ‘UX’ of various sites.

I totally agree on adding keyboard shortcuts to actions. Double click currently works on some things, but could be expanded to work on more. Your advice on thinking about every action a user might try and take is a great one. I’ve moved these suggestions much higher on my to-do list.
I also feel I can probably squeeze some more rendering space by reducing some padding and a few other things. So I’ve made a note of this on my To-Do list as well.

I don’t make any money on the site at all. I pay for the server with money I make on my day job as a programmer for a startup.
My main goal in creating it was the fun and technical challenge of seeing if I could do what I had envisioned in my head.
My reason for keeping it running is because so many people are enjoying playing. I like that people are getting enjoying the games, making their days a little better.

Since running the site is just a spare time sort of thing for me, I don’t believe I’ll be experimenting with alternate rendering engines due to the time that would take and the fact that using flash or even canvas would limit which computers can access the site (right now it works in IE6, IE7, Safari, Opera, Konqueror and FF)

Thanks again for reviewing the site and the awesome feedback. I really appreciate it 🙂

Robert, for a project just for fun and technical challenge it is absolutely astounding. Its awesome. For me, I often lose interest in projects before they are complete. It’s impressive that you stuck with it all the way and didn’t stop at just a prototype.

One of the reasons I suggested alternate rendering is specifically NOT to improve it as a product but to explore the latest/greatest technologies. However, it brings up a good product management issue. Great products have a sharp line between the rendering engine and the backend processing/logic. I have seen so many projects where it is all mixed together. This means any rendering change has backend implications. In your case, the rules of the game, what is an “acceptable” move and the rest should be separated from how the user interacts with the mouse. You see the benefit of that?

Anyway, besides “open-source” projects, this is the most impressive “side-projects” I have seen. Thanks for doing it!

Whatya think?