Microsoft Sparkle the next universal skin format?
Extreme UI development
Tuesday, November 15, 2005 by Frogboy | Discussion: XAML
What year is it again? Oh yea, 2005 I think. I've been coding a lot lately on Galactic Civilizations II. I work mostly on the computer AI. So if it seems like I haven't been around a lot, the main reason for that is that I haven't. Lots of coding.
For GalCiv, we are using DesktopX as our way of designing the user interface. Using DesktopX is kind of like our secret weapon. Next time you play a game, any game, notice how primitive the user interfaces, dialogs, and other non "action" areas of the game are. Even on huge mega-budget titles like Battlefield 2 or Age of Empires III or on console games, the parts of the game that have buttons, text, and other information/UI elements are typically very primitive. By contrast, in Galactic Civilizations II, they look really nice. And the kicker is, it probably takes less time for us to create a screen and hook it up than it does in those games with the more primitive UIs. That's because, as any DesktopX user can tell you, when you're designing your creation in DesktopX, it's live all the time. Literally. For GalCiv, we wrote a DirectX 9 UI engine that takes .DXPacks (DesktopX packages) and runs them in 3D. For instance, here's the Alert dialog as a DXPack.
To save this is the wave of the future is probably a cliché but it's true. Microsoft certainly believes it. For Windows Vista, Microsoft is delivering a new suite of software development tools called Expression. One of these tools is called "Sparkle". The idea is to split the GUI development part away from the coding part. Anyone who has made an advanced Winamp skin or Windows Media Player skin or a DesktopX widget knows that there are plenty of cases where the artist and coder are two different people because it takes two very different types of expertise to get that down pat. That's what Sparkle is to do.
In some respects, one might argue that Sparkle is a DesktopX killer. And if DesktopX doesn't evolve, then in the long term, Sparkle will kill DesktopX. Here's why: When you create something with DesktopX you save it as either a gadget/widget (.exe), a .dxpack, or a desktop (.desktop). In realty, it's all pretty much the same with the file extension being there more to tell the system how to launch the thing. Inside the given file is typically an XML file that describes visually the object, a VB Script (of Javascript) for the code and PNG files for the images. The idea with Sparkle is that a user creates their UI and exports it as XAML (XML for applications). XAML can be used to describe virtually anything visually. It's resolution independent and can handle 3D formats (3D Studio, Maya, etc.). Then someone would use Visual Studio 2005 to create the C# or VB.net for the coding make use of the XAML as a resource. It's very similar to what DesktopX does.
So what does DesktopX need to do? It will (and should) evolve. Vista marks a new generation for software development. Sparkle and Visual Studio 2005 are way over-kill for the kinds of things people currently use DesktopX for. I'm skeptical of how many people really are going to want to have to use those programs to create gadgets and such. But DesktopX will need to embrace XAML in a big way IMO. When you export your creations, they should be XAML inside. That will mean they'll only work on XP and Vista but I think by end of 2006, Win2K/98Frogboy will be so legacy as to not be much of a factor.
For users and skinners, it'll be a glorious day. For 3D artists it'll be a golden age. And for developers it will mean being able to bring their visions to fruition. One can imagine websites like WinCustomize.com having huge sections for people to upload XAML creations. In some respects, XAML could become a universal skinning format for applications. In a sense, that's what it's designed for. At that point you'll have two different kinds of skinning formats: WindowBlinds for the Windows GUI and XAML for everything else (only reason not to use XAML on the Windows GUI is because the GUI of the OS and its native UI apps is preset).
Stay tuned to WinCustomize.com as Sparkle gets closer to release. And be prepared for a ton of software (both from companies like Stardock to many other third parties) to make use of this. With a universal skinning format, the customization communities will likely become more unified and applications won't be starved for content.