Sign in to follow this  
JMcClane

Future for Java

Recommended Posts

I have heard many complaints as to why Java is not a good programming language when it comes to games. Such as: -it is too slow -memory leaks -too high level -etc. I was wondering if there is any validity behind these arguments, mainly just looking for opinions. I have a small background in C languages but am more in depth with Java. I see that not many games are made with Java and I am just wondering if there might be a bigger future for the language or if I should aim my concentration elsewhere.

Share this post


Link to post
Share on other sites
Those arguments are not terribly valid. That said, there are other concerns (lack of game library support, jvm status on consoles, competition from C#/XNA) which will likely cause it to have a limited hold in games.

Share this post


Link to post
Share on other sites
Quote:
I see that not many games are made with Java and


Because games generally don't benefit from portability, and because most of AAA developers only want the latest greatest graphics features which require lowest possible hardware access. Consoles also don't benefit from Java due to too limited resources.

Memory leaks in Java is absurdity. The only thing closely related to that is holding references to objects for too long, and exhausting the heap. Leaks however can't occur at Java level, only at native layer or in JVM.

Too slow. This is completely uninformed and simply an ignorant comment by those who make it. Like all systems, it's a trade-off. Languages are never fast or slow.

Too high level. Please use assembly. And in the 17 years it will take you to code something, others will develop 17 billion lines of bug-free code. High-level = good. Unless you work in embedded software.

Java isn't used for games since it doesn't offer anything beneficial (mostly graphics and sound part). This is problem since Java is happy running scalable redundant server clusters, and those people have little use for displays.

Another part is that it's hard to find experienced Java game developers, since industry only seeks C++ gurus, and new breed of developers isn't emerging.

If Java offered solid DX/OGL bindings (serious, not the open source that they are now), it would become perfectly viable for game development.

Also, Runescape. About the same population size as WoW, running happily in Java in a browser. (queue the "it's not a good game lol Unreal 3 rox")

Quote:
I am just wondering if there might be a bigger future for the


What is future? Ability to find a job anywhere anytime? Then Java or .Net are the only ways to go these days. It's C++ that has very bleak future, since other tools have surpassed it in productivity by far. And C is a dead language, unless you go the embedded way.

Game development is a very tiny part of economy. Is that really the only future you see for yourself? For the next 40 years? Also, the online game servers are seeing increased adoption of Java due to its platform independence, reliability, ease of development and maturity.

Share this post


Link to post
Share on other sites
I'm not sure about the gaming industry and java... But I know for a fact that Java is here to stay for web based applications. I am a php programmer for a travel company we interface through java to connect to the cruise lines. They handle all of our backend processing which is nice... because then php only has to worry about simple logic... instead of worrying about all of the setup crap.
-durfy

Share this post


Link to post
Share on other sites
IMHO, it is impossibly hard to get DXD working in Java, and it is hard to get OpenGL running in Java as well. Almost any other solution does not use the GPU, but CPU instead, and CPU is not good at drawing images on the screen.

Share this post


Link to post
Share on other sites
Quote:

and CPU is not good at drawing images on the screen.

FWIW, the CPU is actually vastly superior in general at drawing images on the screen. It's just slower for the kinds of images that people often want in games.

Share this post


Link to post
Share on other sites
Whos to say java could not change their foundations... yes it would be a lot of work but if they could stand to make some money from it they certainly would. The way I see it every major update to a language makes more money... New versions of books can be written (with more or less the same info) New more expensive licenses must be purchased... Media attention = more people using their software = expansion = their language gets used more.
-durfy

Share this post


Link to post
Share on other sites
Quote:
Original post by Antheus
If Java offered solid DX/OGL bindings (serious, not the open source that they are now), it would become perfectly viable for game development.


What's wrong with LWJGL? All they are really doing is providing a bunch of JNI calls to the OpenGL functions of the same name; I'm not sure why that isn't "viable" or even how they should improve.

Share this post


Link to post
Share on other sites
Quote:
Too slow. This is completely uninformed and simply an ignorant comment by those who make it. Like all systems, it's a trade-off. Languages are never fast or slow.

No, but their implementations are. Since Java always runs on a virtual machine, it is necessarily slower than native languages. A native implementation of Java might get close to C++ in efficiency, but then you loose portability and you still have to deal with stuff like garbage collection.
Quote:
Too high level. Please use assembly. And in the 17 years it will take you to code something, others will develop 17 billion lines of bug-free code. High-level = good. Unless you work in embedded software.

Non sequiteur - and a strawman. Just because Java might be considered to be too high level there is no reason to conclude that everything except Assembler is too high level.

Still, I don't understand the "Java is too high level" argument. The only significant drawback of high-level languages is efficiency, so it's essentially the same as saying Java is too slow.
Quote:
Another part is that it's hard to find experienced Java game developers, since industry only seeks C++ gurus, and new breed of developers isn't emerging.

I'm sorry, what? There are plenty of extremely talented Java programmers around. Other parts of the computer industry make heavy use of Java for their applications which are no less complex than games, so the competence definitely exists. That these people have limited experience in games is a non-issue, as long as you can pay them enough to lure them into the business.
Quote:
Also, Runescape. About the same population size as WoW, running happily in Java in a browser. (queue the "it's not a good game lol Unreal 3 rox")

Apart from the networking, Runescape is an extremely trivial piece of software compared to commercial games today. You can't compare its graphics or feature set to even budget titles on the shelves. Your argument is similar to saying that since MUDs are popular, anything that's sufficient to construct a MUD is sufficient for other games. Obviously, that isn't true.
Quote:
What is future? Ability to find a job anywhere anytime? Then Java or .Net are the only ways to go these days. It's C++ that has very bleak future, since other tools have surpassed it in productivity by far. And C is a dead language, unless you go the embedded way.

This, however, I more or less agree with. Just like Assembler is almost never used today, there will eventually be a point where C++ is almost never used. There will always be a need for low-level languages, but the market will definitely shrink as more efficient high-level languages are developed.

Share this post


Link to post
Share on other sites
Quote:

I'm sorry, what? There are plenty of extremely talented Java programmers around. Other parts of the computer industry make heavy use of Java for their applications which are no less complex than games, so the competence definitely exists. That these people have limited experience in games is a non-issue, as long as you can pay them enough to lure them into the business.
I think he meant that a "new breed" of developers is not emerging within the games industry.

And he's right, for the most part.

Despite the glut of well-qualified developers knowing much more modern languages, the games industry wants C or C++, and is stubbornly resistant to change. Some of their reasons are based on FUD (things like Other Language X is "too slow," or "does not have enough control," and other forms of "we are already superior masturbation"). Some of the reasons are good (no implemented runtime environments or mature toolchains for consoles and other platforms, which is limiting from a business perspective, shortage of experience with those languages and tools among people already in the industry, et cetera). Things change very slowly for professional game developers, sadly.

Oh, and you probably can't pay them enough, as game developer salaries on average are less than non-game-developer salaries. I know I probably won't go back to working in games, because of the huge pay cut I'd likely have to take. Plus they'd make me write C++ again, because most of them just don't want to use anything else right now.

Quote:

there will eventually be a point where C++ is almost never used

The sooner we get there the happier I'll be.

Share this post


Link to post
Share on other sites
Quote:
No, but their implementations are. Since Java always runs on a virtual machine, it is necessarily slower than native languages. A native implementation of Java might get close to C++ in efficiency, but then you loose portability and you still have to deal with stuff like garbage collection.


And here we are...

Why does it need to be slower, when it's compiled into native code during run-time? Why are there benchmarks showing examples of logic that, in some cases, outperforms C++ (without assembly or hardware specific optimizations)?

If you write a for loop manipulating elements, the generated native code (during run-time) will do exactly the same thing as C++ compiled code.

It's not Java problem - it's algorithm problem. Java compiler is just as good as any. Of course, in C++, people write custom memory allocators, use aligned buffers, and who knows what. With exception of very very few places, these optimizations make no difference. And even in Java, you can handle them specifically, while spending 10 times less effort on everything else.

Quote:
Non sequiteur - and a strawman. Just because Java might be considered to be too high level there is no reason to conclude that everything except Assembler is too high level.


Relative to what then? C++? .Net? Lisp? Haskell? It's no higher level than C++. Except that C++ has a ton of undefined behaviours and compiler-specific optimizations.

Quote:
I'm sorry, what? There are plenty of extremely talented Java programmers around. Other parts of the computer industry make heavy use of Java for their applications which are no less complex than games, so the competence definitely exists. That these people have limited experience in games is a non-issue, as long as you can pay them enough to lure them into the business.


Yes, and these experienced and knowledgeable developers are going to drop their $200/hour consultancy gigs to go work in the game development crunch for less than they got paid as junior developers? Nah...

Quote:
Apart from the networking, Runescape is an extremely trivial piece of software compared to commercial games today. You can't compare its graphics or feature set to even budget titles on the shelves. Your argument is similar to saying that since MUDs are popular, anything that's sufficient to construct a MUD is sufficient for other games. Obviously, that isn't true.


7+ million users, 1+ million paying. Developed with just about no budget (definitely not $100 million WoW cost). What does it matter, it's a game, it's making massive profit, it has massive userbase.

If anything, Runescape outperforms the popularity of 90% of MMORPG titles.

Runescape has, at this point, more paying customers than most AAA titles sell boxed copies. Do graphics matter then? The AAA polish? No. Make a fun game with no budget, and it'll be a hit.

Or are the only good games those that break Unreal 3 engine? These are blockbuster titles with 3 week life span. There's only a handful of AAA titles that managed to survive for several years. And how many more cost a ton to make, only to go straight to bargain bin?


Despite that, Java is unsuitable for AAA title development for the already established factors - lack of professional Graphics (and other multi-media) API. That is the only real factor holding it back.

In the times where AAA titles cost upwards of $10 million to develop, and in a ruthless market, business aspects are one of crucial factors in development. AAA Graphics are prohibitively expensive - and many games would benefit from using only a fraction of that budget, but emphasize gameplay.

But still, too many developers are busy coding their latest greatest graphic engine, only to produce a sub-par CS clone. If you want to compete in this market, you obviously need to use the same tools. But game development isn't AAA blockbuster graphics. At least, there's an incredible amount of money to be made outside of that market.

Share this post


Link to post
Share on other sites
All those "complaints" that are made about java are usually the responsibility of the programmer or design, and are typically not language dependent. Then again, I've been hearing the same "they say" arguments for a few years now.

The only comparison to be made is to see the identical game made in two languages and do the compare from that point.

I snapped out a LWJGL project to see how it ran and I was happy with the results of speed.

Share this post


Link to post
Share on other sites
Oh great, another Java thread =) JMcClane, this comes up very often, there are some good threads in the archives if you search for them. Do something like C++ vs Java and be amazed at how often this one is debated to death.

