Because I could
Slashdot heralded the release of the first fully working version of Jake2. This is a port of the Quake2 Engine for Java. Let me just say that again. This a Java port of Quake2!!!
I had to try it to see if it worked... and it does! Quake2 runs FAST on my iMac G5, really fast. According to their benchmarks they have got 95% of the speed of a pure C compilation, and my impirical tests show that to be correct. This is the same language that can't even get a user interface to run efficiently and here it is running Quake at breakneck speeds.
There are of course a few problems - garbage collection and JIT. The game has a tendancy to stutter, and this only happens when a new model is being used or when there are explosions, but as this is still a 0.9 release I guess there are still teething problems.
Quake2 sends me back to 1997, when my powerhorse was a PII 333MHz with 32MB RAM and Voodoo2. Which lead me to an obvious question... does it work on the beast?
Yes! I took exactly the same code, sftpd it to The Beast and started it from an SSH session on the iMac G5 and it bloody worked! It automagically scalled back the graphics to allow for the poor processor and memory, but it was a fully 3D rendered scene over SSH. I was gobsmacked.
This is a truely amazing peice of software and I think it could really open a few eyes in the gameing world. If you can run Quake2 in Java, why not Quake4? The advantages are obvious. Exceptionally easy multicore support, most memory issues can be forgotten, but most significantly write-once-run-anywhere. One coding effort can make your game available on everything from a PS1 through to a XBox 360. Porting would move from a coding exercise to a configuration tweeking exercise.
The barrier before was that performace was percieved as lousy. The Jake2 team have stood this on its head. Well done.
One thing its also got me thinking is... where is the Swing implemetation that uses 3D hardware?