Cross platform development is one of those things that I’ve seen done dozens of times before but rarely do I see anyone get it right. I understand the allure of doing so, heck my most creative forms of procrastination came from experimenting with these ideas, but the fact remains that more often than not they’re going to be a total waste of your time. I do have one exception to this rule however and that comes in the form of the cross-platform game engine Unity. Where other libraries promise compatibility and a wide range of functions Unity actually delivers on these with little compromise. Couple that with their ridiculously good pricing model and awesome dev environment and it’s hard to fault the product. Indeed all the shortcomings I found were, as far as I could tell, limitations of my programming expertise.
For games developers Unity offers the chance to have one code base for all platforms with only minor tweaking required once you want to deploy the project to your chosen platform. This is great because initially you can focus on one platform and then once you’ve verified your product there it doesn’t take much to port it to the new platform. It’s no surprise then that you’ll find many Unity based games in both the Apple and Android app stores. Figuring that Unity was going for all round platform domination I thought it was only a matter of time before I saw that the library would support Windows Phone 7, even though it’s still in its nascent stages.
As it turns out however that won’t be happening:
The Unity engine does not support Windows Phone 7 because of restrictions placed on Microsoft’s mobile, the CEO of Unity Technologies has said.
“But we’re looking at Windows Phone 8 and hopefully it will be easier to work on that system,” he said.
In an interview with Develop, to be published soon, Helgason explained Windows Phone 7 “is a relatively closed system so you can’t run native content, which means we can’t really support it”.
The “closed” nature that David Helgason (CEO of Unity) is referring to is the fact that if you want to put a game on the Windows Phone 7 platform you need to have coded it in either Silverlight or Microsoft’s XNA framework. Unity then approached Microsoft to see if they could get an exemption from this rule (as well as access to some private APIs which would be required for their libraries to work) however Microsoft turned them down. This means that Unity and all the games built on top of it are banned from being released on this platform, save for a full rewrite of the code. In response Unity has turned their sites towards Windows 8 which will be a lot more friendly for them thanks to the WinRT framework.
This feels like a pretty big misstep from Microsoft. Windows Phone 7 hasn’t been gaining any momentum and it’s overall smart phone market share (that includes Windows Mobile devices) has been taking quite the battering dropping to a low of 1.6%. Whilst I won’t go as far to say that Unity would be its saving grace it definitely wouldn’t hurt to have that available as an option for games developers looking to develop for the Windows Phone 7 platform. Indeed since Unity supports coding in C# I’d hazard a guess that there would be quite a few who’d be willing to give it a shot just because it would be easy for them to learn. Heck I know I did.
In reality Windows Phone 7 has a lot of other hurdle to overcome before it can be considered a serious competitor in the market but Microsoft can’t afford to throw away any potential advantage it can get. Not working with Unity only serves to damage the Windows Phone 7 platform as it has demonstrated success on every platform it’s available on. Unity developers then may have to wait for Windows 8 and the corresponding Windows Phone release before they can think about coming across onto Microsoft’s platform but I feel that may be too far off, and the damage has already been done.
I’m probably one of the best kinds of customers. For starters I worked in retail for over 6 years so I know what I can do to make the process easier for everyone involved. More importantly though I usually spend an inordinate amount of time researching what product I want before heading out to the store or placing an order, meaning the sales/support people spend a whole lot less time with me, nabbing a sale without any kind of work whatsoever. Bearing all this in mind I don’t have a high tolerance for getting the bum steer when it comes to shopping online or in person but I’ll usually just take my business elsewhere instead of making a big deal about it.
Today however, I feel like making a fuss.
So there I was this morning, browsing my feed reader looking for inspiration as I usually do when I come across this post saying that Peggle, one of PopCap’s crack-like casual games, was free on the Amazon Android store for today only. Considering I shelled out for Plants vs Zombies on the iPhone and thoroughly enjoyed it I figured that whatever hoops Amazon made me jump through to get it would be worth it and would be a good candidate to test out my new Samsung Galaxy S II (review coming shortly!). So I hit up the web store and signed in using my Amazon account, downloaded the application, opened it up and hit the install button on Peggle. That’s when I received this lovely error:”The Amazon Appstore for Android is not yet available in your region”.
So after dicking around with Amazon’s unoptimized web interface (yeah they have an app but their website doesn’t seem to recognize Android devices), side loading their market app and inevitably handing over some personal information I’m not allowed to get the free application I sought after? Whilst I’m not an Android developer I’m pretty sure its easy to tell if a user is in a region where the app store is available before you make them download your application. In fact I’m so sure of this that I reckon it’s been done deliberately, forcing me to install their app store before telling me just so I don’t drop them completely once I found out that their free app du jour isn’t available to me. That’s what we call a bait and switch and that’s a real quick way for me to get the fuck out of there and never return.
I’ve bought stuff from Amazon in the past and had a good experience with them but this Android app store shenanigans has turned me off the idea of getting any application from them completely. If before I downloaded the application (which I did on my phone) they warned me that “You appear to be in Australia which we can’t currently service, press OK to continue to install the Amazon App Store” I would’ve been fine with that, since then it would just be me trying to skirt around their restrictions. Instead they let you sign up and only at the very last second, after you’ve given them your email and access to some personal data on your phone, do they tell you that it’s not currently available. For this the app has been uninstalled and it will take a metric shit ton of good will from them for me to install it again.
Sure this is a relatively minor quibble but like I said I’ve got little tolerance for this kind of crap, especially when there’s no technical limitation behind it. Not once yet have I had any problems with the regular Android market and it looks like it will be in my best interests to stick around on there, especially when Amazon has shown that they’re not interested in having my business. Maybe one day we’ll get over this whole idea of “regions” and we won’t have to put up with these kind of ludicrous restrictions, but until then I’ll just be taking my business elsewhere and Amazon can just fucking deal with it.