Future for Java

Started by
31 comments, last by kaffiene 16 years, 9 months ago
Quote:Then why is Wii and Nintendo DS outselling X-Box 360 and PS3 in just about every aspect then?

Individually, combined, in console unit sales, total titles sold, anything...

Why is PS3 the poorest performer, when it offers by far the best graphics, and a selection of titles equivalent to X-Box 360's?

And these *are* video games.

Now you are really grasping for straws. The PS3 is twice as expensive as both the Wii and Xbox 360. I also have not seen graphics on the PS3 that are signficantly better than the 360 (though I know that it is, strictly speaking, more capable of producing them). Furthermore, the 360 has had MUCH longer than the PS3 to consolidate its market share, the PS3 has suffered from delays, shortages and PR goofs and the Wii has been marketed in such a way as to appeal to families with kids of all ages - a huge target group.

Look, in the very passage you quoted, I said that the sitation was more complex than just two factors. I was also talking about games, not console hardware. And what do consoles have to do with Java vs C++ anyway? You're just derailing the conversation further and further.
Quote:Is graphics really a factor? Or does it merely mean: When comparing 8 Quake clones, the one with best graphics will likely win?

So let's be perfectly clear here: is your point that graphics is not a factor in game sales, and for that reason Java is at least as appropriate as C++ in the high-end gaming market?

If not, then just what is your point?
-------------Please rate this post if it was useful.
Advertisement
Tribal Trouble is a game that's been touted as a good poster child for independent java developers. It shows that proper 3D games are perfectly possible in Java for small development teams.
Quote:So let's be perfectly clear here: is your point that graphics is not a factor in game sales, and for that reason Java is at least as appropriate as C++ in the high-end gaming market?


Graphics are a factor. So is choice of language.

*A* factor.

But since Java doesn't have game-grade media API (or, complete DX support), and since its VM isn't available for consoles, that excludes it by default.

Providing DX for Java would make it completely on-par with XNA for PC market from technology viewpoint.

There was once an article on Unreal engine design. They originally intended to use Java, but due to some (licensing?) issues decided not to. Their current observation is, that 90% of entire work is performed by shaders. 10% goes to everything else. Even doubling the "everything else" would decrease the overall performance by less than 10%. It wouldn't make it twice times slower.

Hardware alone is responsible for today's performance. And as such, it invalidates all the other debates about the choice of language. But if your platform doesn't have state-of-the-art support for the hardware, then it can't be used. Hence, Java is a non-contender not due to performance issues, but due to support.

Java has always been week on the GUI front. This is why C# managed to gain so much ground. But on whole-application level, claiming that Java is a sub-par platform (even when used out of box), simply isn't true.
So, then you agree that Java is not appropriate for high-level game design? That it lacks the functionality and/or performance that this requires? Then why all the kicking and screaming?
-------------Please rate this post if it was useful.
There is nothing wrong with using Java for games, let's not forget Java was not designed for game development, there are games using Java and LWJGL that run extremely well, such as Tribal Trouble (http://www.lwjgl.org/projects.php) - download the demo and see how smooth it runs! it's not even an exe!

I wish people stop complaining about the capabilities of Java, Java is a good language and uses a good engine, also there are Java compilers so the speed can be near a well developed C program.
Quote:Original post by Hnefi
So, then you agree that Java is not appropriate for high-level game design? That it lacks the functionality and/or performance that this requires? Then why all the kicking and screaming?


Because:
Quote:-it is too slow
-memory leaks
-too high level
-etc.

Is FUD, flat out wrong and merely a mantra that keeps going on, but merely demonstrates uninformed opinion.

Lack of DX (or game-grade OGL) support has nothing to do with *Java* (lanugage or platform) performance, both of which have been shown to outperform everything except the most trivial C++ examples on any most real-world projects, after factoring development time and budget.

Write high-end game in any language but with no DX or OGL. Then tell me it's fast.

Quote:Original post by Antheus
Quote:Original post by Hnefi
So, then you agree that Java is not appropriate for high-level game design? That it lacks the functionality and/or performance that this requires? Then why all the kicking and screaming?


Because:
Quote:-it is too slow
-memory leaks
-too high level
-etc.

Is FUD, flat out wrong and merely a mantra that keeps going on, but merely demonstrates uninformed opinion.

Lack of DX (or game-grade OGL) support has nothing to do with *Java* (lanugage or platform) performance, both of which have been shown to outperform everything except the most trivial C++ examples on any most real-world projects, after factoring development time and budget.

Write high-end game in any language but with no DX or OGL. Then tell me it's fast.


But a major component of any language is its ability to integrate well with other important APIs. So while you're correct that Java development doesn't suffer from the performance issues, it still isn't a very good choice for game development because it does not have a great game library at its disposal.

Quote:
Write high-end game in any language but with no DX or OGL. Then tell me it's fast.


This is actually rather amusing. This is like saying to a very good race-car driver: "try racing without your big engine, and then see if you can win." Then, because he can't win without it, you assume that he and anyone else are just as good at racing.
Mike Popoloski | Journal | SlimDX
http://www.tiobe.com/index.htm?tiobe_index

Java is at the top for development.

why bash the language so much???
Quote:Original post by Antheus
Lack of DX (or game-grade OGL) support has nothing to do with *Java* (lanugage or platform) performance, both of which have been shown to outperform everything except the most trivial C++ examples on any most real-world projects, after factoring development time and budget.


How does the development time and budget get incorporated into the app's performance? If a game has good performance then it has good performance. I don't look at a game on the shelf and say "Oh cool, this game runs at 60 FPS! But oh wait, it took 4 years to develop, it's no good."

I guess you might be saying that developer efficiency = more time to write better algorithms = better performance. But this equation is only true for some problems. Many engineering problems in games are well understood, and good developers will already know the best possible algorithms to use. So for these problems, developer efficiency != better app performance.

I agree that developer efficiency is definitely something to consider when picking a platform, but I wish you'd stop confusing all these different things into one metric. Some people will care a lot about developer efficiency and budget, and not a lot about performance. Some people care a lot about performance and not so much about developer efficiency or budget. There's no one-size-fits-all measurement for how well-suited a language is.
It's been like what ~15 years and around 10 of those these kind of questions keep coming up while Sun was/is pissing everyone off (like everyone is still debating as to whether Java should add closures after ~10 years), there are good & valid reasons why Java will never penetrate the games industry like C/C++ does (and god forbid it does) and no one has really hit hit upon them.

One of the reasons why it hasn't and won't is less of a matter of performance and more of reason of the language itself, the platform and Sun.

Java (and the platform) is horribly rigid, verbose, inexpressive, poorly designed FFI/native binding system, many fundamental issues with the actual language which can not really be fixed/resolved because of either backwards compatibility or making Java have a higher learning curve (for some), completely frustrating. Of-course you can use other languages which target the Java platform but that still doesn't change the fact that the "java platform" is borked.

C# resolves most/all of the issues of Java BUT that doesn't mean i think either are great languages or "the best" for games dev, on the contrary there are lots of much better languages out there you just need to think outside the box and away from mass majority languages to see for yourself.

Java/C#'s concurrency model isn't particularly well suited to highly distributed massively concurrent applications so i doubt these have any more of a brighter future than C++ does in the games industry (if in general). The future is in more declarative concurrency models, which you can think of it like going from asm -> some high level language, whether or not the games industry moves on is another story.

Honestly do you really think after like ~10 years there is any chance of Java gaining any major ground in the games industry?

This topic is closed to new replies.

Advertisement