Java Technology Demo Showcases Quake
solarisguy writes "I saw earlier today on JavaGaming.org that Reality Interactive released a non-playable demo of Quake in Windows or Linux flavors, implemented entirely in Java. It runs natively on Linux, 1280x1024 at 60fps on my box with around 65% cpu. Could this be the future of games on Linux?" This ties in neatly to our recent posting on Sun promoting Java for higher-end games development.
Seven year-old games that you can watch but not even play? If that's the future, thanks but no thanks.
However, that is not usually the case. Most people just close bit torrent when their download finishes, selfish people ;)
The Quake engine is GPLed. I imagine they ported it to Java for this 'technology demo' .. So what I want to know is, where is the source?
-molo
Using your sig line to advertise for friends is lame.
Does the GPL cover this scenario? A port to a different platform is one thing, but a "translation" to another language is quite another. It's unlikely that it shares any actual source. The algorithms and method/functions are likely very similar, but that's not a GPL issue. In fact, it's the open source people who most frequently argue that algorithms shouldn't be encumbered by patents/licenses.
Copyright law should cover this. The Java port is a derived work.
-molo
Using your sig line to advertise for friends is lame.
It's quite possible that Sun negotiated a separate license from Id, in which case the GPL wouldn't apply.
Remember this???
This demo is offline these days, but the info is all still up there.
"Go to CNN [for a] spell-checked, fact-checked summary" -- CmdrTaco
Can anyone setup a mirror? This is stopping and starting at a couple K a second.. and that Fileplanet thing is bogus.. you gotta become a member in order to download? Where is sunsite when you need it?
Using your sig line to advertise for friends is lame.
I agree that source should be released, but there are several good Java decompilers, and, unlike decompilers for other languages, they produce very readable output, often with the original variable names, etc.
Nothing to see here; Move along.
"Could this be the future of games on Linux?"
Depends. Can Java talk to 3D cards? If not, then the answer is no.
If Java were to develop a cross platform version of DirectX, then the answer would be eventually yes. I'm not just talking 3D here, so spare me the "OpenGL already exists" rebuttals. That's only one piece of the puzzle. There also needs to be the equivalent of DirectSound, DirectPlay, and another Direct component that I'm having difficulty remembering of right now.
That's a really ambitious task. But, on the other hand, it'd be really hard to want to develop using DirectX if the Java equivalent does the job and requires little to no porting in order to support other platforms such as Linux or even Mac.
"Derp de derp."
I suppose next we'll be asked if scooters are the future of personal transportation, or talentless teen-age models are the future of pop music, or invading countries that have oil is the future of world commerce. (Oops!)
solarisguy writes "I saw earlier today on JavaGaming.org that Reality Interactive released a non-playable demo of Quake in Windows or Linux flavors, implemented entirely in Java. (...)"
I have lots of non-playable games in Linux flavors, implemented entirely in win32 API... Of course, I am joking. This is great news. When most of games in stores start to be written in Java, I am sure many GNU users will use them (at least those, who have no moral objections to use proprietary software) and there will be finally no reason to use Windows and therefore to preinstall it by OEMs. This could be a great long term strategic success. We need more people using free software at home, especially in the age of corporations looking at such software with suspicion because of corrupted companies, like the infamous dying S.C.O. who tries to extort money never minding the implications to the society at large. I agree with most of people here.
Karma: Positive (probably because of superiour intellect)
Along with jrstewart's alternate licensing scenario, it is also possible the company simply used published documents on the format of the data files to produce a renderer all by themselves, which would produce an engine they would own fully.
In which case it's only "fair" for them to own the final product, since that would be a lot of work.
Several titles that have already been released or are about to be released seriously considered using Java instead of the usual C++. They all decided in the end that they would stick with what they knew for fear the performance would not be enough. (I cannot for the life of me remember the titles since this was a while ago, but I was reading developer's comments) Not as far off as you think, especially if sun has a proof of concept game like quake showing good performance.
And I quote from the FAQ:
3. Isn't Quakeâ GPL? Where's the source?
The technology preview is a Quakeâ compatible system that reads the Quakeâ network protocol and file formats. This is a from-scratch implementation using the Javaâ language and the Reality Interactive Simulation Containerâ. The purpose of the demo is not to demonstrate Quakeâ, but the capabilities of the Simulation Containerâ.
RTFA, smartypants.
--Life may have no meaning, or, even worse, it may have a meaning of which you disapprove.
I'm meant to be amazed at a 7 year old game that runs significantly slower (read 7 times on my machine) than the native code that has native machine coded libraries? Who are they trying to kid?
I'm all for java and its portability (hell Iâ(TM)ve been force fed it for the last 3 years at University & work), but the promised speed increases and the dynamic optimizations with the vm seem to be a long way away (can anyone say vaporcrap).
GPLv2: I want my rights, I want my phone call! DRM: What use is a phone call, if you are unable to speak?
I just get "JVM terminated abnormally" when I try to run it via the launcher. If I run it directly I get:
G LTextureEngine.selectTexture(GLTextureEngine.java: 171)
at com.realityinteractive.quakeworld.client.texture.G LTextureEngine.setMultiTexture(GLTextureEngine.jav a:212)
An unexpected exception has been detected in native code outside the VM. Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x0 Function=[Unknown.] Library=(N/A) NOTE: We are unable to locate the function name symbol for the error just occurred. Please refer to release documentation for possible reason and solutions. Current Java thread: at org.lwjgl.opengl.CoreGL.activeTexture(Native Method) at com.realityinteractive.quakeworld.client.texture.
I'm using a Matrox card on Windows 2000, so maybe that's the problem.
...is not even mentioned. The thing that made early Quake suck was that servers could be ping flooded and the game would die.
That and Id never addressed hacking issues that ruined the game. Oh wait, this aspect about quake hasn't changed at all. Never mind.
Dolemite
_______________
Save the World! Use a Quote!
Ever try playing a game multiplayer with friends, and discover you can't, because it can't cope with NAT, or because despite you opening the ports the game tells you to, it seems to want more undocumented ones, or because you bought your copy for Linux and theirs is on Windows and despite being the exact same game at the same patchlevel (i.e. Loki titles), they just won't talk to each other?
If stuff just doesn't work... it's probably using DirectPlay.
Not that I'm bitter or anything. Just that stuff I know isn't using DirectPlay (id games, for example) always seems to work fine.
Mahnamahna!
FYI, question #3 and question #4 are new. There used to be only 10 questions in the faq when this story was posted.
-molo
Using your sig line to advertise for friends is lame.
In order for gaming companies to be willing to write their top of the line games in Java, they'd have to trust Sun to keep Java on the bleeding edge of performance. Since Sun gives away Java free, I don't know if they have the resources to do that.
Maybe Sun could sell certain libraries to those companies to offset the cost?
This is a very interesting post but I'm glad that you brought up a VERY common misconception. How do you think that Java reads from files or from the network or displays to the screen? It's all JNI (i.e. native methods). There's a reason that there's about 5MB of .dll / .so files in the JRE. So take most any "100% Java" application and turn off native methods and see how far you get.
.jar for obvious reasons).
As for the playable perspective, the only difference between this implementation and a playable implemenation is that input is disabled (and not included in the
As for being impressed, you should be. As recently as a few weeks ago there have been news postings on Slashdot that vehemently denies the possibility of gaming at a reasonable speed under Java. Now it seems that the argument has changed from "not possible" to "well it's still slower than native". What happened to the "not possible"? Let's get back to the "not possible" line.
Will there be a retort for everything that comes out with Java? What if I came out with something that was faster? I rue that day I tell you!
DISCLAIMER: I mean all of this light-heartedly in the spirit of open discussion.
We are trying to keep up with the questions that we are getting by adding FAQ elements as they come up.
Its non-trivial to formulate a FAQ a priori so bear with us.
ive never seen a simple gui app written in java that could run 60fps on any machine!
somehow i have my doubts...
There's a difference between "native methods" which are part of the Java platform, and ones which are not. Are you suggesting that this application is 100% Pure Java?
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
I notice a lack of specs mentioned... The poster gives the stats on his system, but neglects to tell us what it's running. The runs at that speed on probably a P400 with a low end graphics card (Voodoo 2 or 3 say), so, given todays systems, this isn't exactly something to wet your pants over now is it.
Let's seem them port Quake 3 and have it playable at that resolution and framerate, then I'll be impressed.
By no means.
Though it is difficult to give weight to the whole "100% Pure Java" statement since if Sun pulled LWJGL into the core tomorrow then the application would be "100% Pure Java". Would that change the preception of the Java-ness of the application? Very murky waters these are.