May 3, 2013

The problem with Android is that the carriers are not looking at it as an operating system, they’re looking at it like an initial source code drop. They’re looking at it like a game developer views an engine.

Let’s say I’m a game developer. I decide I want to make a game and I don’t want to write an engine. The things I want to do with my game would be served fine by an existing engine, just with some tweaks. Maybe I’m Gearbox Software and I want to make Borderlands – I don’t write an engine from scratch, I just license Unreal and add cell shading to it.

So let’s say the latest version of Unreal Engine is version 3.1 (not sure what version numbering system Unreal uses but let’s assume it’s like Windows or something). So I go pay my half million or whatever and I get a source code drop of Unreal Engine 3.1 and I start working on my game.

At some point in my game’s development is the point of no return – code freeze, feature lock, whatever you want to call it. At this point I can’t make any source code changes except for bug fixes. I have to stick to this or else I’ll miss my deadline and/or the game will never ship (see: DNF).

Now let’s say before the point of no return Unreal Engine 3.2 is released and I can see how it would benefit my game. I have to decide at this point whether or not to use Unreal Engine 3.2. If it’s early enough in development then I could consider getting Unreal Engine 3.2 (pay the upgrade fee or maybe it just comes with the license) and then re-apply all the changes I made to 3.1 to it.

After the point of return Unreal Engine 3.3 is released and I can see how it would further benefit my game. However, I can’t afford to change over to 3.3 so we just keep going on 3.2.

So then we release our game, even though it’s running on an engine that’s not the latest. And we have no intention of upgrading it either – this is just the version our game uses.

And then later Unreal Engine 4.0 comes out. We don’t upgrade to that one either. If our game sells well and we make a sequel, we’ll probably use it but we’re not going to upgrade the first one.

Here’s the rub: no one expects us to upgrade it either. Gamers are not going to care that we’re not running on the latest engine and they’re not going to hold it against us when we don’t upgrade to Unreal Engine 4.0.

That’s what handset makers are doing. They don’t see themselves as putting Android 2.3 on a phone, they see themselves as putting their own OS on the phone that is based off of a particular version of Android originally.

And when a new version of Android comes out they’ll use that on their next phone but they’re not going to upgrade their existing phones. Why should they? They’ve already made their money is how they see it.

And I believe this is an approach that works fine in games but not in phones. People don’t run apps in Borderlands but they do run apps in Android and so having the latest OS is important.

Instead what we have is analogous to if Dell sold computers where the OS was based off of Windows but they went in and dinked with the source code so now you don’t know if anything is going to run even though you have the hardware to do it. Android marries the worst parts of closed architectures with the worst problems of open source.

If you’re a programmer or hacker or tinkerer than Android is probably heaven for you, but I don’t see how it’s a good fit for anyone else.