If you ever wanted a reason to use a modern langauge...

I really don’t care what the rest of the game industry does as long as LWJGL/JOGL/JOAL and other enabling APIs stay around for me to make games with. If Java catches on, great. If not, fine. But I do believe it’s going to get some momentum with the release of the SGS. NCSoft Austin are experimenting with JME (which leads me to believe they are also experimenting with SGS), Three Rings has had success with Puzzle Pirates - including getting picked up for retail distribution by Ubisoft and winning IGF awards - and has another game in development using JME. Tribal Trouble recently was made available from the Garage Games shop. Java’s visibilty in the game industry is increasing. It will be nice to see it catch on, but really it doesn’t matter to me one way or another in the end.

you shouldn’t be so harsh calling others stupid and such, doing so no longer makes it an intelligent discussion but more of a flame war.

Off topic: Kev, Martian Madness 2 is looking pretty cool - not bad for a stupid guy! :smiley:

PS: Can you chew gum and code at the same time? I tried that once and ended up gumming my keyboard :wink:

PPS: The devil made me say that - this is my 666th post - now I can finally unleash the minions and take over the earth!!! MUHAHAHAHA

PPPS: Did I mention I have been home sick for two days with a fever of 101?

PPPPS: To any religious people: sorry about that whole unleashing the minions thing - I really have no plans to unleash the minions at this time.

PPPPPS: Ok that last PPPPS was also uncalled for. I have no minions…really. I am going to go lie down and put a cold cloth on my head.

As a separate route entirely…Overheard several times at Casuality: major pro web games devs (some of whom I know are making tens of millions of dollars a year from web games) are still using Director - a lot of people leapfrogged java because Sun was so damn slow to put 1 and 1 together and get 2, and adopted MM (now Adobe, of course) products; they’re moving away from that and back into C++ because C++ solves their problems with Director et al, and C# and java are not yet being marketed to these people properly.

c.f. http://www.java-gaming.org/forums/index.php?topic=12392.new#new

My god, Director is the worst development platform I have ever been cursed to work with. I’m amazed anyone could ever achieve anything with it. Programming with lingo is like building a house but having to use sponges and jelly instead of bricks and mortar.

I wonder what Sparkle will bring to the game: http://www.regdeveloper.co.uk/2006/02/07/expression_interactive_designer/ - if it works a bit like Flash but lets me use a reliable programming language it could easily eat any rivals.

I’m completely in agreement with Kevglass’ blog posting about modern languages. It does seem as if, although they’re pushing the envelope hard in some directions, the game development community are stuck in the programming practices of 10 years ago. Obviously, I’m a complete outsider here and doubtless entirely wrong, but that is the way it looks to me…

Look’s like someone is taking the plunge and investigating Java.

http://gdmike.statbuff.com/?p=12

[quote]To ask why gaming companies haven’t been using Java or C# is very stupid indeed. It’s because those languages haven’t been a viable option.
C++ is a modern language. There’s no special need to move to Java or C#. What would that be?
[/quote]
And that’s a very stupid answer. You are claiming that if people don’t use Java it’s because they don’t need it without really puting any tought on it.

If the advantage was just using a modern language then people would be programming in prolog or haskell. Like other people mentioned it’s not just language design which is nothing special in relation to Java.

Java simplifies a lot the development process and all the compatibility issues and patch code you have to create for multiple platforms by using a good vm. This problem however was in part solved by companies that license parts of a game engine like Havok and Gamebryo. This simply takes problems from game creators backs but the cost of producing games and the problems i mentioned above are not significantly lowered.

Java already has great adavantages to develop PC games that run on multiple machines and os. For xboxs and playstations this would depend on Sun actualy supporting a special vm that would run on these platforms. This would mean that you could run a java game directly on a xbox or a playstation without changing anything. This may not look much at first but in terms of development cost and quality it would be a huge advantage.

I’ve now found a very big reason, why C++ is crap!

First some unimportant information:
For the International Olympiad in Informatics (IOI) there is a trainings-program from the USA, where everybody can train for the IOI, also from other countries.
There you have to code programs, that solve a specified problem in a specified amount of time (mostly one second) and ram. Then you send those programs through a form to a server, who tests your program.
If you want to see how it’s like and if you maybe also want to test yourself, here’s a link:
http://ace.delos.com/usacogate
You can also submit Java-Programs, but because you can’t at the IOI I’m coding in C++.

Now the important information:
I had an algorithm (for checker challenge) that solved the problem for the hardest testcase in 1,6 seconds on their server, but unfortunately it had to be below 1 second. I tried lots of improvements, but none really worked. I also gave up for about five months. Then yesterday I started again trying and there was now a tip:

If you have programmed modularly and have little subroutines to check diagonals, etc., move that code into the main execution stream. The subroutine call overhead is nontrivial.

I did this and … it more then doubled the execution speed of my program to 0.77 seconds!!!

Aaarghhhh I hate C++ !!!

Can you do the same program and get the same speed in Java ?

