Windows Store: The Worst Possible Thing

TheWorstPossibleThingNext week is a big one for Microsoft.  They will launch the next Windows desktop, a new tablet, and new version of Office for both.  Much has been made of the new "Don't Call Me Metro" UI, the price point of the tablet hardware, and the interest of consumers in anything not made by Apple.  I'm not interested in disusing the validity of those concerns, but I will say as a developer I see no need to support anything new coming from Redmond.  And in my view all problems stem from the Windows Store.

Windows Fragmentation

Crazy to think Microsoft would copy the worst feature of Android, but not only have they copied it, they embraced and extended it.

For over a decade Microsoft has been pushing .Net as the platform independent development framework.  "Platform" means "Microsoft Platforms" but if you are in the ecosystem .Net has your back.  The Developer Division has done an excellent job of evolving .Net - for all the gripes I may have I must thank them for this.  Dynamic language features have been added, several development models are supported, and many pieces have been released as open source.  But then, like King Solomon, we decided to split things up...

There are currently 3 Microsoft run stores reaching across 4 platforms.  The options are Xbox Live Indie Games, Windows Phone Store, and Windows Desktop and Tablet store.  All of these are digital distribution platforms for consumer software.

Xbox Live Indies Games have been around a while, and is the oldest.  On the Xbox you may use one version of C# and XNA.  You may only use one version of C# and XNA.  You may not use any popular engines like Unity or Unreal.  You may price you game at $1, $3, or $5.  You may not connect to the internet, have achievements, or leaderboards that intergrate with the gamer's profile of other achievements and leaderboards.  If you choose to implement your own achievements and leaderboard (the latter by peer-to-peer networking Xboxes as cannot connect to the internet), you may not use the terms "achievement" or "leaderboard".  You also may not use the Kinect SDK on the Xbox.

You might excuse the draconian limitations of the Xbox store because it's a game console, a different market, or that Microsoft has never been conformable leading innovation and prefers to follow others.  It's hard though to understand why this limitation mindset followed to the Windows Phone.  The phone does let you use a few more language options and you can use SilverLight or XNA, but are still blocked third party frameworks like Unity and Unreal.  Crazy API limitations were also enforced, such as you may not use the phone's camera directly.  Thus, no Instagram on WP7.  The one good thing I can say for the phone platform is that it's easy to port XNA PC/XNA games to.  Sadly, to make this possible Microsoft released XNA 4.0 which is 90% a dumbing down of XNA 3.1 so it can run on the phone while making the Xbox use 4.0 as well.

The new store launching this week will only sell apps that use Windows RT.  RT is a new runtime that is not .Net based.  There is no support for XNA or Silverlight.  There is some support for C#, but it is limited and you may find you need to use C++ (this is mostly true for games that more than the simplest of graphics requirements).  There is a promise of 100% feature parity between JavaScript, C#, and C++ but its just a promise.  RT is in its infancy and many system libraries that make development easy do not exist.

With Windows 8, Windows Surface (tablet), and Windows Phone 8 Microsoft has opened up to allow 3rd party frameworks like Unity and Unreal.  This is great, because as a game developer this is the best way to reach these new platforms.  Windows 8 and Surface will run RT, Windows Phone 8 will not, and instead still use SilverLight and XNA.  XNA isn't currently supported by Visual Studio 2012 and there is no announced plans to add it, SilverLight 4 & 5 are supported.  Windows 8 desktop will support "desktop mode" apps, but these will not be sold in the Windows Store.

While you might get your head around this for development, there is one other piece of fragmentation.  All of these stores are run by different divisions and do not over lap.  There is a site for Xbox, another for Phone, and another for Desktop and Tablet.  There is a support process for Xbox, another for Phone, and another for Desktop and Tablet.  There is a developer payment system Xbox, another for Phone, and another for Desktop and Tablet.  There is a registration system Xbox, another for Phone, and another for Desktop and Tablet.  Not all stores are available in all regions, both for consumers and for developers.  Each one has a different payment, micropayment, and fee setup.  Each one has a different certification process.  Each one requires different documentation for tax purposes.

Publishers not Developers

The limitations of all these stores can be lifted - if you're a publisher.  A publisher can work with Microsoft behind closed doors and get access to APIs not available to the independent developer. 

Microsoft separates publishers from the lowly commoners in the marketplace.  Games created by independent developers are branded as "indie" and forced to wear a scarlet letter reminder to consumers that these are not full games, and will not support features like leaderboards and achievements in your profile.

Favoring publishers has not only been bad for developers, but consumers as well.  Titles that launched on iOS and Android launched on Windows Phone with a higher price.  In some cases games that were free elsewhere charged $5 or $8 dollars in the Windows Phone Marketplace.  Xbox games stay at full price long after they hit the bargain bin on Steam.