Quote:
Original post by Hnefi
No, but their implementations are. Since Java always runs on a virtual machine, it is necessarily slower than native languages. A native implementation of Java might get close to C++ in efficiency, but then you loose portability and you still have to deal with stuff like garbage collection.

People always bring this one up. Java has just-in-time compiling, you know? If you want to bring up this argument, you need to come up with reliable benchmarks. That said, Java does lose somewhat on the startup time and the amount of memory consumed, mostly due to the VM and library.

Quote:
Original post by Hnefi
Non sequiteur - and a strawman. Just because Java might be considered to be too high level there is no reason to conclude that everything except Assembler is too high level.

Who decided that Java "is too high level", anyway? And how high is too high? C++ was considered "too high level" for quite some time, wasn't it? Some people probably resisted C when it was first introduced, too. Anything Java may ever lose on "too high level" is gained back threefold in productivity.

To answer JMcClane's question, there is a community for Java game developers, and even a scalable, persistent "MMO" architecture called Project Darkstar in development by Sun themselves. From a hobbyist perspective, the future is bright. You get lots of enabling technologies at your fingertips at practically zero cost.

Share this post


Link to post
Share on other sites
Quote:
Original post by lightbringer
People always bring this one up. Java has just-in-time compiling, you know? If you want to bring up this argument, you need to come up with reliable benchmarks. That said, Java does lose somewhat on the startup time and the amount of memory consumed, mostly due to the VM and library.


