Java's future looks bright - the magical Java SE 6 Update N is just around the corner. A modularized JRE (Kernel installation mode) for quicker downloads, more Java2D acceleration, applets running in a separate thread (which means no dreaded startup freeze anymore), and lots of other funky things.
But how well do things look right now? Good question. David Brakeen (the author of Developing Games in Java) generously shared some stats from Pulp Games (by the way the 1.4 compatible PulpCore framework is open source and pretty awesome).
The size of the sample is 3653 playing sessions (single day). Since versions prior to 1.4 account only for about 2% we can thankfully ignore 'em completely. That was about time, wasn't it?
Accumulative Compatibility (what really matters):

While targeting 1.6 apparently is a bit too much for a casual web game, targeting 1.5 won't be much of an issue. Using System.nanoTime() is a compelling reason to use 1.5. There are of course workarounds for System.currentTimeMillis(), but they all come with a set of drawbacks.
If you're really fond of the 1.5 language features you can still produce 1.4 compatible bytecode with Retroweaver. The timing issue can be addressed with interfaces. Just make your timing/capping thingy pluggable and use what's available. This allows you to reach those extra 9% of users without any big compromises.
1.6 doesn't offer anything that's required for games. However, performance improved a lot (up to 48% in extreme cases such as real time ray-tracing). So, do your visitors a favor and educate 'em a bit. ;)
Comments
Do people really still make
Do people really still make applets? Really??
Sure
Of course they do. And Update N will make 'em pretty nice, which is the reason why many people are thinking about using applets again.
With Update N you get modular downloads, which means installing/updating Java will be pretty quick. Unlike other plugins it will run in a separate process, which a) gets rid of the startup freeze which plagued Java applets and b) will result in better performance on multi core machines. Often the browser process is sorta busy with all those flash ads already, which may result in massive performance degeneration.
Compared to Flash you get faster drawing and way faster calculations. So, a simple platformer for example can run fine with 500mhz instead of 1.5. And if you want to draw many sprites... well, then you can forget about Flash.
Right now Flash offers the better user experience, however.
Post new comment