Quake II/III can be done in Java

/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:

  1. The MD3 code is available in Java, with animation examples available in C++ all over the net.
  2. The BSP code is available in C++ OGL/SDL.
  3. LWJGL provides a good framework to start with - full OpenGL with shader extensions (grass examples shows them working) - even OpenAL sound.
  4. 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 :slight_smile:

Interesting thing to see would be a port of q2 source with lwgl or gl4java, then we could truly compare the speed.

Yes, I believe that Asteroids can be done in Java as well.

Cool, but did you notice that QIII already has been released?? Some long time ago? So theres absolutely no need to do it again. Would be pretty much like just another Asteroids, Breakout, Pong, Ultima2,…
Who you think would buy a JQuake3 in the presence of things like SplinterCell?

So that is actually bad news that even people here believe that only 2years old stuff can be re-done in Java.

Nobody here to release Doom3-like games before Doom3 hits the shelves??

(Don’t think that’ll make much sense, but that’s another question)

Ohh come on Herkules - don’t be so pessimistic!

Tech Demos are released every day - they have NO purpose whatsoever, besides showing off some technical features.

What you’re saying is that no painting shop should carry more than one color blue - because blue IS the same color - no matter how you spin it!

Sun got the F1 demo made - see how much attention that made, despite numerous (better) F1 games being made. It is all about showing WHAT Java is capable of. What is being showed off today is a couple of tetris and pacman clones - we need far better games to show Java as a viable platform.

Sure - Quake 4 would be even better, but given any reasonable timeframe, this doesn’t seem feasible!

I say - bring on a JQuake 2 - I’d love to see that - I might even contribute (I am a bit tied down by my two priority projects - lwjgl, and life)

I apologize. I’m old, scynic and life has made me hard…

Yes, but typically they show what can be done, and not was has been done several years ago…

Attention? Where? Despite the fact that nobody really saw it, there wasn’t much to read outside java-gaming.org.

Yes, so why show the world that we can do things nobody nolonger cares for bc. they for long are common practise? To that respect a JQuake2 is just a better Tetris-clone.

Don’t get me wrong - I’d love to see it myself! That WOULD be a proof it can be done at all! But don’t expect any recognition in the games development world (or even in the gamers world). Would be an ‘aha’, no ‘wow!’.

This wouldn’t create any argument to convert to Java in mainstream games development.

[quote] Don’t get me wrong - I’d love to see it myself! That WOULD be a proof it can be done at all! But don’t expect any recognition in the games development world (or even in the gamers world). Would be an ‘aha’, no ‘wow!’.
[/quote]
babysteps, babysteps :slight_smile:

Indeed a Quake 4 or whatever would make people go :o - however I don’t see this happening untill someone with a huge commercial interrest does this - and before they do that they need to see some tech demos :wink:

[quote]Yes, I believe that Asteroids can be done in Java as well.
[/quote]
I believe Q2 engine would go just fine in a non-fps game. If you had a slow paced adventure or RPG with that engine, the textures could be of a lot higher quality as the movement would be slower altogether, game concentrating on other issues than straight action.

Ever noticed that not all AAA-games are fpshooters?

I think there’s too much talk about getting 100% equal or even faster than C++. If you get to 70% speed of C++ you can make market-accepted hit-games as long as you stay away from the fast-action-genre and stick to RPG, RTS, Adventure, etc.

Why then would you do a hit RPG or whatever with 70% the speed of C++? Because Java allows you to complete it half the time (incl. ports to several platforms if needed).

If we had something like that written in Java and the sources were available then people could look at how it worked and learn about the API for themselves. There just isn’t enough running example code right now for that to be possible so anyone trying to learn to use java for working with 3d games is fumbling around in the dark, pretty much.

I think I still have my neck:-)

Maybe some other things to consider:

Half-Life and Team-Fortress Classic were two of my favorite games, and continue to be unbelievably successful - and they use the old Quake II engine.

Unreal Tournament was (still is?) one successful game - yet the technology is only slightly (relative) better than Quake II. Counter-strike is a great example of a modification of an older engine that concentrated on game play (and wildly succeeded).

