Game Development and Android

Developing with Children

I recently decided that itwould be a fun experience to make a mobile game with my children (aged 7, 5, 3, and 0, each contributing per their age), drawing on their unbounded creativity and openmindedness, while making it aneducational experience about the technology, the code, and thecommercial process after publishing to the market.

I’ve tried to casually make games for Android before, to discover that the Java-platform SDK just doesn’t foster a love for code: the APIs are unelegantand obtuse, and the Eclipse IDE, while very powerful in its own way, just never feels like home.

It makes it something that I don’t really look forward to, which is weird because I love coding.

What really hurts my motiviation, however, is theabsolutely brutal experience that is the Android emulator.

I recently upgraded to a beefy new machine purely to try to run thatthing at a tolerable speed, to find that it’s justas slow (I haven’t even attempted the Honeycomb emulator, as it’s purportedly beyond unusable). Compared to developing for the iPhone, this putsAndroid at a serious disadvantage. I suspect it’s the reason why many Android applications just aren’t as polished.

There are some very real technical reasons whyit’s such an abomination (namely that it’s a full ARM emulator,whereas the iPhone “emulator” is an x86 instance running x86 code),but the fact remains that it seriously hinders productivity.

I still believe in the compile seldom model of productivity, but such a process isonly possible when the platform is well known, well documented, andproven. Unfortunately that isn’t entirely the case with Android,where often you’re simply mixing things up and running it to see ifit adapts as expected.

With the increased availability of the OpenGL ES API in the NDK,however, I’ve now found a beautiful medium where I develop inWindows — with Windows x86 binaries against an OpenGL ES emulator(a thin layer ontop of OpenGL) — simply reusing much of the samecode in the Android project.

My productivity and enjoyment has absolutely blossomed. Better still, much of the same code is immediately portable to iOS, which is an important consideration.

P1010656

Of course I need to consider the limits of the platform —smartphones are getting pretty powerful, but they are weaklingscompared to a modern desktop — especially the upcoming dominantplatform (tegra2), so I signed up for an nvidia tegra2 developmentkit. I’m fully willing to pay the cash, but it turns out that youneed to be approved and I still haven’t been, two weeks afterapplying. I guess I’ll have to sign up again with some fantasticalaccount of my great success as an EA-sized gaming house.

That’s kind of annoying. Other Tegra2 platforms, such thegTablet, aren’t even available in Canada.