Flash, iPhone, Java

From this Register article:

[quote]Apple iPhone is not fully included, though it will be possible to compile Flash applications to iPhone native code
[/quote]
And indeed, this should be the case with Java, the write once run nowhere language. But it ain’t. Now come on, what’s it going to take to get my stuff running on iPhone without all this wasted effort that Java was supposed to be saving me? Is there any official strategy for porting the Java runtime or at least the capability (via embedded or AOT compilation) to platforms other than Windows, Mac, Linux and Solaris? There’s three major consoles and a massive hit smartphone that are just totally closed to us, and it makes the most utter mockery of the Java language and platform. Is GCC an option yet?

Cas :slight_smile:

Maybe one just has to accept that Java is a good starting language, but if one wants to go for games in a big way one will be forced to turn to c++… that said, once one has made a truly good game and sees the demand, the obstacles to porting it should not be very big, and the motivation to do it high. Most indie shops start up as PC game houses, only moving to consoles after hitting a home-run, or two…
Still I do agree, I’ve come to like Java over the years, and wish it could have lived up to the ‘run-anywhere’ promise. Not Java’s fault as such…

Maybe I’m a bit naive… You could use ANTLR to translate Java to C# and then use MonoTouch to target IPhone (or XNA to target XBox 360). I understand your frustration.

XMLVM is what the current crop of java dev’s have been using to write games for the iPhone, I think.

The Java->C# pipeline in XMLVM is broken at the moment and the developers have said that it’s not an important target for them so it’s basically neglected.

Even after I’d hacked XMLVM to fix the C# backend, it’s missing a lot of the opcodes and there’s no compatability layer. It’d take a huge effort to bring it up to a usable state. Despite the grand claims on their website about the only complete pipeline that actually works is Java -> ObjC at the moment.

… and I’d want something that actually ran at native speed too. I’m talking about proper realtime games here, with fancy graphics and such at 60fps, rather than, say, Kev’s football game, which is turnbased, masking its slowness.

Cas :slight_smile:

The performance of the games on the iphone is faster than the equivilent code built into Android. Same hardware (ish).

Performance isn’t an issue with the XMLVM process. It’s too complicated at the moment tho.

Kev

Moreover, performance wise, flash native on the iphone runs pretty terribly.

The nasty way we go from Java -> ObjC is down to one thing, Apple and it’s legendary license/filtering scheme. The only way you can build stuff into something you can deploy currently is to get it into ObjC or sign a nice big deal (which Sun have already proven they arn’t going to do).

The problem with the XMLVM (ANTLR, conversion, translation) process is that along with the compatibility library to access everything on the iPhone SDK, Java dev will also expect to be able to access every bit of the Java 1.6 SDK (and any other libraries). With that big of a target to convert there isn’t a way forward for small devs (yet ;)).

Kev