For a large game I’m working on, I need to do math directly on native FloatBuffers. (Think: transforming vertices to write into a vertex-array for particle-engines) Converting back and forth between float[] and FloatBuffer to do the math just takes too much time, and math on float[] in the Sun client-vm is kinda slow anyway, as there is no bound-check elimination. So I really need to run this app with the Sun server-vm, and distribute it to everyone using this game.
The problem is the JRE license. For this game, it’s just no option to let players download the JDK/SDK, it’s just too big (59MB). Further, the JRE license allows no modification whatsoever on a distributed JRE, so I can’t replace the client-library with the server-library (DLLs in this case). Adding the server-vm-library in the right directory does the job also, but still would be “modification” of the JRE.
Now, is it legal to distribute the Sun client-vm, and let the game download the server-vm library writing it to /bin/server/ and using it the next time the game is launched by changing the vm-args?
I can’t wait for Java 1.6 which might (or might not) have two-tired compilation (client+server), and I don’t really want to break the JRE distribution license. What are my options?