[quote](believe it or not John Carmack takes an occasional rain check in this direction, but I don’t recall Doom 3 being a pure Java game).
[/quote]
I do recall John Carmack didn’t go for java because of a large codebase he has that’s written in C and he thought after all it woudn’t pay off do dump it and revert to java.
[quote]Regardless, if someone tells me something about some thing, and I say SHOW ME and they can’t show me to my approval then I just go about my business. What is the fire on your belly over this? If you want to prove something to yourself, write the app. If you want to prove it can’t be done to everyone else write the app.
If you don’t BELIEVE it can be done, then really aren’t we talking religion and not facts?
In any case, what is your goal?
[/quote]
Shawn, it’s interesting you have questioned my motives, a question JK should have asked. I have implemented everything necessary to know what I need to know, so why indeed am I doing this?
Well, it started like this:
Jeff wrote an article suggesting positive reasons about why games developers should be using Java, and he also invited responses. I supplied a response which I hoped would encourage him and others at Sun to look at the issues that, at least from my point of view, show why games developers are not ditching C++ and adopting Java. When asked supplied reasons why I can pretty much do in C++ what he called advantages of Java, he resorted to patronising/insulting me. Quote ‘The compelxity problem, which is what was identified and called “the software crisis” 25 years ago, is well recongized as a critical problem in the industry today. Maybe the right answer is to have you personally retrain the industry’. Is this the kind of professionalism you would expect of a representative of Sun to one of the developers he should be trying to win over, especially as it was only provoked by a technical discussion? I don’t accept what JK asserts, and when I asked for evidence JK’s response was ‘lets plonk this troll’. 10/10 for developer relations so far?
I still wanted this test for three reasons:
1/ It will turn out that I am wrong and JK is telling me the truth, in which case from now on I develop any code not required on consoles in Java, and save time and development costs. However none of my research leads to this conclusion.
2/ It will turn out unequivocally that Java is not as fast as current game dev methods, in which case Sun might see the light and be motivated to really get there. Eventually I get to drop C++.
3/ The games development group in Sun isn’t really serious about games development, in which case they won’t want to prove to games developers what they really can do, or will ignore the results of my challenge if it does happen. In this case I resign myself to coding in C++ until someone like Microsoft do get there (and being a more pragmatic and agressive company I’m sure they will).
Actually on a higher level I also wanted to test if Jeff was running an operation genuinely aimed at wooing commercial games developers. The lack of evidence and the way he has treated me answers that, so what am I doing here? :o I’ve seen and heard enough to not want to waste my time here any longer.
FYI: The Mac does not have a server VM (a documented fact on Apples website), and so runs about 7x slower than C code. You see a similar thing when you compare the client VM to the server VM on Win32. Unless Sun/Apple have a server vm tucked away somewhere, I would say that Java is not ready to support cross platform games.
A.
Oh yeah? Well. My dad can beat up your dad.
[quote]Actually thats sort of rhetorical because it doesnt matter either way. As I already explained to Mr. Larder in private, and as you folks all already know, we in the GTG (actually it wasn’t the GTG yet) were at least as disappointed as you folks about the fact that the PS2 VM talks failed to produce results.
We haven’t forgotten the importance of this. It contineus to be a hot button on our list, and we continue to persue avenues to get you guys VMs on consoles. As I told him. you guys will be the first to be notified if anything really solid happens but I’m not going to get your hopes up again too early. Some of us do learn from our experiences.
[/quote]
I cannot believe I am reading this. Did you guys in the GTG ever visit the Sony PS2 Tools and Middleware Web site? It says if you want to create a development tool for PS2, you can sigh an NDA and get a three-year royalty free license to access PS2 development environment and technical information at 1,250,000 Japanese Yen, which is about $12,000.
Now, why cannot you just sign the necessary papers, pay the license fee and port J2SE to PS2 instead of holding all those "talks"and whatever?
Besides, there are three C++ compiler vendors on the list of licensees - Metrowerks, CodePlay and SN Systems.
Regarding the contest, I wonder if you will consider Java natively compiled ahead-of-time, and if yes, do you think it should be playing on the Java side, or the native code side?
If someone provides the physics algorithms for the bouncing capsules, I’ll be glad to step forward and take the challenge.
I will use JDK 1.5 and Lwjgl which is a binding to Opengl if it’s not kown to some.
[quote]Regarding the contest, I wonder if you will consider Java natively compiled ahead-of-time, and if yes, do you think it should be playing on the Java side, or the native code side?
[/quote]
JET doesn’t support Mac, so it wouldn’t be possible to do the test Andy is suggesting using that compiler.
Does the GNU Java compiler for GCC work on the Mac platform?
I don’t have any objections to compiled Java in principle, but I would consider it a third entry, neither ‘Java’ or ‘Native’.
[quote]1000 $ is 3 months of comfortable live with slight computer updating, and after paing all taxes. I’m not interested.
From an advocacy point of view, an experiment which proves that Java is a capable game physics language would be very valuable. If developers are convinced by it, the Java community can grow.
There’s more to life than code. Knowledge is valuable, and time spent aquiring it is not time wasted. In this particular case, Sun and the Java community will know conclusively whether Java needs improving in a certain area, and if not, Sun gains a nice dataset to assist in their marketing of the language to game developers.
I don’t know whether JNI has problems or not. Experiments are a way for us to find out.
Because it has not yet been proved that Java is even a suitable game programming language. Let’s see how the experiment goes, and then maybe a PS2 porting project can be discussed.
When Jeff first mentioned the FPS, I tried Googling for quite a long time, but nothing turned up. I also searched Full Sail, and even contacted the webmaster. Nothing turned up.
If you know where it is, please post a link. With the amount of effort it takes to write a post telling someone to search for it, you could have at least pasted a reference!
Yes, but it was Jeff that made the original assertion, so it is Jeff who should back up his words with evidence.
People aren’t immune from burden-of-proof just because they work at Sun…
[quote]What would be the point of a well performing java (or this whole discussion for that matter) if only ‘jeff and his other experts’ were able to achieve that?
Why challenge him here in a public community if you don’t want that community to be involved?
[/quote]
If some suitably qualified Java game programmers want to step up, let them. At least so we can see how many there are.
This one is really Andy’s argument, but my point of view is that it was really bad form to mouth off about how great Java is and then back off when people asked for evidence. Being sarcastic to respondents wasn’t exactly a good idea either. There’s no shame in being wrong every so often.
If Jeff can’t prove any of the things he claimed, he should at least be honest about it and apologise in his next weblog.
But really, this experiment deserves a chance, and it could potentially be quite good publicity for Sun and the Java community as well.
They don’t even have to pay for it!
[quote]JET doesn’t support Mac, so it wouldn’t be possible to do the test Andy is suggesting using that compiler.
[/quote]
It makes more sense to run the test on Win32, which was the major desktop gaming platform last time I checked. I think Andy mentioned Win32 as an option.
[quote]I don’t have any objections to compiled Java in principle, but I would consider it a third entry, neither ‘Java’ or ‘Native’.
[/quote]
Why so? JET Pro can compile any J2SE program. Classes that may not be compiled ahead-of-time will be compiled just-in-time. So JET Pro is essentially a JVM.
I just recalled that Sun were showcasing JET-compiled Alien Flux in one of their JavaOne booths last year. So JET should play on the Java side.
To be fair, if you read Andy’s post he says that you can go down to your own lab OR Cupertino. Do you have Macs at Full Sail?
You have your reasoning back to front here. It is not for Andy to prove that something cannot be done. It is Jeff’s responsibility to prove that it CAN, since that is what he has claimed.
Andy’s challenge is the ‘SHOW ME’ that you are describing.
Andy’s goal is probably the same as mine: to encourage ‘evangelist’ types to back up their claims with evidence.
Any academic should know the importance of debate, evidence and peer review. Andy has proposed a sensible method to enable the Java community to demostrate Java’s capability without providing get-out clauses whereby participants can make excuses for failure.
If Andy coded the entire thing, there may be claims that Java was not fairly represented. If Java advocates code the Java side, no such claim can be made.
[quote]on Today at 2:13am, erikd wrote:
When Jeff first mentioned the FPS, I tried Googling for quite a long time, but nothing turned up. I also searched Full Sail, and even contacted the webmaster. Nothing turned up.
If you know where it is, please post a link. With the amount of effort it takes to write a post telling someone to search for it, you could have at least pasted a reference!
[/quote]
Fair enough.
Yes, there was some fuzz about that Full Sail FPS and some 3D racer that was demoed here and there but eventually never could be released in public.
You might try here:
http://grexengine.com/sections/externalgames/
There is a well performing FPS there somewhere which loads Q3 maps.
Now I didn’t compare Q3 and this FPS so I don’t know how well they compare, but I heard it does a pretty good job. And keep in mind it is a one man effort written in a fraction of the time of Q3.
Now back to the challenge, say if the java equivalent would perform, say 10% worse than the C equivalent, would you consider that result to prove that java is still unsuitable for games development?
Where would you draw the line?
Say the C version will perform 2 times better on the physics algorithm, does that make java unsuitable for games programming at all or is it then just slower at physics algorithms?
FWIW, I personally think java nowadays is great for games programming (especially for indies), but maybe not for all kinds games. Maybe it would not match up to the kind of game that squeezes every drop of performance out by having some optimized asm here and there or whatever, but those games are a minority. OTOH maybe it would match up, but there’s no such game written in java yet.
So on one hand I am interested in this challenge, but at the same time I think it should not be a personal vendetta against Jeff but just a technical challenge.
Hey dleskov, nice plug by the way
Although it doesn’t fit in with my original challenge to Sun and their JVM, in the interests of gaining knowledge it can play on the Java side, (you will still be limited to pure Java). However the challenge was to prove that Java can match native code performance, for a physics simulation, across the primary platforms Jeff mentioned (Mac OS X and Win32), so you had better get porting your compiler.
If you do have a Mac version, and are willing to throw in $500, great.
And before anyone else gets carried away expecting to use a beta release of the JVM, forget it. You code will have to to be compatible with Apple’s 1.4.2 JVM, and the latest release on the PC, which is also 1.4.2_xx. That will be in the rules.
[quote]Although it doesn’t fit in with my original challenge to Sun and their JVM, in the interests of gaining knowledge it can play on the Java side, (you will still be limited to pure Java). However the challenge was to prove that Java can match native code performance across the primary platforms Jeff mentioned (Mac OS X and Win32), so you had better get porting your compiler.
[/quote]
Would you let us finish the Linux/x86 port first? More seriously, we have other targets in mind apart from the Mac.
Then, why should Sun be to blame about poor Java performance on Macs? Apple has licensed J2SE, go tell them to speed it up. Let’s compare on platforms that Sun supports (though I doubt there are many Solaris gamers out there. )
In any case, it would be more interesting to compare on Win32 and PS2, but that brings us back to the major flaw in Jeff’s “Java is good for cross-platform game development” statement - the shortage of JVMs for game consoles. C++ programmers caring about portability can get CodeWarrior for Win32, Mac, Linux(multiple CPUs), PS2, GameCube, Palm OS after all…
[quote]If you do have a Mac version, and are willing to throw in $500, great.
[/quote]
We would consider throwing in a JET Pro license. Would that do?
Perhaps I should explain to those of you who haven’t done too much Physics why I chose the type of simulation.
I want it to test the performance of a physics engine. I can’t ask all the entrants to write the equivalent of Havok2, so I’ve chosen a smaller problem that is nice and simple to code whilst still retaining all of the processing that a physics engine would have to do.
The sim would demonstrate:
Collision detection: Capsules are the simplest form of geometric shape I can think of that allows rigid body motion to be demonstrated without friction. I need to be able to put the maths into the rules! (Capsules are like cylinders with rounded ends, rather like some of the pills you take when you are ill). You can simply plug in your own CD engine at a later date if you want to progress the code, everying will still work. Believe me this simple case will still take a bit of coding as you will have to back the simulation up to find the exact time of collision, for each collision in the simulation step.
Collision response: i.e. rigid bodies bouncing off each other.
Numerical integration of the rigid body motion.
Jeff finally conceded there are no console VM’s, but still asserted that for desktop cross-platform, specifically Win32 and Mac, Java still matches C performance. So the challenge tests that assertion.
Hm, so if it’s common knowledge that the Mac JVM doesn’t perform as well due to lack of server VM, then there’s no point at all in this challenge now is there?
I wouldn’t put in my money, that’s for sure…
So for argument’s sake let’s assume you proved the current Mac JVM is not as fast as the Windows, Linux and Solaris JVM’s, and so cross-platform games programming has performance issue when it comes to Mac… So now what? : The Mac JVM is likely to catch up, and most of Jeff’s points still hold.
[quote]Hm, so if it’s common knowledge that the Mac JVM doesn’t perform as well due to lack of server VM, then there’s no point at all in this challenge now is there?
I wouldn’t put in my money, that’s for sure…
So for argument’s sake let’s assume you proved the current Mac JVM is not as fast as the Windows, Linux and Solaris JVM’s, and so cross-platform games programming has performance issue when it comes to Mac… So now what? : The Mac JVM is likely to catch up, and most of Jeff’s points still hold.
[/quote]
Err - what like that Java for gaming is cross-platform across Win32 only?
Jeffs blog was about why games developers should be using Java, and given that there are no JVM’s on 80% of the target market we should take the Mac and Win32 examples on faith as how good the console versions could be. I’m not impressed with the Mac version, and as Sun licenced it to Apple they should have ensured it also demonstrated the same level of performance that other platform users get.
If you’re trying to disprove/prove Jeff’s points, don’t you think he should be setting the rules and you should be approving them?
If you disagree with any of the rules that would indicate a lack of communication skills in Jeff’s blog but maybe it would save us wasting a whole bunch of time (and money?) …
Ok, back to sleep now…
Kev