There’s an outdated article on Gamasutra by Bernd Kreimeier (1999) witch quotes some “dirty Java” games, as well as tries to look at how to do JNI and such.
I don’t know if the article is good. I learned however that John Carmack considered using Java in IDs’ game for quite some time but dissmissed it in the end for Quake3. Kreimeier writes: [quote]
John Carmack considered using Java in id’s games for quite some time, ever since he announced that the company was leaning towards client-downloadable code for the Trinity project. “The QA game architecture so far has two separate binary .DLLs: one for the server-side game logic, and one for the client side presentation logic.” (…) However, with the hacking attacks on Quake 2 servers in mind, Carmack states that, “While it was easiest to begin development like that, there are two crucial problems with shipping the game that way: security and portability. If we were willing to wed ourselves completely to the Windows platform, we might have pushed ahead, but I want Quake 3: Arena running on every platform that has hardware-accelerated OpenGL and an Internet connection.”
(…)
His solution: “I had been working under the assumption that Java was the right way to go, but recently I reached a better conclusion. The programming language is interpreted ANSI C. The game will have an interpreter for a virtual RISC-like CPU.”
(…)
The advantages of using a C or C++ subset for your VM are obvious when it comes to handling legacy code. Ironically, it was Java portability problems that led id to develop the Quake 3 custom VM. Sun’s promise of “write once, run anywhere” did not hold for the Invocation API on important server platforms, so Carmack decided to abandon the embedded JVM he had planned to use. (…) “Having made the decision to do my own interpreter, I feel much more at ease not having to rely on anyone else’s external code. When it comes around to the next development cycle, I will make the Java decision again.” As for embedding: “We are still working with significant chunks of an existing code base. If I did want to go off and start fresh, I would likely try doing almost everything in Java.”
[/quote]
(Highlighting by me.)
Does anybody know more about Carmack’s sentences?
I suppose he didn’t “go off and started fresh”, or is it that Doom3 uses Java? Doom4 maybe - when there’s an OpenGL 2 binding for Java 1.6 ?