I received a cheque from Microsoft the other day for the magnificent sum of $12.17. This would have depressed me if I thought I'd be getting rich from developing a Windows Phone app, but our educational game was more about investigating development for Windows Phone and its distribution system, and it was also a vanity project, as we were updating one of our PC games from the early 1980s.
As we move into beta testing our latest version of our PC application, I'm faced with the usual decision on software distribution. The first problem is activation. Ideally, we should be able to distribute the program freely in demo mode. The software should generate a localised serial number on the user's computer, and this, when returned to us, would be used to generate an unlock code that would be supplied to the user after appropriate payment. Our previous version used a DLL for generating the serial number and lock code, and was embedded in the software. The new version will need the same functionality, but we're loathe to write the code ourselves, and the previous version had us manually generating the unlock codes from emails sent by our clients.
These days, you really need online activation, which inevitably means online payment and a client database. You can, of course, do it all yourself. Various WPF Controls are available for software protection, PayPal will give you online payment as well as debit and credit card payment, and a number of other merchants offer similar facilities. You can tie that together with some HTML/web services to an internal database. With all of that done, you only have to convince people to come to your website.
Individuals from Valve and Blizzard have recently shown some alarm at the coming Windows 8 and its accompanying Windows Store. They can hardly complain about Win 8's performance, as testing shows that their software and games should actually perform better. It seems to be more of an aversion to Windows Store competing with their Steam and Battle.net game-delivery platforms. To be clear, both Steam and Battle.net work fine on Windows 8, but Windows RT (the style formerly known as "Metro-style") apps and applications will only come from Windows Store. Windows RT refers to Runtime, and uses the WinRT framework — a Windows runtime library that functions on both ARM and x86 platforms. As developers transition to WinRT and leave Win32 APIs behind, they'll have to use Windows Store to distribute their apps.
You could, of course, write applications that will only run on the x86 desktop, but that coming market of Windows 8 ARM tablets and Windows Phones is very attractive.
Which brings me back to my cheque from Microsoft. Developing for Windows Phone and distribution through its marketplace has been an almost trouble-free and painless experience, though not financially rewarding.
Doing so has shown the following benefits: you can easily include the few code lines that allow your app to function in demo mode; Microsoft leads you through by providing screenshots, price and marketing materials; when an app package is uploaded, the code is scanned for nasty behaviour; your app appears in the global marketplace, and people may try it out for free; downloading and payment is handled by Microsoft; information on purchases is easily accessible; and, importantly, you get paid.
I imagine I'll have much the same experience when publishing in the new Windows Store. I will no longer have to worry about software protection, download server, activation server, online purchases, or client accounting. My software is available globally, and the product has also been marked "safe" by Microsoft.
So, what's the downside?
Money is always important, and Microsoft will take 30 per cent for displaying and distributing your app; the app must be priced below $1000; Windows RT is Metro, and its UI, restrictions, sandboxing, and new features may require significant rewriting or rethinking your application; Windows RT software will only be available from the Windows store; and your app may be lost amongst thousands of other apps.
From a Windows developer's point of view, I think the advantages outweigh any downsides.
Ease of distribution and a global marketplace are hard to pass up. As for Blizzard and Valve, it's not just about games, and Windows Store looks like the way we'll be purchasing Windows software in the future. If I were at either of those companies, I'd be seriously looking at Windows RT for future Windows game development, and thinking about outsourcing Windows distribution and sales to Microsoft.
Microsoft is essentially offering a retail outlet for your product for a 30 per cent fee (20 per cent, once you sell $25,000), but it will be the only retail outlet for Windows RT applications. Microsoft also has the power to refuse your application on various grounds. This may be disquieting to some, and it certainly offers the possibility of censorship and abuse of power, but it's already the method used by Apple and, to a lesser extent, Google, for their iOS and Android apps. It's also not the only method of distributing apps, as x86 applications and HTML 5 apps can be distributed freely.
I'm hoping Windows Store will also let me distribute x86 apps, but I suspect that it won't. Thankfully, our application is full screen, which suits Metro, so I'm starting to think how I can compress four levels of overlaid windows into the new UI, and transition from WPF to WinRT.
Tony is the owner and managing director of Microcraft eLearning and is one of the creators of the AUTHOR eLearning Development System.