Edit: For small subrotines allways use inline and compile your code with the best speed optimization tricks. Still the results will depend on the machine and cpu used.

For my 2c - I found that under j1.4, I could do generic 3d-stuff in 3d-world at pretty much exaclty the same fps in Java as C++ (partly because the biggest bottleneck is the 3d card, but also because the java was about 80-90% of the C++ code speed)

Since java 1.4, we’ve seen huge speed increases with 1.5, and 1.6 is showing impressive speedups again (I got a 20% speed up in a ray tracer I wrote from 1.5->1.6)

So yeah, in general Java speed is just not an issue - and I’d say hasn’t been since at least 1.4.

Ok - I ported the C++ code to java and got those results:

[tr][td] [/td][td]with functions[/td] [td]without functions[/td][/tr]
[tr][td]C++[/td][td]0.707[/td][td]0.478[/td][/tr]
[tr][td]Java[/td][td]0.860[/td][td]0.685[/td][/tr]

Conclusion: Java is still slower than C++ and the optimisation also influences the performance of the Java code, but not as much as it does in C++.

Btw, the program ran slower with server jvm enabled.

Ohh and I used 1.5

EDIT: I made these benchmarks now at my home computer, which is faster than the grading server from usaco.

That is a bogus test. If blah*3 comes along he’ll give you all the reasons. Plus, you cannot just convert code directly. When you move from one language to another, you have to start fresh and program within the new language’s paradigm. C++ and Java might be similar, but you can code very differently in them.

Anything in the server VM running for less than a minute is a total waste of time (literally) for a start…

Cas :slight_smile:

he he he

His conclusions are way off… but I don’t mind them in the slightest.

This will be public in a month anyway… at GDC we will be showing C++, J2SE and J2ME clients all talking to the SGS server.

You guys really dont think, as much as I might wish I could, it would make business sense for me to put out a server product that only spoke to Java clients do you?

[/quote]
sigh 2 to 10 times productivity improvemenst. Well documented. For a start

I wrote C++ code sicne the beginning of C++. I just had to go back and write some again. And I expereinced the slow down, again.

But you wont believe this ebcause you do not want to.

Someone once asked me what you call a programmer who refuses to change his tools.

I answered “unemployed.”

Think about it. And ask yourself when the last time yo usaw an ad for a microcoder or assembly coder…

Thsoe of us who are old enough to have such memories have seen this all many tiems before. And the die-hards will go to the unemployment line insisting that “real engineers don’t use high level tools.” Swap C++ into your sentance for Java, and it coudl have been written 10 years ago. Swap C into your senatcne and it coudl have been written 20 years ago.

Interesting blog article on why performance doesn’t matter - not gaming relevant, but quite pertinent

Changing tools is not an end in itself. What’s important is to use the right tool for the job. Up and until say 2 years ago the right tool for graphics intensive games has been C++. It’s not about high programmer productivity. It’s not about good internal design. It’s about raw speed and low-level control. There probably isn’t a single company who bet on Java more than two years ago that’s still in business. That’s were you find your unemployed programmer.

My replies have been regarding the OP’s opinion that users of C++ instead of “modern” languages like Java are living in the past. I find that a strange proposition considering that Java hasn’t really been a viable alternative for the most of its 10 years of existance. In spite of its alleged modernity it just hasn’t cut.

When will we see the first JVM being written in something else than C++ (for non-experimental purposes)? I could bet you anything that C++ will be the right tool for that job for many years to come.

Wrong. Only about 5% of the games on the market need raw speed. Even then you should only aim for raw speed after you have the game made.

One of the inventors of C said it himself “First make it work, then make it fast.”

If you read Michael Abrash’s Graphics Programming Black Book, he even says that you should design good code first before trying to go low level and optimize. And this was back in 1995 where it was more of an issue.

People who spend the whole project worrying about speed will end up late, cutting features or wont finish because they spend so much time trying to track bugs in unreadable code.

As I’ve said before. I’m sure Java is coming of age also for demanding desktop applications, but I can UNDERSTAND why people are reluctant and why they want better arguments than that they wouldn’t be “modern” unless they abandon the proven workhorse C++ and immediately start using Java. Java’s track-record really isn’t that convincing.

You’re building your case on the presumption that technological paradigm-shifts happen instantly. You hear about this new thing in the morning and if you haven’t adopted it at lunch you’re fired in the afternoon. This is a fawlty picture painted to fool people into believing there’s such a desperate hurry to jump on the newest bandwaggon. Companies even employ so called evangelists to further stir up this sense of hurry.

Reality looks very different. Technology evolves over decades. Sure you got to adapt but not this year. There’s plenty of evidence that you still can make a comfortable living just concentrating on plain good old die-hard C,

http://www.dedasys.com/articles/language_popularity.html

Interesting thoughts by someone who knows what he’s talking about:

The Next Mainstream Programming Language: A Game Developer’s Perspective, by Tim Sweeney (Epic).