Over the years, a lot has been said about Android’s fragmentation problem. Manufacturers and carriers often took months to deliver operating system updates, if they delivered them at all. Thankfully, the Android update scenario seems to have taken a turn for the better. Manufacturers like Sony Ericsson have cleaned up their act in a big way, and have promised to deliver quick updates. Google has also begun to wield its influence to nudge manufacturers and careers in the right direction. However, now that the software fragmentation problem is showing signs of settling down, another major issue is rearing its ugly head hardware fragmentation.
Google has very little say over the hardware configuration of Android devices. Current generation Android handsets run on everything from ARM A9 to ARM A6 and ARM A11. Google wants Android to be ubiquitous. It wants Android handsets to dominate every segment from basic low-end devices to cutting edge high-end smartphones. This is in stark contrast to the approach taken by Apple and even Microsoft. Apple restricts iOS to handsets manufactured in-house (i.e. iPhone). Microsoft on the other hand has laid out stringent minimum hardware specifications that all Windows Phone handsets must satisfy.
In theory, Google’s approach has some significant advantages like affordability and diversity. It allows for healthy competition between hardware manufactures, and it fosters innovation and rapid improvements in hardware capability. Hardware fragmentation by its own isn’t a major headache. However, as always, vested interests have found ways to exploit the freedom offered to them by Google to gain unfair competitive advantages.
Hardware manufacturers are tying up with game developers to artificially restrict games to their own platforms. The biggest culprit is probably nVidia, which has roped in several big names to launch Tegra exclusive titles (often called Tegra HD or THD games). Quite obviously, no one expects a budget handset to be able to run graphics intensive games like Riptide GP. However, thanks to the Tegra exclusive tag, even beasts like the Samsung Galaxy S II aren’t capable of running the jaw dropping ski racer from Vector Unit. Imagine shelling out big bucks to purchase the latest and the greatest Android smart phone in the market, and then discovering that you can’t play most of uber cool games for Android, as you have an Exynos chip instead of Tegra 2. This is an entirely artificially imposed restriction that if not checked will be a major deterrent for mobile gaming enthusiasts.
It is one thing to optimize a game for a specific platform, but it is quite something else to cripple it or make it unplayable on other equivalent platforms. Unlike in the PC gaming segment where games are often optimized for either nVidia or ATI (AMD) graphics cards, but run pretty well on both, nVidia is making some games simply unavailable for other platforms.
Earlier this month, an enterprising developer at XDA found a way to fake the graphics capabilities of the handset. His app, called ChainFire3D, can manipulate OpenGL feature identifiers with the press of a button. With the help of proper plugins it can run Tegra 2 exclusive games like Samurai Vengeance 2, Guerrilla Bob THD, and Riptide GP on several non-Tegra handsets including Samsung Galaxy S, Samsung Galaxy S II, Sony Ericsson Xperia X10, HTC G2, HTC Desire, and Nexus One.
Sony Ericsson has also been doing something similar with its Xperia Play exclusive games (mainly published by Gameloft). Sure some of the games require hardware keys for full gratification, but most of them are perfectly enjoyable even without dedicated hardware keys.
Tegra Zone Games on Nexus One with ChainFire3D
Google has indicated in the past that it is serious about Android as a gaming platform. However, if Android wants to take on iOS in the mobile gaming segment, then it will have to deal with this artificially created hardware fragmentation problem. The purpose of the operating system and graphics libraries like OpenGL is to abstract the hardware from the software. Whether a game runs on a given handset should be determined by the capability of the hardware, and not some other superficial restriction. If Google wants to retain even a semblance of openness in the Android ecosystem, then it must step in, and prevent this artificial fragmentation.
Video via Android Police