Version 1.0 of the LWJGL has been released. “The Lightweight Java Game Library is a solution aimed directly at professional and amateur Java programmers alike to enable commercial quality games to be written in Java. LWJGL provides developers access to high performance crossplatform libraries such as OpenGL and OpenAL allowing for state of the art 3D games and 3D sound. Additionally LWJGL provides access to controllers such as Gamepads, Steering wheel and Joysticks.”
‘LightWeight Gaming Library’ I can understand.
‘Java Library’ also makes sense.
but the concept of a ‘Lightweight Java Gaming Library’ is pushing things a bit far no?
I think this article was released 55 days(01/04/07) early.
What are you on about?
its not an article its a news post which refers to the library reaching version 1.0 yesterday(at the time of this reply). Just shows that you didn’t read what was on the link before flaming it based on an out of date, decade old argument.
As for being light and fast for gaming, Java is perfectly capable nowadays.
Edited 2007-02-05 18:58
Actually, I did read the article, the 55 days thing was a lame attampt at a joke (see: http://en.wikipedia.org/wiki/Joke).
I keep being told so, so I tried out Jedit again today. Once it’s started up, it’s not too bad, but then I noticed that it runs at system startup, meaning that the Java VM is in memory all the time. So I killed the VM and suddenly Jedit it took quite a while to start up.
Likewise, I downloaded one of the LWJGL projects (Diamond Crush) to try out. This thing was a simple tetris-style game, but took a similar time to start up as Counter-Strike, for a tetris game!
seriously, upgrade!
my P4 2.4GHz (@ 2.7) shows a window in 3 seconds, and the game 1 second later, total time from launch to playability = 4 seconds.
Running the game a second time, its all running within a second.
Perhaps you’re running an old VM ? – latest is 1.6
how about your try some of the better LWJGL projects like Tribal Trouble, and see how performance can be up to par with other native languages. Rather than trying just one odd game and basing your opinion on that. You can also try Titan Attacks which was a winner in multiple indie game awards last year.
Also i recommend you try out http://www.tiltilation.com for yet another example of a great java game using LWJGL, this one has been compiled with GCJ, so its completely native with no jre.
Edited 2007-02-05 20:44
I’m actually downloading TT and Devastro as we speak.
It’s amazing how one tongue-in-cheek post can cause so much heat. This level of defensiveness is usually an indication of a certain ammount of insecurity about the point being defended, of course in this issue, I’m sure that that isn’t the case. :p
Would highly recommend you upgrade to Java 6.0, it has had major optimisations and is much faster and snappier than before.
Edited 2007-02-05 21:08
Thanks for the info, I just assumed that the java that installed itself on my XP box was the latest. or is the current 6.0 not a GA release?
Of course, it should be noted that if simple C programs had to bring into memory the whole C runtime each time (about 12MB on my machine), they’d take a while to load too. Java has the misfortune of dealing with OSs that are geared towards, at the linking and loading level, programs that look like the output of a C compiler.
In a Java OS, you’d do thinks differently, and buy back a lot of performance in return. For example, since you need the compiler around anyway, you don’t need fancy conventions for shared libraries in order to get around the fact that you can’t recompile the code. You can simply cache the results of a JIT, updating the code when a library is installed or upgraded. That’d actually end up being faster than the system traditional OSs use now, because you wouldn’t need to perform shared symbol resolution at program load-time (just at JIT-time), and you wouldn’t need position-independent code.
Lightweight in this context means that there aren’t things like scenegraph libs or object loaders.
Java has quite a big memory footprint and the way the garbage collector is specified without any guarantees is a little bit disturbing.
But that doesn’t mean you can’t write games with it that will perform ok on avarage Hardware. The Java port of Quake 2 runs fine on an 400 MHz PC and that overhead isn’t going to grow linear, so you could do Quake 3 quite probably on 500-600 MHz P3 with 128MB Ram (if you are using an adequate Operating System for that kind of Hardware, not if you run Vista on that kind of Box).
So please, don’t flame around if you don’t know what you are talking about.
see the other thread started by another java groupie .
I prefer other languages. I’m not a Java groupie but i am a proud owner of a thing called “brain” and thus capable of independent thought and don’t have to rely on stupid second hand forum-bullshit.
Repeating useless prejudice isn’t the definition of truth.
There are reasons that go against Java and there are reasons for Java, but that “Java is to slow” thing isn’t valid anymore.
Wow Alle, put some hair-gel in those hackles. T’was only meant as a light jibe.
stupid second hand forum-bullshit
…However, isn’t what I was basing my comments on. My opinion on Java programs is formed from actually using them a year or so ago, Eclipse and Jedit most notably. The performance of both of these sucked terribly when I tried to use them regularly and thus have tended to avoid java programs as much as possible since.
Now if things have changed (as it appears they have) since then, (Although I still won’t bother with Eclipse) then I’m happy to stand corrected by anyone who is willing to reasonably argue their point, as has been elsewhere.
Eclipse is so slow not because it uses Java but because it is basically build as a collection of plugins. Eclipse itself is so tiny that it almost does nothing at all.
A better impression on Java speed is an actual version of Netbeans. It does takes quite long to load which is partly due to the fact that it does have to deal with plugins as well. Once it is loaded it works very fast.
Notice that resizing an Java app still looks slow on Java 1.6 but that doesn’t give an valid impression on overall performance since this has to do with the way it is dealing with refreshes.
I once complained on Java performance as well with an opinion based on Eclipse and other Programms. If you start programming Java you will recognize that it isn’t slow at all. I was surprised to see that in some cases it even outperformed my C++ implementations.
Java uses alot of resources.
Thats what he means by slow.
Slow = many meanings when talking about java.
Check out these lwjgl games to see some of the library’s capabilities:
http://puppygames.net/
http://oddlabs.com/
http://lwjgl.org/projects.php
Even with the more than acceptable java performance these days I would still deride the use of the term, “lightweight”, whenever you have the runtime equivalent of an elephant hiding behind the curtain. Granted it may mean something else in this context but they should have come up with a better description.
Of course, “lightweight” cannot really be applied to C/C++ either. Besides the multi-megabyte libc that everyone takes for granted, there is also the virtual memory system, which takes up tens of MBs in the form of complex VM code, physical page arrays, and page tables, all the while imposing a substantial performance overhead in the form of page table lookups, TLB flushes, etc. These are of course not strictly necessary to run C code, but are practically necessary in modern environments where it’s not acceptable for user processes to randomly read and write each other’s memory.
Java code, which is safe by nature, could do quite happily without this memory-hogging infrastructure
Try it out yourself before groundlessly picking at Java:
http://bytonic.de/html/jake2.html
I have to admit to being rather pleasently surprised. I tried out some of the games mentioned in this thread, and the performance was fantastic. If not for a bit of swing in some of them, I’d never have known they were even using java.
I’m downloading the Java implementation of the Quake 2 engine to test it out. After having spent some time with Java devs talking about performance I’m very interested in seeing if their is any over head at all these days.
I know that many games development houses still swear by C/C++ but many developers, not only Java developers, I have spoken to seem to think that latetly, the pros are outweighing the cons.
Now if I could only get a copy of the original Quake 2 to do some benchmarks…
Anybody else tried this yet?
yes it is almost identical in terms of speed. But i cant say it is a decent java code.