Why?

Probably the best question to ask is why any company would do this.  Why abandon a phone marketplace with over 100,000 apps for a desktop and tablet marketplace struggling to reach 5,000?  Why continue to give favor to publishers who are lazy at best and abusive at worst?  I have a theory on this, though its just a theory.

Microsoft is a competitive work environment.   From department heads battling for control to employee's competing for a share in the bonus pool.  Many employees are ranked within their department best to worst, then given a bonus based on position.  This means to get a bigger bonus it's not enough to be better at your job, you must also be better than your peers.  I believe this creates a tense work environment that encourages employees to work against each.

The second factor is Microsoft is a B2B company, and does not understand consumer marketing.  It can be argued that Windows and Office dominate because that is the standard for business and many home PCs are used for doing some work remotely.  The Xbox 360 stands out, but much of its success can be attributed to exclusive publisher deals, Sony screwing up the PS3 in every possible way, and Nintendo leaving behind hardcore gamers for... waggling.  Timing... is... everything.

The last factor is a result of the other two: Microsoft's problems with commitment.  Xbox Indie Games had a few years before resources were diverted.   The Windows Phone managed to get a year of spotlight.  The Zune... did you know the Zune was planned to have a store as well?  The Zune HD had an SDK, supported SilverLight and XNA, and even had a few apps.  I remember carrying my Zune HD to an MVP summit when it was just over 6 months old.  At the announcement of the new Windows Phone 7 someone asked, "since it will be a while before there is hardware, can the WP7 SDK run on my Zune HD?".  I wondered the same thing.  Then the Zune HD was declared dead: "we are not supporting legacy devices with WP7".

Legacy.  Six months old.  Legacy.  It could run SilverLight and XNA, same as WP7 but was marked as Legacy.  All talk and plans to open up a Zune marketplace were stopped.

Anyone remember the Games for Windows Store?  Didn't think so...

How to Fix It

The fix is pretty easy, but takes a commitment from the top that isn't there.

First, all developers are equal.  No more partner-only APIs.  As "evil" as Apple may be, even they don't do this.  I have access to the same API and SDK as Activision.  Let the consumers decide which apps are best.  The store UI should not artificially segregate apps by size of developer or label some as "indie".  Having a "recommend" list is fine and can be beneficial, but don't make partnership a prerequisite for being on that list.

Second, have a single process for all stores.  Unify and simplify the payment system.  Microsoft is the only company to insist paying international developers in the US.  Apple and Google pay developers in local currency from local offices making tax issues much simpler.  The basics of the certification process and requirements should also be the same across all marketplaces, and there should be a single point of contact for developer support.

Last, and this isn't even as important as the first two, support the same development technologies on all platforms.  Consumers expect to be able to run the same apps on their tablet and phone and should not have to hear from developers it requires a complete rewrite.  To do this I think the first step is to support Silverlight and XNA in the Windows Store and on the Surface tablet.  I see no reason except politics why this cannot be done.  Both have been ported to less powerful devices and will be supported for Windows Phone 8.  If WinRT is the future, then start by rolling out WinRT to all devices as an option and slowly phase it into the ecosystem.  Once its stable, announce a sunset date for SilverLight, XNA, .Net, etc. that gives developers time to migrate.

Bonus, support Windows Store and Windows RT on Windows 7.  Again, no technical reason this cannot be, just politics and possible a reality warped marketing department.  Giving developers easy distribution to the massive install base of Windows 7 will rocket the number of apps available in the Windows Store.  I'm talking Earth to Alpha Centauri in less than a day rocket power.

Happy to be Wrong

It doesn't really matter to me if you think I'm right or wrong.  The market will decide.  The Windows Store will either be a revenue source for developers or not.  I'd love to see Ballmer bragging about how they blew away Apple's $5 Billion paid to developers from the AppStore.  I'd love a tablet and phone market not so heavily dominated by a single company.  (I know, Android is trying but that's another post.)

You might also think I have a games bias, and that this isn't relevant to the Windows Store as a whole.   In 2009 Apple claimed 50,000 Apps in the AppStore.  In 2010 Apple claimed 50,000 Games and Entertainment apps in the AppStore.  We now have approximately 125,000 Games (Entertainment is another 65,000) in an AppStore of just under 700,000 total apps.  Games are the largest category, and while I cannot find official statistics, I would assume its also the largest category by revenue as well.

Games are key - they keep users coming back and users are always willing to buy new games.  You might buy a financial management app, but you won't be checking the store weekly for new financial management apps.  Games on the other hand are disposable apps.  After playing a game for a while, you're ready for a new one.  People spend an average of 7.8 hours a month gaming on their iPhones.  Angry Birds makes $6 Million per month just from ads.  There is an Angry Birds Star Wars game due out November 8th - I'm not sure which franchise is the getting the boost by this.

