lots of work
but the Jake2 guys are probably the best bet - or someone reusing some of the codebase (assuming q2 and q3 have at least some parts in common)
Q3 has already been very well done by EgonOlsen and Tombr of these parts (see Undead Arena f’rexample). No need for a Java port, it got done natively already!
Undead Arena is only a q3 level viewer at this point. It can load any map and you can walk around, but it is not a game. The networking is partly done, but mayor work is needed to make it playable.
A straight port would be better for comparison between java and native. Not that I think we need it.
Remember, Quake 3 is pre-Vertex Arrays (vertex buffer objects) OGL, so there would still be allot of OGL calls hitting the JNI layer.
I think that a port is good, but it will not be hitting the sweet spot for JOGL (or any Java/OGL) unless it uses VBOs… :-\
I tried getting it to connect sooo many times
Are you actively working on it still ? - coz it looks mighty impressive, and would love to play some deathmatch in it!!
I think a java port of the Q3 engine would be very valuable, since it’s a very complete game engine optimized for FPS games and not just a general rendering engine (of which we have plenty in java already and as noted, even with an option to import Q3 maps).
We could optimize it to use VBO, to get a nice performance boost too.
A lot of the q3 engine is pointless in Java remember… like all the virtual machine and mod stuff etc. The only useful bit’s the renderer bit… maybe someone should help out Tombr get a game into Undead Arena instead of reinventing wheels Or, er, porting wheels.
Now when the source has been release does this mean that the tool chain has been opened ? Earlier it has been kind of an issue, the map editor has been free and the .bsp fileformat but to get the actual bsp/pvs/lightmap compiler you needed a copy of Quake3 or a developer license. With a Q3 game license you where only allowed to use your maps with Q3 hence you needed a very costly developer license to use it in 3:d party applications.
I would like to see a direct comparison between native and java. And the problem with not using VBOs could be solved via a build with and without. Mentioned that the OGL libraries for JAVA aren’t that old as Q3A Why not using advance technics for a port?
The problem is that there’s no such thing as a “direct comparison” - code is always structured wrt a specific language. As such, converting the C source into Java line-by-line will show a vastly underperforming Java; doing the opposite will show an underperforming C. So can you compare on features? No chance. Even features are chosen based on the language and environment.
The Undead Arena work is bloody impressive, but if you try and use it for a comparison people will complain about the bits that haven’t been implemented - it’s not apples-for-apples. If you do spend the time and effort implementing every last Quake 3 Arena feature, from lighting effects and animation to mod support and compatible networking, I’ll 100% guarantee it that the sceptics will just shrug and say: “But that’s old technology. Java will never be able to do Doom 3.”
Q3 uses vertex arrays, but not VBOs. I think vertex arrays is a OpenGL 1.1 features, while VBOs came much, much later. Please don’t mix the 2 together as they are quite different.
There will be the same number of JNI calls with vertex arrays as with VBOs. But more data will be tranfered with vertex arrays. Static geometry can be optimized by only sending the indices of the visible triangles. Non-static geometry like entites and other models will probably be transformed in software to do batching or animation, and will use vertex arrays anyway.
No I’m not actively working on it
There is no global server running, so your best option is to start 2 games on a LAN and type in the oponents ip.
Porting the wheel would probably be easiser But if anyone is seriously interested in finishing Undead Areane, I might consider open sourcing it.
Aren’t we over the “java is slow” thing already? ;D
Sounds like a huge waste of time to do a line-by-line port of Q3 just for a benchmark.
Maybe Q3 is not the “latest, dopest, hypest” engine, but I think it’s still very capable. We already have rendering engines, some even with gaming in mind, but it would be really nice to have a complete, industry proven gaming engine with mapping tools and everything available in java.
I wish I had some more free time, otherwise I’d seriously consider porting it myself.
Oh, I agree. Not for benchmarking but, rather, to have a freely available engine that could have the benefit of the tools available for Q3, known engine, etc.
IMHO, you are right there, Chris. A freely available JavaQuake3 engine would be great for modders/community/such, if it also launched from WebStart. That could give a good kick start even if people say “oh, that’s old tech” because it would still be better than allot of the Java 3D game stuff online. Would be cool to point to for allot of developers of other kinds of things too.