The commercially most succesfull game of last year was The Sims and add ons for it. 3D games were a minority in the top 20.
When one wants to be successful one can't use the newest of modern gfx bords anyway, market would be too small. So I really don't see a problem with java here. But maybe jacobmarner is out for gfx-demos instead of games? There java will never be able to compete, that's true.
I think I have to clear up something here that I only learnt after begin working professonally at a game company that talks a lot with publishers. The most basic point is that all the major publishers today are very focused on consoles. For instance, Cas, I think you once mentioned that you showed your terrain demo to a publisher and when you mentioned it was Java they were not interested because of console portability problems.
And we all know that Java is not (currently) a viable solution on consoles. So it is not just Gfx demos I am talking about.
The top 20 you mention is the top 20 for the PC. The top 20 for the PS2, Xbox and Gamecube are filled with high powered graphics stuff - and since consoles are where the profits are you can't really get around them commercially.
If you write a game for the PC-only the matter is another entirely - but to get through with a PC-only project today either requires that you are proven team with lots of hits on streets or that you have the money to finance it yourself. There are lots of minor PC publishing houses that are willing to publish it on PC with a minimum of marketing if the game is already complete and of decent quality - but that won't make you rich. Only major projects like "Mafia" and "The Sims" from very established developer houses can get away with anouncing PC only versions only. And now both games are planned for consoles. If they had used Java they would have had a problem now. An Just a month ago our house got a kids game published by a local publisher in Germany (after we localized it of course). We could have used java for that too.
So realistically, at the moment Java is best suited games intended for shareware, or games made by hobbyists, or child games, or educational games, or even games intended to have a sales up to, say, 50.000 units. For instance, at the place I work we have just completed a games for teenagers that need to go to "confirmation of their faith" at church (a tradition we have here in Denmark). That game should have used Java if I was the one to make the decision.
Also, I would like to utter my concern about high level toolkits. Kits like DirectX or OpenGL has proven successful because they map very closely to the hardware. On the PS2 no real equavalents exist. You either write directly hardware (hard) or use a high level toolkit like Intrinsic or RenderWare - both which are intended to be crossplatform. But because they are high level they also hide hardware details and prevent us from implementing cool platform specific gfx features. So I guess we in the end will drop the high level stuff and write the loe level stuff in assembler anyway. And we have to, because that is needed to compete with the other games out there. My point is that the holy grail for a cross platform library is utopia for commercial class games. So the way to mix Java with your own level stuff on this platforms. All we need is the proper tools and ports of the virtual machine and hotspot compilers.
That was long. I hope this cleared up my opinion in these matters.