Android Development – Status Report 2

Three weeks passed in no time. Here’s another quick status report on my Android porting efforts.

After my initial port of JamJam which resulted in the DroidShock release to be found here, I started porting my IntensiGame example project: Galaxina.

I squashed a multitude of bugs in IntensiDroid – the IntensiGame implementation for Android. Added some core functionality that DroidShock didn’t use. And ended up with a first solid IntensiGame release.

Still only working with my Samsung Galaxy I am waiting impatiently for my G1 and the Nexus One. With my PSYCHOCELL buddies jumping on the Android bandwagon I have a few Android devices for testing available soon. Hopefully this will fix the OpenGL/EGL issues that I still have with the G1 and the Droid in no time.

Grab the alpha release Android packages from the Galaxina page on www.intensicode.net.

I recommend the non-OPENGL version. Both versions render at about the same frame rate. And the non-OPENGL looks a lot nicer.

But if you want to help me out, please test the OPENGL version, too, and send me some feedback. Does it run at all? Gfx messed up? Etc..

I will go back now to DroidShock and start playing with the more Android specific concepts like using touch for more control options and integrating sensor data.

tfdj

Android Development – Status Report

I’ve spent the last two weeks porting JamJam, IntensiGame and the related projects to Android. It’s been an interesting ride..

On the one hand, Android is a relief coming from J2ME.. :) The development environment is fun. The emulator is usable. Startup time is crazy, of course. But what emulator isn’t? But deployment is fast enough and easy enough. The same is true for using a real device via USB. No problems except some 1.5 SDK woes with Linux. Solved in no time.

You also have some nice APIs to work with. Graphics, sound, IO, especially network IO. It’s all there.

But, on the other hand, you will encounter many dark areas quickly. Up until Android 2.x the whole EGL (the embedded OpenGL) thing is horribly broken in weird little ways. Leaking garbage, interrupting you application every few seconds for a few hundred milliseconds, not supporting proper extensions and at least EGL 1.1. Only EGL 1.0 is a requirement for Android devices. Horrible firmware-/device-specific issues like for example the Samsung Galaxy falling back to software rendering when you tell it to allocate less memory for EGL.

IO seems to be a bit slow. But I’m still investigating if I’m doing something wrong there. Or if there are better APIs or ways to store and retrieve data.

Anyway, I got JamJam running at nearly 30 FPS using EGL/OpenGL or basic canvas graphics without too much tweaking. Acceptable for a first release, I guess. Funny enough I have no problems running the same game (and same code base) at 30-50 FPS on J2ME phones like the more (r/d)ecent Nokia and Sony Ericsson phones.

I have attached a first release of “DroidShock” to this post. I consider this a free demo version of JamJam for Android. I’ll add versions supporting other screen sizes during the next few days. Let me know if you’re interested in helping me out with some alpha/beta testing on your device.

Cheers,
TFDJ

Release with Canvas graphics: DroidShock_DEBUG_CANVAS_320×480

Release with OpenGL graphics: DroidShock_DEBUG_OGL_320×480

JamJam – Released at last!

It’s been a major struggle to get this game online. But here it is now: JamJam at Jamba

This is a little milestone for me. I have a few other apps online. But JamJam is the first application (and the first commercial game) I consider a major release. It may not look like much, but apart from the game itself, all the used frameworks and tools are available as open-source by now. (See my github page for details.)

This was all part of the “release”: The IntensiGame framework, the RunME emulation layer for development, the IntensiBuild system for building against the different J2ME device specs, and of course JamJam, the game itself.

Well, time moved on. And so did I. Android is the new thing now.. Expect an initial IntensiDroid release, soon.. :)

tfdj

Uridium + Paradroid

imagine a game combining the Andrew Braybrook C64 classics Uridium and Paradroid. in 3D.

you start uridium style with your manta fighter being transported close to a huge space ship. with this being 3D nowadays you can fly all around the ship. your task is to eliminate enough of the outer defenses so that a landing pad or dock is clear. as soon as your board computer signals you a good chance for a safe landing you put your manta down in the nearest dock or pad.

your 101 droid then enters the space ship. the task is to disable all droids on board. with this being 3D now, the differences of droids would really create an interesting game experience. some droids can look and hear human like. others have only a sonar, others only a radar. some are audio only. some are video only. some have weapons. others do not.

well, maybe some day..

BlockShock and Galaxina

I’ve updated www.intensicode.net with the latest public release version of BlockShock. Give it a try and let me know what you think. The game will be released commercially with a different configuration and J2ME-only later this year.

There’s also a new – still very early – tech demo of Galaxina online now. It is completely unoptimized and does a lot of unnecessary path/distance calculations. But it should run at decent 30 fps on modern devices (N73 or K800 for example). The WebStart version is a bit more sluggish. Hey, it’s just an early demo!

tfdj