/me sticks his neck out and states thusly:
Maybe I’m all alone like a guy from Saskatchewan who’s snowmobile ran out of gas, but…
I believe a game like QuakeIII would work fine in Java 1.4.1_01 running on top of the LWJGL on a GeForce2/1GHz box.
Here are some things going for this idea:
- The MD3 code is available in Java, with animation examples available in C++ all over the net.
- The BSP code is available in C++ OGL/SDL.
- LWJGL provides a good framework to start with - full OpenGL with shader extensions (grass examples shows them working) - even OpenAL sound.
- the AI code for the mobs in Quake II is between 10KB and 20KB per mob - straight C, no system/gui calls.
Quake III is getting what, 300fps on some systems? At the end of the day, I don’t see Java being much slower than C++ (thanks to nio) at blasting ogl commands to the video card. Frustrum culling and PSV code would likely run at nearly the same speed too. I doubt the C AI code from Quake II (if anyone could make sense of it) would run much slower in Java. No garbage collection required…
So it would be easy to list all of the reasons doing the above would be hard. We should take those reasons and make a todo list out of them.
So what’s the point? These tools already exist in C++. Glad you asked…
Imagine having Quake II/III “scenegraph” and model animation + sound capabilities in Java. I believe this would be the catalyst required to seriously move into Java for games. With the constant advance in CPU power I would see no reason to use C++ ever again.
I remember purchasing Quake the day it was released. I had a slow PC, (maybe 100MHz?) and cheap video card. Yet, it ran 20+ fps and provided true 3d maps for me to explore. I couldn’t believe John Carmack (et. all) was actually able to make that work. The spark for me
was actually seeing it work.
I believe Quake II/III can be done in Java - mostly because of todays 3D cards and because of what I have seen Java do relative to C++. But I accept that most people would not - until they saw it work. It’s only a matter of time until the pieces fall together…
I will check back to see how well my neck is doing