The language shootout will give you some hard numbers.

Java is (if you ignore the benchmarks with obvious problems and assume hotspot didnt kick in properly on some) about 10-50% slower than C++. I'm not sure why exactly, but since it does eat heaps more memory (~10x) caching is probably not working as well as for C++. Anyway, these numbers doesnt really mean that java is too slow for anything, except maybe the latest Unreal where everything is pushed to the max.

btw. Do you guys really think that Java is high-level and productive enough compared to C++? Personally I hope the future is some very productive, high-level language like Ruby, or Python with speedy libraries written in C, C++, OCaml... whatever fits. Unfortunatly, history tells me that we will be doing it incrementally, C#-style. Although with things like JRuby and IronPython maybe there is hope for a quicker transition...

Share this post


Link to post
Share on other sites
Quote:
Why does it need to be slower, when it's compiled into native code during run-time? Why are there benchmarks showing examples of logic that, in some cases, outperforms C++ (without assembly or hardware specific optimizations)?

If you write a for loop manipulating elements, the generated native code (during run-time) will do exactly the same thing as C++ compiled code.

Much of Java's compiled code will, of course, run just as fast as C++, just like they will in Common Lisp. But the larger the project gets, the greater the cost for just-in-time compiling becomes, as well as the penalty for things such as garbing. Up to a point, Java is excellent. That point keeps going higher and higher, but it's still not up to par with C++.

