We'd be targeting phones that have GPS like the Nokia N95. They should support larger JAR file sizes but I'm honestly not very experienced in mobile phone design so that could be total bunk.
Before this conversation I really didn't consider Kahlua being a valid option for J2ME, so I appreciate your feedback. We'll consider to research doing a full port but we'll also look at improving Kahlua as a viable option to fill in the missing blanks there. We're just hoping that we can provide a similar player experience with our engine in both a C-based implementation and a Java-based one.
Consistency is important in GPS game design. Well, any game design it is important, but with a GPS-based experience the people are actually driving to and interating with local landmarks with your application. We want to make sure that our authors are confident that their game will port so a wider audience can enjoy it.
I am the author of the paper. :-) Notice that the CLR (and the desktop
JVMs) have good JIT compilers, and this is how one can get good
results by bytecode translation (or straigth compilation). J2ME is
interpreted AFAIK so there will be a big speed hit. I don't know
enough about CLDC hotspot to comment... I recommend translating some
microbenchmarks by hand and testing them against interpretation with
Kahlua to see if the gains are worth the trouble.
Of course, since you're competing against an interpreter running on the
same system, a slow JVM would hit the interpreter much harder than it
would hit the translated byte-code...
What would be really interesting is a Lua JIT that generated JVM byte
code. Unfortunately, loading classes on any JVM is so horribly slow I
doubt it would be worth it.
(I used to work for a company that made an embedded JVM, based on a
translator rather than a JIT or an interpreter. Unfortunately, the stuff
I did was all at a lower level than the actual byte code reading layer,
so I haven't had much exposure to the details of JVM bytecode.)
Incidentally, I should point out that the lua2il download link is
broken, and LuaCLR doesn't seem to have one at all...