Releasing JamJam HD into the wild

We’ve decided to push JamJam HD for Android out the door. My Psychocell buddies and me are too busy with our jobs to finish work on all the JamJam versions any time soon. So we’ve decided to focus on the high-res JamJam version for now and push out an initial release. A quickly setup web page can be found here:

For now the game is available on the Android Market, SlideME, AndAppStore, GetJar (in review) and AppsLib (in review).

The game has a EURO 1.49 price tag. The later releases for lower end phones will have a lower price tag. We’ll see how this works out.. :)

Screenshots:

Android Development – Status Report 3

Before I get started: Does someone seriously consider the iPhone or Android a gaming platform? Not saying that there aren’t any fun games for these devices. But they a clearly playing in a different league than the PSP or the DS, right? And it simply is not only about graphics and performance. Mostly it’s about usability and controls!

The last few days/weeks I worked on bringing touch and trackball controls to IntensiGame. Especially trying to make DroidShock/JamJam playable with these new control concepts.

So far I failed.

I have a somewhat usable trackball control implementation to make Galaxina and DroidShock playable. But when the going gets tough, nothing beats the DPAD of my Galaxy. Even the more precise touch screen of the Nexus One will simply not deliver the gaming experience the DPAD gives you. And so won’t the somewhat improved trackball of the Nexus. Compared to the G1/Dream there is some more control here. But it’s not enough.

Baseline: You can have a very responsive trackball or touch control, or you can have one that translates longer ‘motions’ into ‘multi events’. But combining these two approaches seems very hard.

And so far, it looks as if I am not the only one who failed. I haven’t found one shooter or Tetris-like game with touch controls that I would consider really usable. Everything using touch mostly sucks. Android and iPhone are not different here.

So, no good touch controls?

My point is: No good touch controls for these type of games! There are different games that benefit from touch controls. Of course. And you can bend you game a little and make it workable with touch controls. But for now I am not willing to make this compromise too easily. One example of ‘bending’: Touch controls with Tetris games will almost always result in showing where the tile will drop. Otherwise your finger will be in the way. Simple problem. Simple solution. Well.. Got the point?

I consider marking games via the AndroidManifest.xml to not work on devices without a DPAD or trackball, etc. Because: What is the alternative? People complaining about bad usability? Non-responsive touch controls? Too responsive touch controls?

I’ll keep on tweaking my implementation and I’ll add various control settings to the engine to let users tweak the touch and trackball behavior. But I doubt this will ever come close to proper game-pad-like controls. (Of course! Doh..)

Amen,
tfdj

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

At last: Open sourced my J2ME (and J2SE) frameworks.

Head on over to http://github.com/DanielLukic

I have finally released the frameworks I use for developing my J2ME applications. With Android and the iPhone going strong nowadays I am probably a bit late with releasing my J2ME stuff. But who knows? I am thinking about covering Android with a RunME like emulation layer. This will probably happen sometime 2012.. :)

Anyway, here is a quick overview of the projects/modules:

* IntensiBuild – Simple Ruby-based build system for building various releases of an application. This needs a few updates from my commercial projects to cover building a J2SE release and a ME4SE launcher JAR.

* IntensiGame – Framework for building entertainment applications and games. Provides a basic ‘engine’ for running a frame-based application and various video- and audio-related classes.

* IntensiTools – Very basic tools used for creating and working with certain resources.

* RunME – J2ME emulation layer for running J2ME apps with J2SE. Compared to ME4SE this is focused on providing a faster game canvas with real-time scaling and full-screen support.

* Galaxina – Partial implementation of a shoot em up game. Running on CLDC1.x/MIDP2.x phones and on desktop systems with Java.

I will have to update the projects quite a bit before they are really useful to someone else. Documentation is one thing. Library dependencies and license and copyright notices are a different story.

J2ME Development – The way it should be

I’ve been quite busy with work lately. So I did not manage to update my website or this blog in quite some time. But this is definitely worth a post:

J2ME Development – The way it should be

Take a look at the Opposite Lock Development Video. They show you how to write J2ME games the right way. You don’t need a thousand different jar files to target a thousand different phones. There is enough common ground within the J2ME platform. And look closely how cool things are as long as you target J2SE, too. Not only for the editor(s). But for the game, too.

I always hated working primarily with the WTK emulator or going to the real phones too early. You fix device specific bugs and issues with them. But you do everything else on the platform that is most efficient for it. And that surely isn’t the WTK emulator or a real phone.

I’m trying to do the same with my RunME emulation layer and the IntensiBuild system. My framework is not as advanced as what the Numfum developers show in their video, but it gets the job done, too. For example I have JamJam (formerly known as BlockShock or IntensiTris.. :) running on most MIDP2 devices and on the desktop (via Java WebStart). There are only minor differences between the versions. (And of course I can build specific versions to allow for different soft key codes and little glitches in the oh so perfect J2ME world. But the same JAR will run on all phones.)

For Galaxina – my next game – I had to create an editor for the enemy flight paths and the level design. There I, too, embedded the game into the editor. It makes total sense. Of course by far not as cool as the Crysis Sandbox.. :)

I really hope I find the time to finally release RunME and IntensiBuild to the Open Source world. So far work has kept me from doing it.

Slideshow Engine

One of my older projects is a generic slide-show system. I’m updating this right now as part of one of my commercial projects. But I’m thinking about open sourcing at least the old version. If you should have a commercial interest in a generic slide-show system for J2ME, please contact my business partners www.psychocell.com.

Do’s and Dont’s of Symbian Development

After reading some (in theory :) useful comments on Symbian development here, I thought adding my own two cents could make sense. Here we go:

DO Use Python S60 to write applications.
DON’T Use the Symbian C++ SDK for anything.

Oh how much anger do I feel when looking back to my Symbian C++ programming days.. :) The most horrible SDK I’ve ever had to work with.. Of course, in the last four or five years the SDK has improved quite a lot. Especially the Eclipse-based Carbide IDE seems to provide a rather good development experience.

Anyway, I’m happy that I was able to move on to Python S60 and J2ME development.

tfdj

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