The only actual benchmarks I've seen comparing C++ to Java were very small and often dubious. I would really like to see some comparisons on bigger benchmarks with more complex algorithms, preferrably with large calculations. I don't know why noone has done such benchmarks yet, but I for one would love to see them (regardless of the result).

Quote:
Relative to what then? C++? .Net? Lisp? Haskell? It's no higher level than C++. Except that C++ has a ton of undefined behaviours and compiler-specific optimizations.

Now you're just being obnoxious. There is little dispute that Java is a higher-level programming language than C++, which was the argument you used your strawman on. That there are undefined behaviours has nothing to do with that, and since when are compiler-specific optimizations a problem? If anything, a variety of compilers to choose from is a good thing - and C++ has too few, IMHO.
Quote:
Yes, and these experienced and knowledgeable developers are going to drop their $200/hour consultancy gigs to go work in the game development crunch for less than they got paid as junior developers? Nah...

That's an issue with the gaming industry in general, not just Java programmers. The games industry is loosing plenty of C++ programmers to companies like Ericsson and Google too. Heck, the telecom industry is probably one of the largest brain-drains from the game industry, and in telecom C/C++ is still extremely important.
Quote:
7+ million users, 1+ million paying. Developed with just about no budget (definitely not $100 million WoW cost). What does it matter, it's a game, it's making massive profit, it has massive userbase.

If anything, Runescape outperforms the popularity of 90% of MMORPG titles.

Runescape has, at this point, more paying customers than most AAA titles sell boxed copies. Do graphics matter then? The AAA polish? No. Make a fun game with no budget, and it'll be a hit.

Or are the only good games those that break Unreal 3 engine? These are blockbuster titles with 3 week life span. There's only a handful of AAA titles that managed to survive for several years. And how many more cost a ton to make, only to go straight to bargain bin?

That's all well and good, but what does it have to do with what I said?

Quote:
In the times where AAA titles cost upwards of $10 million to develop, and in a ruthless market, business aspects are one of crucial factors in development. AAA Graphics are prohibitively expensive - and many games would benefit from using only a fraction of that budget, but emphasize gameplay.

I disagree. The gaming market has again and again shown that when it comes to sales, graphics are more important than gameplay. I hate that more than most because it kills developers like Looking Glass and Origin and creates abominations like EA, but in the end of the day, games like Quake always outsell games like System Shock - because they look prettier. I wish it would change, but I doubt it will anytime soon. The first impression is always the most important, and that first impression is usually screenshots.

Share this post


Link to post
Share on other sites
Quote:
Original post by ShadowPhoenix
Almost any other solution does not use the GPU, but CPU instead, and CPU is not good at drawing images on the screen.

Neither the GPU not the CPU draws anything anywhere. Both are used to compute things. What draws to your screen is another component of your graphic card: it reads the display memory and send it to your screen, which is able to understand that (it might even go through a DAC if you use a VGA cable to link your screen to the card).

What a GPU and a CPU do, however, is to compute things. And at this task, both are quite good but the fact that the GPU is a very specialized piece of hardware is a big plus. Now, that doesn't mean that the CPU is slower than the GPU - a P4 dualcore is probably faster than the GPU of an ATI Rage; but that would be quite strange to use such a setup - although it's true that the current GPU generation is incredibly fast.

The real point is that the GPU does things that the CPU don't have to do - so resource-wise, it's more efficient. This might change with the introduction of massively multicore CPUs, where one core or more can be bound to do what was initially the job of the GPU.

Best regards,

Share this post


Link to post
Share on other sites
Quote:
Much of Java's compiled code will, of course, run just as fast as C++, just like they will in Common Lisp. But the larger the project gets, the greater the cost for just-in-time compiling becomes, as well as the penalty for things such as garbing. Up to a point, Java is excellent. That point keeps going higher and higher, but it's still not up to par with C++.

The only actual benchmarks I've seen comparing C++ to Java were very small and often dubious. I would really like to see some comparisons on bigger benchmarks with more complex algorithms, preferrably with large calculations. I don't know why noone has done such benchmarks yet, but I for one would love to see them (regardless of the result).


The exact opposite is true (talking about language here, not game development).

Writing 10-20 million line Java application, deploying it in 6 months (telco/banking), with about half the codebase auto generated from a bunch of UML/XML/Transform/EE/Buzzword/MarketingBS/JBoss templates with next to no release bugs, the application runs with not much of a problem.

Do that in C++. Yes, you'll get a nice fast optimized application. After years and years of debugging profiling and testing.

With proper Java platform use, you just throw in 50 more machines for <$50,000. Guess what - you cannot hire a single developer for $50,000.

Is this Java application slow? Sure, when you look at a single loop, C++ will outperform it. When you look at application (25 machine cluster), it doesn't matter. With C++, you might save 2-3 machines (the %10-20).

Quote:
I disagree. The gaming market has again and again shown that when it comes to sales, graphics are more important than gameplay.


Yes, I love how WoW pushes the boundaries and requires a $15,000 rig just to get 5 FPS because it's so advanced. Or how Diablo 2 introduced the revolutionary graphics. After all, they went from 640x480 to 800x600. Or how Quake Arena wipes the floor with Unreal3. Or how GTA used 50,000 polys per character to give that ultra realism.

Then again, Vanguard had some of the most advanced graphics in an MMO. And it sold 50k copies?

Do graphics really determine success of the game? What about ROI (not sales)?

How come there's billions made in online gambling that uses web browsers? (These are games as well).

Quote:
That's all well and good, but what does it have to do with what I said?


Business is what determines efficiency. If your product doesn't earn anything - who cares how good it is. It doesn't exist. If your product takes 5 years to develop, when competition is doing it in 1 years - you lose.

Doing it right doesn't matter in the age of internet.

It does however still very much matter for consoles. That will change a lot with next generation and tools like XNA - performance won't matter to the same extent.

80/20.

80% of all products in any domain or industry do not need to be perfect. Far from it.

80% of software NASA uses runs Windows. Even on space shuttle.
80% of games don't need ultimate performance.
80% of business applications can be inefficient.
80% of game market is NOT AAA titles.

The real question is: Are you sure you work in the 20%? Do the end-of-quarter numbers confirm that?

Because I don't. While I love to push the boundaries in private, what I get paid for could often be outsourced to junior developers. Only in 20% of cases do I need to push myself to solve the problem. And that only earns me 20% of money.

Use the right tool for the job. In 80% of the cases, Java is the right tool. If you don't need OGL/DX/Media - Java is just fine for games. 80% of them.

Share this post


Link to post
Share on other sites
Well whatever your opinions of Java it still rules the roost when it comes to mobile phone games. And yes I know a lot of people are wanting to switch to native BREW games but unfortunatly theres a lot more J2ME hansets on the market than there is BREW enabled phones and the majority of games are written in Java before being ported to the BREW handsets.
I personally much prefer writing games in C++ but, with that many leagacy handsets to cater for especially in some regions where they are still using selling handsets that are considered obsolete in Europe I'm afraid it's Java all the way.

Oh and as far as buisness is conserned a lot of companies use J2EE buisness solutions so there is always going to be a jobs for Java programmers there. I'm talking about companies such as banks, travel agents, credit card companies etc.. These companies have made large investments in Java enterprise solutions and they are going to be around for a while.

What I can't understand is why some people seem to care so much which language is used. If you are a programmer you should be able to pick up C++, Java or C# and use it to solve your problem. If you find it difficult to program in anything other than the one true language then you arn't really a programmer you just know the syntax of a programming language.

Share this post


Link to post
Share on other sites
Quote:
The exact opposite is true (talking about language here, not game development).

Writing 10-20 million line Java application, deploying it in 6 months (telco/banking), with about half the codebase auto generated from a bunch of UML/XML/Transform/EE/Buzzword/MarketingBS/JBoss templates with next to no release bugs, the application runs with not much of a problem.

Do that in C++. Yes, you'll get a nice fast optimized application. After years and years of debugging profiling and testing.

With proper Java platform use, you just throw in 50 more machines for <$50,000. Guess what - you cannot hire a single developer for $50,000.

Is this Java application slow? Sure, when you look at a single loop, C++ will outperform it. When you look at application (25 machine cluster), it doesn't matter. With C++, you might save 2-3 machines (the %10-20).

I agree. But you're talking about development costs which has absolutely nothing to do with what I said. When I referred to "cost", I meant memory footprint and the associated CPU cost of moving all that data around.
Quote:
Yes, I love how WoW pushes the boundaries and requires a $15,000 rig just to get 5 FPS because it's so advanced. Or how Diablo 2 introduced the revolutionary graphics. After all, they went from 640x480 to 800x600. Or how Quake Arena wipes the floor with Unreal3. Or how GTA used 50,000 polys per character to give that ultra realism.

Ahem. When it was released, WoW was one of the most graphical advanced MMO's out there. Given its much simpler gameplay, Q3 shouldn't have had a chance against UT if it weren't for graphics and yet it held its own very well. All of the titles you mentioned looked very good in their respective genres when they were released (except Diablo 2), and they all relied extremely heavily on the fact that they were all sequels to successful games, which is another very important factor when it comes to sales (unfortunately).
Quote:
Then again, Vanguard had some of the most advanced graphics in an MMO. And it sold 50k copies?

Do graphics really determine success of the game? What about ROI (not sales)?

How come there's billions made in online gambling that uses web browsers? (These are games as well).

I never said that graphics was the ONLY thing that was important, only that it almost always outsells gameplay. There are exceptions and there are more factors. I don't deny this. But graphics = sales is a clear trend.

If you are going to argue against me, please take the time to read what I'm saying, not what you want me to say.

I should also point out that online gambling is not the same business as video games. You don't sell a poker client in and of itself (usually you don't sell it at all, instead providing one for free). You sell poker games on the premise that the customer can win money. Take that away, and your customers instantly disappear. How many commercial poker games on the market that don't allow the user to win real money sell anywhere near the amount of copies that regular videogames do?
Quote:
[snip]Use the right tool for the job. In 80% of the cases, Java is the right tool. If you don't need OGL/DX/Media - Java is just fine for games. 80% of them.

Agreed (on use the right tool for the job part - certainly not that Java is the right tool in 80% if the cases). But I did not get the impression that the OP was talking about low-performance games. This discussion, in my view, is about games such as SupCom or BF2 or Oblivion, because it is for such games that C++ is used to the exclusion of almost everything else.

Share this post


Link to post
Share on other sites
Quote:
I never said that graphics was the ONLY thing that was important, only that it almost always outsells gameplay. There are exceptions and there are more factors. I don't deny this. But graphics = sales is a clear trend.



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.

Is graphics really a factor? Or does it merely mean: When comparing 8 Quake clones, the one with best graphics will likely win?

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this