Android Market – Why Google doesn’t care..

There are a bunch of post online now about the rotten state of the Google Android Market. Here’s the latest I just stumbled upon.

I wonder why everybody seems to think that Google should create the Android Market. Google isn’t Apple. Android isn’t iOS. For me it looks like Google just provides a Android Market and silently waits for alternative markets to appear and fill more specific requirements.

Doesn’t that make sense?

Look at the AppsLib store for example. Focusing on applications tested specifically for the Archos tablets. There are other, more generic, market alternatives like SlideMe and Pdassi. Both with different payment methods.

Now look at the carriers and big game publishers if you will: Why shouldn’t they come up with their own app stores, too? Isn’t that exactly the freedom they want? Vodafone branded Android phones come with the Vodafone app store preinstalled. Simple payment using the phone bill would be possible. EA could provide the EA Android Store. With special download packs that may not even be apks..

With something like Apple’s closed iOS app store this looks like a good alternative. Doesn’t it?

Well, at least we are free to provide alternative markets.. That’s a good thing, right?

tfdj

The App Store Myth

before i started android development i did a quick analysis of the apple app store. i came up with some roughly comparable numbers as shown in this Communities Dominate Brands post.

the reason i chose the android platform is that you may still have some kind of first mover advantage. well, second mover. or third mover by now. but you get the point, right? :-)

now.. i still don’t get it why people are flocking like crazy to this weird apple world.. where apple sure makes some big bucks.. but apart from them, only a handful of developers are getting lucky..

of course there’s the coolness factor. it’s not all about money. but it’s very subjective. and for me google wins over apple.. evil both they are, of course.. but who isn’t?

anyway, just my two cents..

amen,
tfdj

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

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

Dean Wampler on Programming Languages

Just read through this quite interesting interview with Dean Wampler.

Talking a lot about Scala. Clojure, Haskel, Ruby, JavaScript. Multi-Paradigm and Polyglot programming.

To be honest: I haven’t heard of Dean before today. :) But when I read Object Mentor and Uncle Bob, I knew I should keep on reading..

So if you got some minutes, watch the video or read the notes..

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_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

Next Page »