The Tetris Takedown

Another take-down notice for Tetris clones. Read more on Droid Gamers.

So for now head on over to GETJAR or SlideME to download DroidShock. If you’re the lucky owner of an Archos tablet, find DroidShock in the AppsLib store. Or grab the apk from here: DroidShock.apk

Weird people.. Not sure what their intentions are..

tfdj

Android on iPhone

Now this could be a reason to get an iPhone.

And so, finally, porn arrives on the iPhone.. :)

tfdj

Why Android?

For some reason I prefer Android over the iPhone.

No, it’s not the tyranny of Apple over the developers. No, it’s not the fanboyism of the Apple users. No, it’s not the high price tag that says “I don’t care how much it is. I’m a superior being. I have to use Apple products.” No, it’s not the horrible look of the Cococa UI. No, it’s not Apple’s defense of its intellectual property rights against other phone manufactures. (Because Apple really build the first phone on this planet! And sure does it make sense to stifle innovation by suing other companies over multi-touch patents and the like.) And of course, for me as a developer, it’s not related to Apple’s latest 3.3.1 developer agreement changes. (There simply isn’t anything better than Cococa and Objective-C in this world. I enjoy having Apple dictate what I do.. :-)

No, it’s none of that..

Honestly, I didn’t know the answer up until now: “Folks who want porn can buy an Android phone”

Now I know..

tfdj

DroidShock – Initial Test Release

A few days ago I finished tweaking the touch controls of DroidShock. The initial release is up on the Android Market. Grab it and add a rating.. :)

A project page is located on IntensiCode.

There’s still a long way to go before a commercial release makes sense. Don’t even get me started talking about ‘device fragmentation’. And let’s not talk about the crappy quality of some of the popular devices’ touch screens. Please.

Amen!

tfdj

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 & Proguard

A quick note about using ProGuard to optimize and/or obfuscate Android packages. Maybe this is useful to someone..

You can use optimize, but I had to disable code/simplification/cast and code/allocation/variable optimizations. In addition, overloadaggressively and allowaccessmodification will result in illegal opcodes detected at runtime only.

        <proguard optimize="true" shrink="true" defaultpackage=""
                  printmapping="false" verbose="false"
                  usemixedcaseclassnames="true" obfuscate="${obfuscate}"
                  overloadaggressively="false" printseeds="false"
                  allowaccessmodification="false" microedition="false">
            ... snip ...
            <keep name="*" extends="android.app.Activity">
                <method name="*"/>
            </keep>
            -optimizations !code/simplification/cast
            -optimizations !code/allocation/variable
        </proguard>

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

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_320x480

Release with OpenGL graphics: DroidShock_DEBUG_OGL_320x480

« Previous Page