I mention this because perhaps if QuakeIII world/character/animation tools were available in Java you would see many Java 3D games that would grow to have many more gameplay elements developed much faster than was ever possible.

Also - to stick my neck out further - I believe Doom III is possible in Java with one caveat: The Java version would have access to the GeForce 4 hardware shadow support instead of doing it the hard way they currently seem to be doing it (creating new polygons for all of the shadows I think).

Though I think this level of technology isn’t required - gameplay is more important. I think this more than anything is where Java will prove itself - by giving developers the ability to spend much more time to design and code new types of gameplay.

One thing that has been poking at me since the start of this thread: why hasn’t anyone done this using gl4java?

[quote]One thing that has been poking at me since the start of this thread: why hasn’t anyone done this using gl4java?
[/quote]
A wild guess: those competent enough either

a) are not interested

or

b) do it in c++

:-/

[quote]One thing that has been poking at me since the start of this thread: why hasn’t anyone done this using gl4java?
[/quote]
I can’t comment on gl4java as it no longer works on any boxes (tried 4) I have. Newer NVDA drivers.

Perhaps people aren’t aware of how good the LWJGL is, or that there is Java MD3 code available, or that it is relatively easy to port the OpenGL demos (BSP/PVS/MD3 Animation) demos to Java?

Maybe someone with some spare time just needs to add this code to the LWJGL? I noticed someone ported NeHe lesson 26 (I think) to Java (Gl4Java I think - tired.).

All I can do is mention this and hope it sparks some interest.

[quote]Also - to stick my neck out further - I believe Doom III is possible in Java with one caveat: The Java version would have access to the GeForce 4 hardware shadow support instead of doing it the hard way they currently seem to be doing it (creating new polygons for all of the shadows I think).
[/quote]
Why do you think the native C/C++ version doesn’t have access to this? ??? Carmack’s avoiding GeForce4-specific features because not everyone’s got a GeForce4. The Java version could use them, sure, but you’d be wise not to for exactly the same reasons that the native version isn’t using them.

[quote]I can’t comment on gl4java as it no longer works on any boxes (tried 4) I have. Newer NVDA drivers.
[/quote]
Yeah, it stopped working on my main machine some time ago. :frowning: Both in Windows and Linux! :frowning: :frowning:

[quote]Maybe someone with some spare time just needs to add this code to the LWJGL? I noticed someone ported NeHe lesson 26 (I think) to Java (Gl4Java I think - tired.).
[/quote]
I’m not an LWJGL dev, but I can say with some conviction that an MD3 loader will never make it into LWJGL - it’s being kept as lightweight as possible so things like model loaders aren’t appropriate.

There is, however, the Shaven Puppy Game Library by the same author - maybe Cas would put it in there. Or, you could put it in a small library intended to be used with LWJGL. Hmmm, I see the need of a j3d.org for LWJGL…

You make an app. that needs a specific piece of hardware, and, if your app. is good enough,
ppl will go out and buy that hardware.

Thats how software pushes hardware forwards.
I only upgrade, when I buy a game that needs a faster machine, and i’d wager thats how most ppl think.

The same mecahnism is exploited for console games as well, though it is done to maximize profit, rather than push forward technology. (damn those evil corporations >:( )

Ahh, but we’re not normal people! ;D You’re describing hardcore gamers and technophiles perfectly, but there’s a huge market out there for games to run on 400MHz PIIs with 64MB RAM - most normal computer users would never upgrade their hardware just to play a new game. In fact, most normal computer users don’t even read the system specs, and when things then go wrong it’s the developer/producer/publisher’s fault! :wink:

Some time ago I was on the phone to a family friend trying to work out why a floppy from a magazine didn’t want to work in her PC, then I had the thought of asking exactly what magazine it was. Amiga Action. Doh! :o


Interesting enough, I've done a bit of research and it looks like John Carmack [i]is[/i] actually using GeForce4 features. It's just that he's also implementing fall-back systems for cards that don't support certain things...!

good point ;D

ah, 2hell with all the stupid ppl ::slight_smile: