To start this post I need to immediately say the following: I don't have any information on plans for Solitaire in Windows Vista (still getting used to not calling it Longhorn) and I'm not talking about Microsoft pulling resources from other teams or important projects, but Solitaire hasn't had a facelift yet.
With that said I'd like to talk about a few crazy ideas I've had about how Microsoft could use Solitaire to evangelise and have people excited about Vista. So please forgive this entry and treat it with a little pinch of salt. As Winsupersite reported on the Longhorn Geeks Bearing Gifts video, good isn't good enough any more.
I've written before about my interest in information visualisation and hopes for Longhorn as part of my CodeProject article on Squarified Treemaps which Chris Sells so kindly commented on!
I'm thinking more around creating a buzz for Beta 2 or the final release because as Robert Scoble rightly mentions Beta 1 is really for developers to get an update on direction before more news at the PDC.
Everyone knows Solitaire, it's probably one of the first applications people used to learn basic mouse skills like drag'n'drop and resizing windows. So what could we do to give it a complete makeover for 2006 and get people saying you have to see this?
There is always a tricky line when altering an application that people know and possibly play quite often. Some UI changes have been discussed before by Chris Sells in his Longhorn Foghorn series and the work on a set of XAML vector graphic cards using Avalon (Windows Presentation Foundation now!) by Adam Nathan in his look at converting Internet Hearts.
Other ideas could be to add a winnable mode as Eric Sink developed in his MicroISV column. Maybe some tie-in with the SmartPhone & PocketPC version?
Multi-player support similar to that already in MSN Messenger. centralised high scores all communicating using Indigo (sorry WCF) as the messaging transport.
Concentrating further on the graphic side of things, let's make the experience more animated with a dealer spreading the cards out on the table and dealing them into columns. I'm not talking about photo realistic graphics but more like an invisible dealer where the cards slide out of a pack.
Let's use the 3D support in Avalon and bump mapping of DirectX for the green felt of the card table. Use different camera angles as noted by Nate Dunlap:
Everytime the slide would change we would move the camera in 3D space and create this dramatic world pivot to accentuate the change. Really got me thinking about how to use that effect to provide user feedback about what has just happened. Maybe small camera movements will highlight small levels of progress but when you hit submit you get a huge camera movement.
Perhaps a top-down view as the cards are dealt and then pan around to a slightly angled view whilst playing.
As the mouse moves over the cards a corner folding technique could be used to see what the next card is.
Different skill levels could be done by how the dealer animations happen, ie. high skill means vegas style shuffling - merging two halves into each other, passing bettwen two hands and lower level more like slowly chopping cards randomly in one hand.
Following the Aero philosophy:
The Aero philosophy is not only to deliver a user experience that feels great but also to fundamentally change the way usability is measured. In the past, Windows focused heavily on usability as defined by such metrics as discoverability, time to task, and task completion. Aero continues to deliver on these metrics, but it will also enable Windows Vista and WinFX applications to generate a positive connection with users on first sight, on first use, and over the long term.
The cards, especially around the edges, could get more of a worn look as you play further games, making the experience longer lasting than just the normal "first-use" wizard style help and more like the Office menus which change to the functionality you use most often.
How about building a swapping community around skinning the card desks, it is certainly a huge craze for mobile phones and seeming the new Xbox 360 too.
What about releasing the source code as OpenSource similar to Wix or at least elements of it as an example of Avalon, Indigo and Longhorn development.
Finally let us improve the end game sequence, here I'm thinkng of combining the 3D Avalon features with a physics engine. For example, using the Havok engine or the Novodex Rocket engine.
Try the Novodex Rocket demo of the Jenga Tower and then think of a card tower. Quick aside: We had fun at the London .NET Usergroup last week playing the XP game with players trying to create 2 story card towers after Graham Brooks' talk.
The user would then be be able to slowly pull at the different cards using the mouse, with real-time rigid body physics deciding when the tower would fall, just as with the Novodex Rocket demo it would be truly satisfying, stress relieving and enjoyable end game.
Ending with all the cards fallen:
Can we implement a physics engine library which could be added using XAML markup within a 3D scene?
As I said at the start I'm not expecting Microsoft to alter Solitaire as described, this has just been my run-away thoughts on how to get people talking about Windows Vista. Nor am I saying I'm about to code these changes myself either! All these suggestions must be taken as ideas, I like everyone else don't want UIs that are too "flashy" and over use 3D just for the sake of it..
In the meantime we can watch the great work by Karsten Januszewski including the demo at the Flash Forward conference, Carter Maslan's concept videos and Tim Sneath's list of Avalon bloggers. So let's all get developing with the WinFX SDK right away!
(Note: Many photos used to demonstrate ideas are from GettyImages)