List of commercial games using Java?

I wholeheartedly agree with Damocles above: The end-user experience needs to be convenient. Ideally, the end-user wouldn’t even know/care they’re running a Java application. Of course, Oracle’s marketing department probably wouldn’t go for that.

I’m providing a small exe/dmg (as well as jar) that launches the game, but the end-user still has to install Java. I wish my exe could just include the JRE, and not just as a separate component of an installer – the exe would actually be the JRE+app. That makes for a much larger download (my exe is only 82KB, but that’s just a boot loader), but at least it would be a single file launcher with no external dependencies for the user to mess with.

To stay on-topic: I’m working on it (but not technically commercial yet, until I start actually making money). Just a modest niche indie title; certainly not AAA (or even well known yet).

cas and pitbuller,

  1. dalvik is not slow. Even the NDK stuff is slow because android is like running linux on a phone.
  2. The reason many use the NDK is because they were using c++ from the start.

So your both right about part of it.

I can say my games are fast and I have lots of action in them. Even my 3d versions don’t use the NDK and are fast.

Don’t tell anyone but I am one of the few with games on Google TV because most of them do use the NDK. (Google TV won’t get the NDK until next year.)

Hm, I find Dalvik to be quite wretchedly slow compared to native code. About a fifth the speed I’d say. Dalvik doesn’t do any of those super clever things that Hotspot does that have kept desktop Java in the performance limelight.

Cas :slight_smile:

well to have all in one exe is the molebox kinda way, which has been done, but is of course not really legal
however the middle way between this and have the user install java by himself is using a private jre that you include
like I do in with this game
http://www.java-gaming.org/index.php/topic,24694.msg209184.html
the small exe uses the private jre

Using a “private jre” sounds like a good approach. How do you deploy that, though. The only way I’ve seen is by bundling a JRE inside an installer.

well yeah I use Nullsoft installers
and all you do really is have a jre folder beside your other stuff
and the exe (which in my case is just a batch file compiled to an exe) will call this jre

if you install Arcane Nebula and look into the folder
there is a .dat file, which is a jar file just renamed, an exe file which calls it
and besides the game content and libs a folder called “vm” which is just a jre folder (server vm included by copy)

I didn’t quite belive that until I searched at internet and every source was saying 3.5-5 times slower. I was bit suprised becouse I haven’t noticed any performance problems with cpu. But I only use libgdx and there is ton of native code generated with JNIgen keeping performance much closer at pure native code solution.

Fine if you’re GPU limited, but if you’re doing much beyond the sort of trivial trinkets typically found on phones you’re probably going to be irritated. Remember that sprite engine test I did on the Samsung S2 lately? That was all pure Java code, but I was having to settle for a fairly miserable 500 sprites/frame at 30fps or risk it being far too slow. On the Galaxy half of the entire frame time was simply the CPU feeding sprite data to the GPU.

There are a few choice optimisations they could start introducing that would make things much, much faster - I think the biggest win would be method inlining and virtual function calls being turned into straight function calls. Then intrinsification of nio Buffer operations. After that, possibly escape analysis might prove surprisingly useful.

Cas :slight_smile: