Slashdot Log In
Quake2 Ported to Java, Play Via the Web
Posted by
Hemos
on Mon Nov 28, 2005 01:55 AM
from the keepin-it-old-school dept.
from the keepin-it-old-school dept.
casemon writes "Quake2 fans unite! Thanks to German software developer ByTonic software, you can now play Quake2 via the web with Jake2 a java port of ID Softwares seminal Quake2. ByTonic claims performance is similar to original C version. From the Jake2 website;
"Jake2 is a Java 3D game engine. It is a port of the GPL'd Quake2 game engine from idSoftware. To use the Jake2 engine you need either the data files from the original game or from the demo version available for download from ftp://ftp.idsoftware.com."
You actually don't need to get the data files, they've set it up to automatically download the 38Mb demo assets using WebStart. Just click the Play Now button and away you go. Most features supported, even multiplayer server!"
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Erm, link: (Score:5, Informative)
Re:Erm, link: (Score:2)
Re:Erm, link: (Score:4, Informative)
Parent
Re:Erm, link: (Score:3, Informative)
I have a real good computer (memory, processor and video card) but I must tell you, the game runs really fast, you dont have the feeling of running a java application with all those 3 dimensional objects flying around you. You cant tell thats a program being interpreted.
Great job folks! The Java community has only to earn with this proof of concepts works
I have been there [livejournal.com]
Re:Erm, link: (Score:3, Insightful)
Java programs don't get interpreted on modern VMs, they get JITed. In some cases, this can result in more effecient code than a precompiled binary such as one created by a C compiler.
Re:Erm, link: (Score:3, Funny)
Bob
Re:Erm, link: (Score:5, Insightful)
No it assumes that the compiler cannot know the most common runtime code paths (which is true). A JIT engine can of course.
Even with compilers that read seperately collected profiler data (such as recent gcc which can take gprof output) can only work on that one profiler measurement. Lots of software is highly dependent on usage patterns and so different paths will be run depending on how the user uses the software. Only runtime optimisation can take this into account.
Parent
Re:Erm, link: (Score:4, Interesting)
I worked in a compiler group for 10+ years. Profiling was definitely the best way to optimize a program. The challenge was that the compile-profile-compile loop was cumbersome and was hard to account for all use cases. JIT profiling deals with YOUR use case. If it's really good, it will even adapt and re-profile as your use pattern changes.
Parent
How is it bigotry? (Score:3, Insightful)
This is really the conflation of two orth
Re:Erm, link: (Score:3, Interesting)
Re:Erm, link: (Score:2, Troll)
>This is a bullshit argument that generally presumes a substandard optimization by the binary compiler.
Like it or not, in 10+ years from now most (if not all) applications will be written in either Java,
Re:Erm, link: (Score:5, Funny)
1)
2) People who's last experience of Java was rollover applets in 1996 and who have refused to install a JVM since
3) Crusty old Unix hackers with beards and rainbow jumpers for whom Window Managers are eye candy and whose idea of a IDE is vi
Bob
Parent
The Slowness Of Java (Score:4, Insightful)
Maybe there are reasons for this that aren't directly related to Java. Maybe Azureus just isn't very well-written, or maybe it's just feature-bloated. Maybe the Windows JVM just stinks.
But in any case, the common perception of Java applications as being slow and ponderous is one that Java applications have earned - there are actual reasons, based on real-world experiences, that cause people to feel this way. That has nothing to do with some pig-headed resistance to change.
Rather than railing against the Java-haters, why not point out some useful, slick, fast Java-based applications? I'd love to see some. Every one that I've tried so far has been a disaster in one way or another. I honestly want to like Java. I like the language, I love the concept - it's the real-world experience with it that I have a problem with.
Parent
Re:The Slowness Of Java (Score:5, Insightful)
Um, you did see what the article is about didn't you? Perhaps you should try it out.
I have used quite a few Java programs and most perform well.
Parent
Re:The Slowness Of Java (Score:4, Insightful)
Parent
Re:The Slowness Of Java (Score:3, Informative)
Re:The Slowness Of Java (Score:3, Insightful)
John Carmack is not the greatest programmer, but he is a damn fine programmer. He has shipped tons of games, and shipping games is an incredibly difficult thing. You also have to keep in mind that until quake2 included, he handled almost all major programming tasks (rendering, networking, architecture). Doom is one of the first games I've seen to cleverly use the same client/server architecture whether you
Re:The Slowness Of Java (Score:3, Informative)
I've had a pretty good experience with jEdit [jedit.org], a Java-based programmer's editor on both Linux and OS X. It's mostly replaced emacs for me now. Although I've only tinkered with Eclipse so far, it's been pretty responsive for everything I've tried. On the Mac, NeoOffice/J (the OS X port of OpenOffice.org, which relies on Java for access to the Cocoa API) seesm to run pretty well. Granted, these ar
Re:Erm, link: (Score:3, Interesting)
Where Java has been or still is slow.
1. Start up. It takes a good bit of time to start a java program because it takes a good amount of time to load the JVM. Not an issue on a sever where the JVM is probably in use all the time but a pain on the desktop. It also makes small utilities a pain in java. The latest version of java seems to start quicker.
2. Swing. Swing has been slow. The latest version of java seems much bett
Re:Erm, link: (Score:4, Insightful)
Java's benefit is its age and portability. Its fairly mature and very fast when running under the server vm for some time. Quick command line apps are best served with C code. Compile C code with g++ instead of gcc sometime. Not only will your code run slower, but it will be larger as well. Likewise time a Visual C++ app vs a
If your vision of java is applets think again. No one uses java for applets anymore. If you do, you missed DHTML and its recent variants. Client side code is ignorant anyway. Browsers aren't standarized enough for that yet. Java is good for server side code and if written properly, desktop gui applications.
Parent
Re:Erm, link: (Score:5, Funny)
Don't you mean that there are 11 types of people?
Parent
Re:Erm, link: (Score:2)
However, not C or C++. But perhaps something like ocaml, which can compile to bytecode or native code, but has all the niceties of garbage collection and so on. This would be nice, as ocaml is actually type safe (Java's type system has holes in it, but at least it has generics now...)
Works pretty well (Score:5, Informative)
And this with a not so fast computer: PIII 800, TNT 2, 384 MB RAM.
Anyway if you wanna see benchmarks with older computers look at their web.
If I was Sun CEO... (Score:5, Insightful)
Re:If I was Sun CEO... (Score:2)
You'd have to give it away for free to make *anyone* throw away their well-tested-and-working C++ engines for a Java Version. No matter how fast it is, the java=slow paradigm is burned to deep into
Re:If I was Sun CEO... (Score:5, Insightful)
Parent
Re:If I was Sun CEO... (Score:2, Informative)
Java already has an OpenGL interface (presumably what this is using). I don't know what this guy is using for sound (although the Java Media Framework might work), or input, but presumably all of the pieces are already there.
Yes, probably JOGL [java.net] for the OpenGL. For sound, core Java can handle raw PCM, and JOAL [java.net] (Java Bindings for OpenAL) can sit on top of that. Java Media Framework is useless and effectively dead. Input can be handled by JInput [java.net].
Re:If I was Sun CEO... (Score:2, Interesting)
- Multiplayer should allow voice and webcam communication.
- There should be Servers and bandwidth available for Multiplayer games.
- All parts of this library must be able to run on Windows/Linux/Mac/Playstation (including JRE and SPU support on PS3)
- There should be new graphic instructions in Java JRE (based on OpenGL API) that directly maps to OpenGL driver and don't need RMI layer.
- There could be "iTunes for games" service that provides all game
Yes, but does in run (Score:2, Interesting)
works on a mac (Score:2, Informative)
This is the coolest use of Java I've ever seen.
Well of course it runs great (Score:4, Funny)
Parent
Quake 2 seminal? (Score:3, Insightful)
I've played Quake 2 than all the rest put together, but that doesn't make it seminal.
Re:Quake 2 seminal? (Score:5, Insightful)
Parent
Re:Quake 2 seminal? (Score:2)
The advances made at ID Software in computer graphics are impressive. Unfortunately a lot of games are afflicted by an obsession with the gr
Re:Quake 2 seminal? (Score:3, Interesting)
Re:Quake 2 seminal? (Score:2)
Re:Quake 2 seminal? (Score:2)
dupe (Score:2, Informative)
Performance myth. (Score:3, Informative)
The real issue is startup time and initial memory consumption. Java is not suitable for applets that run in the background because your basic app will require about 20 megs of RAM minimum to start. Another issue is swing. You can disagree with me, but please wake me up when it gets clear type fonts on windows.
Cheers,
Adolfo
Good morning, Already there in Mustang (Score:3, Informative)
Swing is not slow or bloated, it just can't be compared to the native OS size since it duplicates its functionality so its memory usage seems high in the task manager. Startup time and cold start is improving with every release and building serious client side Java applications is becoming a very re
Comparisons with the .NET version of Quake2? (Score:3, Interesting)
The
The Java Version uses accelerated 3D (Score:2, Interesting)
If the Java version would do the same, then I would take my java performance prejudices and dump them.
Nice to see a full port, not just the game logic (Score:3, Insightful)
screenshots (Score:3, Informative)
C and profile feedback optimization. (Score:5, Interesting)
I have two points.
Comparing a static C binary, with a JIT is sort of silly. Logically comparing a JIT with a C binary compiled with profile based feedback optimization is probably more legitimate.
Secondly, the released Quake engine had a couple of assembly routines. Proving that C wasn't always the best choice, even back then. My understanding is that the versions of quake with assembly loops are roughtly 30% faster than the C only version they are comparing this with.
In the end these sound like good results, I'm continually amazed at how fast java has gotten. The fundamental arch is pretty much broken for generating fast binaries, and it speaks volumes about the quality of the coders writing the JIT engines that they can make a stack based compilation target run fast on modern processors.
Oh, one final thing, did anyone see what C compiler they used for those numbers? I'm currious if it was the same compiler ID originally used, or one of the more modern intel compilers?
Re:"...performance is similar to original C versio (Score:4, Informative)
I've not tried it myself yet. Might get in trouble at work.
Parent
Re:"...performance is similar to original C versio (Score:2, Interesting)
Re:"...performance is similar to original C versio (Score:2)
Re:Get ready for some low FPS! (Score:3, Interesting)
Re:How fair is this Java vs C comparison? (Score:3, Interesting)
Yes, Java came out with Native I/O API (NIO).
All benchmarks that I have looked into that show that Java runs faster then C/C++ are extremly heavily biased towards making Java look good.
I've read similar reports of
Correct me if I am wro