Its going to be a rough year for Microsoft.  Critics will declare the Windows Store DOA and that may be unfair, but perception is reality.  The desktop OS will move units, but in a world that is using the desktop less and less that is not enough.  The question in my mind is can Microsoft pivot when things aren't working?

Now if you'll excuse me, I need to get back to deciding if I want to learn Unity or MonoGame...

Posted By Mike On Thursday, October 18, 2012
Comments (9)

Submit this story to DotNetKicks   

Isaac - Thursday, October 18, 2012 5:36:17 PM

Hmmm. "There is some support for C#, but it is limited". What part of the C# language do not "work" under Windows RT? As far as I'm aware the language is completely unchanged. How is it "limited"?

Or are you referring to the fact that you can't do Silverlight development on Win RT? To me, this is no different to how the Silverlight runtime can't do many of the things that the full .NET runtime can do. The same way that the .NET client profile can't do some things that the full profile does.

Win RT is just another API to the OS, just like Silverlight - a sandboxed framework that you can write code in C# in.

Michael C. Neel - Thursday, October 18, 2012 6:28:13 PM

The largest missing item is no support for DirectX in C# or Javascript on WinRT, which is why I said this was mostly true of games.

Daniel Dobson - Friday, October 19, 2012 7:48:32 AM

A great article - highly objective. I find myself agreeing in full.

Sebastian Gray - Friday, October 19, 2012 5:55:49 PM

Brilliant article. I don't understand how this isn't seen & acknowledge as an issue in Microsoft.

I was talking to a friend who codes in ObjectiveC about how code written for iOS 2 still runs today, 4 years on and after multiple iOS upgrades. What's amazing is that used to be the attraction of .Net - the portability and backwards support that existed.

Luckily SunBurn will be able to target WinRT and multiple other platforms, using a very familiar API, so we do have a great path forward!

fan of mike - Sunday, October 21, 2012 2:27:24 PM

Loool.. MS took our codes.. derpa derpa..

Regarding the article, less derp'ing, more coding.. also you might want to check your "facts", i suspect some (if not most of them) are wrong and you're making up stuff (or are just misinformed) because :
a) MS took your XNA (which is a good thing, just check http://www.madgamedev.com/post/2012/04/24/XNA-8211;-The-state-of-play.aspx).
b) You're "leveling up" to your fellow "internet journalists".

Small example of your "journalistic" perls:
- "There is some support for C#, but it is limited and you may find you need to use C++ (this is mostly true for games that more than the simplest of graphics requirements). "
http://sharpdx.org/ and you're set. But maybe there's more limitations on c# support besides directx and you can give some examples.

- "Windows 8 and Surface will run RT, Windows Phone 8 will not, and instead still use SilverLight and XNA."
To be honest, i stopped reading after this. just shows how well informed you are regarding this topic and should continue to enlighten the interweb with your infinite technical wisdom. To be clear, my *facepalm* regarding this line is i'm sure you'll be able to provide us with a source for this exact information, and not one that will say Wp8 has backwards compat with Silverlight and XNA (which i don't know if they taught you this on the internet school of journalism, but it is not the same thing).

Michael C. Neel - Tuesday, October 23, 2012 3:25:50 PM

SharpDX is an open source project to create a managed wrapper on DirectX. It is not a Microsoft supported solution, and like Mono and MonoGame there will be issues.

WP8 - you might want to read what Microsoft (Greg Sullivan, Senior Product manager for Windows Phone) has stated - "Windows RT and Windows Phone 8 to be separate for now..." http://www.pocket-lint.com/news/46334/windows-phone-8-windows-rt-separate-for-now

It sounds like your info is based on the leaked SDK - you may want to read http://lordhanson.wordpress.com/2012/07/27/wp8-sdk-managed-xaml-alive-xna-dead/ which jives with VS2012 supporting SL but not XNA, and WP8 running SL under the hood but not WinRT.

That is all based on a leaked SDK however. Microsoft has confirmed WP8 will run WP7 apps, whether devs will be able to submit new apps built with SL/XNA has not been stated, but since it's not running WinRT that doesn't leave much else.

John - Wednesday, October 31, 2012 1:08:24 PM

Agreed on most points. I thought that the framework also protected us by abstracting us away from the environment.. which used to be the case but isn't so much anymore. For example, everytime a new platform or one off of the framework comes out you have to rewrite your plumbling to read and write files to the file system (not hard, but irritating).

madninjaskillz - Thursday, November 01, 2012 2:44:27 PM

"SharpDX is an open source project to create a managed wrapper on DirectX. It is not a Microsoft supported solution" and thats a GOOD THING.

After the complete lack of support for updates on XNA (where is our promised kinect support eh? networking?) the fact that we are FREE to use alternatives is EPIC.

XNA and SL are FULLY SUPPORTED in wp8. well. as supported as they were in WP7 at least. no upgrades or anything. BUT WHO CARES. we arent forced to use them anymore. you wanna use XNA and SharpDX together? Fine! Wanna PINVOKE some hardcore C++ action? go right ahead.

XNA isnt dead on windows phone. its just stopped growing. XNA *IS* dead for the non phone platforms (excluding x86 desktop meh) but Monogame is here. As is unity and all the rest. Monogame DOES have issue, but we arent waiting for MS to fix them, the community is in control. We can extend in ways MS would never have. Its so exciting that I actually want XBLIG to die off so i'm not forced to be limited to the XNA platform anymore, and can go where Monogame goes - and beyond.

For us XBLIG devs, c# and xna is morphing, but its actually the most exciting time weve had.

Also remember. Windows 8 has had 4 million upgrades already. That means our marketplace is already 3.99 million more customers than XBLIG.

The metro interface IS the future of windows. Some dorks are mocking it and complaining but they arent the target. our mums and 12 year olds who have never seen a DOS batch are the target. So the sales currently seen on the desktop will migrate to the store. "I'd love to see Ballmer bragging about how they blew away Apple's $5 Billion paid to developers from the AppStore." $5billion? in the windows ecosystem thats pocket change, and its coming our way.

'GDC 2012: PC Games Raked In $18.6 Billion in 2011' ( http://www.forbes.com/sites/johngaudiosi/2012/03/06/gdc-2012-pc-games-raked-in-18-6-billion-in-2011/ )

18.6 billion. for one part of the market. in 1 year. iOS doesnt even come close.

These are epic times. Embrace it or be left behind.

Michael C. Neel - Friday, November 02, 2012 9:09:58 AM

Don't get bogged down in the framework details - yes it is a mess and I was really sad the way Microsoft avoided the issue during Build not coming right out and making clear WinRT is not what WP8 is running and instead talking about Windows 8 Core being shared. The cut is - for developers and consumers - phone apps will not "just work" on the tablet like it does on iOS.

Microsoft still has 3 stores run by 3 different departments each with their own process and payment system. Microsoft still has API's it allows publishers access to and restricts from independent developers. Having 3 different platforms to target is still messed up, but if Apple has proven anything it's the development story doesn't matter if the consumer story is a good one.

It's a dangerous assumption to say Microsoft is "really big" and "cannot fail". They have failed repeatedly in the last 5 years trying to create a device consumers want. Apple sales of MacBooks are growing while Laptops sales for everyone else are falling. You can't assume everyone who has Windows 7 will upgrade to Windows 8 - some will switch.

If Microsoft really wanted to grow it's store (and sales for developers) why would it keep the Store Win8 only? Why not release it to the large Win7 install base? It probably would have launched with more than the 9,000 apps it had!

Leave a comment



Your name:
 

Your email (not shown):
 
Will display your Gravatar image.

Your website (optional):



About Michael

Michael C. Neel, born 1976 in Houston, TX and now live in Knoxvile, TN. Software developer, currently .Net focused. Board member of ETNUG and organizes CodeStock, East Tennessee's annual developers conference. .Net speaker, a Microsoft ASP.NET MVP and ASPInsider. Co-Founder of FuncWorks, LLC and GameMarx.

Proud father of two amazing girls, Rachel and Hannah, and loving husband to Cicelie who inflates and pops his ego as necessary.

 Subscribe to ViNull.com |  Comments

Follow me on Twitter | Contact Me

Related Posts

"Quest" Post Mortem - Ludum Dare #26

This past weekend I took part in my first ever Ludum Dare, a competition to complete a game in 48 hours.  There is no prize for first place, there ... Read more

Here Comes CodeStock 2013!

If you were at CodeStock 2012 you know there is a pretty big change for me in 2013.  I’m no longer organizing the event. In 2012, I stepped down from ... Read more

Yes Virginia, XNA is Really Dead

If you're not up on the latest XNA news, Microsoft has confirmed (though via leaked email) that XNA and the XNA Game Studio is no longer in active development.  ... Read more

I'm Game Coding for Charity this Weekend!

Today (Friday November 30th, 2012) and through Sunday I (Mike) will be coding a game from scratch live at twitch.tv/vinull! I'm doing this to help raise ... Read more

What’s Happening at the Technology Cooperative

A lot has been happening the past few months at the Technology Cooperative, and we have a lot more planned (read below for information on how to win a ... Read more

XNA 3D Primer by Michael C. Neel

XNA 3D Primer by Michael C. Neel
Buy Now: [ Amazon ] [ Wrox ]

GameMarx

CodeStock

ASPInsiders Member

ETNUG Member