OpenGL software rendering is usually very slow, which means you game "runs" at 1-2fps

Well, I don't have experience with OpenGL software rendering, but is it really that slow for 2D scenes? Say, a simple 2D scene without paralax scrolling? I mean, what you're saying is OpenGL software rendering is slower than Java 2D software rendering.

Yes, it is, because OpenGL has to perform correctly, not fastly; that's the key difference between it and DirectX. OpenGL is allowed to be slow so long as it renders any given scene correctly.

And you can't ship GL drivers with your game, OR DirectX drivers. You can ship DirectX itself, but not the drivers.

I'm not sure why there's so much resistance to this simple thing...? It's such an obvious candidate for a native binding it's a miracle no-one has actually done it already.

If there were a D3D binding then...

... the hoards of C++/DX windows coders could jump right in and have a go at using Java using a familiar API... the middleware vendors would be able to consider doing a port to Java of their DX only engine... there would be another compelling argument to get an embedded VM on XBox... the Windows compatibility problem would be solved, for those that have it... one more chink in Java's armour is filled

Your point is? This may be shocking for you, but there is also a Java VM for Windows!

Yes there is, but that is developed by Sun Microsystems and requires no permission from anyone to release it. Sun would have to sign an NDA to receive a development kit and they [primarily] developed Java and OpenOffice for themselves not others (believe it or not).

Microsoft will never ever ever take part in building Java for, bundling Java with or assisting with Java on any of their platforms if they could help it. The only way that would happen is if they were legally bound to - like how they may have to provide up to date updates of JRE and have it loaded in all future Windows builds if they do so with .NET (if it hasn't been ruled already).

From Microsoft's point of view there is .NET so they have no need for Java.

IMHO a abstract (low-level) 3D API would be much better. Actually, I'd rather use C# with Managed D3D instead of a direct Java Wrapper for Direct3D, although I prefer Java as a language and most of the libraries.

I mean the new OpenGL revision coming next and D3D 10 are quite similiar: Everything is created by a template and will be immutable except the content of the two resource types, buffers and textures. These can be bound with specified meanings to three shader types, which are used together with render-state objects and draw calls to batches.

I believe the API doesn't need to provide all features, but with the above concept it should be extendable as the native ones. It also could be somehow limiting, if it makes it easier to use.

Hm, keldon85... you got it the wrong way around. It's up to developers (in this case) to get Java on that platform and they are free to do so. GCJ would be one option and the open JRE would be another. However, you need some DX binding in first place.

Without a ready to use DX binding it would be too much trouble for being worth it.

Perhaps a D3D binding is coming ... that's what I thought when I read Ken Russell's comment about the 'Minimal Scene Graph' that he is working on which "should be portable on to other rendering libraries than OpenGL".

GCJ might be able to pull it off since the parts of the Java library that are missing are not necessarily important. I think one of the major weaknesses is that you cannot have pointers to memory offsets in arrays or to methods. Then there's the lack of unions, which limits what you can do with data big time.

Of course you can achieve the same functionality using methods, which we all know that it is terribly slow. Unless the rate of performance increase dramatically rose then performance optimisations and concern for the extra 20% in speed will always be of great importance.

Having said that if you are generally achieving nothing extra from Java then the risk of change is not a clever option; so Java may need something to encourage the change. My prediction (and hope) is that creating native applications will be a thing of the past and that cross platform development will be the norm with fewer compatibility issues between platforms. Unfortunately however, I do not believe that Java will lead! Why do you think Microsoft are so keen on pushing .NET out into the lead eh?

Well that's when the word platform is presented for what it is. Until Java the platform was pretty much hardware+operating system; platform independent libraries changed that by directing the platform towards the choice in API. One way of looking at it is that the platform has always been the API, with each operating system providing a different API.

.NET (like Java) can is compile once, run anywhere. It is likely that Microsoft have pre-empted a change in direction towards platform independent systems (with the success of Java). They have also taken it a step further by opening up their platform to multiple languages, so they have the most flexible platform of all - despite .NET's youth.

.NET (like Java) can is compile once, run anywhere. It is likely that Microsoft have pre-empted a change in direction towards platform independent systems (with the success of Java).

yes, you can write .net programs Mono, but iirc the Mono project has some legal issues surrounding it (besides being inferiour to the Windows version), making Mono a no-go for anything besides hobby projects imho.

Quote

They have also taken it a step further by opening up their platform to multiple languages, so they have the most flexible platform of all - despite .NET's youth.

Well, the JRE already had a lot more languages running on it at the time when .net was only a www suffix. I think the only difference is that MS themselves developed multiple languages for their VM, and marketed this capability of a (any) VM. Probably mainly to promote .NET adoption by VB developers and to lure java programmers on the .NET platform with J#.

In my opinion (with MONO) it would have been better to have just created a VM with (a) bytecode compatibility with .NET, or (b) an alternative to .NET and tried to push that out rather than simply emulate it. We already have wxWidgets and GTK so the GUI API could have reflected one of those rather than WinForms (aka managed win32).

But as for games, well I think that in a few years time you may find more games utilizing much higher level languages, but it's all about (a) the need for the language and (b) your dependencies on it. For example if you have a super duper AI bot, a mega sophisticated game and graphics engine with a Java powered camera system then you have enough dependencies on Java to justify using more of it in your project!

I've worked with lots of students at different unis, and I have to say I've consistently seen lots of interest in game development. Typically about one in 5 of computer scientists would like to do it, and about 1 in ten make any attempt to do so at some point, and maybe one in a hundred do something really good whilst still at uni. YMMV

I've just finished at Durham (physics and computer science) and they deal mostly with Java on the computer science course - even in the graphics modules. Our second year graphics assignment was to create a solar system with Java3D, and the third year one (which I didn't take) was to make a small tank game with networking capabilities using JME. My third year project was making a human-like game character using Jason (a tool for programming BDI agents with the AgentSpeak language and Java), and this year several other game-related projects were proposed using Java, so there's teaching going on involving games, graphics and Java, even if there are currently few commercial games using it.

I think it's only a matter of time before the first video card manufacturers will drop OpenGL support in their drivers for Windows.

I think that's rubbish. The fact that DX10 features are only available on XP via OGL is a point in OGL's favour. The fact that ID are still 100% behind OGL is another. WOW isn't small and insignificant, either.

I think that's rubbish. The fact that DX10 features are only available on XP via OGL is a point in OGL's favour. The fact that ID are still 100% behind OGL is another. WOW isn't small and insignificant, either.

Well, think about it: There are already lots of PCs without decent OpenGL drivers. The OpenGL drivers on most new PC's with onboard Intel gfx are rubbish already, and those are a very large chunk. The number one priority for most graphics boards vendors on Windows at *this* moment is stable DX drivers. I have the feeling that the number of OpenGL games is dropping (I don't know the numbers, but how many AAA OpenGL titles have there been compared to DX titles the last year?). iD publicly stated that they're starting to embrace DX so who knows their next engine will be DX too?...

Sure, OpenGL will have its place in the foreseeable future and top of the line gfx board manufacturers will probably continue to deliver decent OpenGL drivers for a while, but OpenGL's position on Windows PCs is already declining. With Vista having some sort of D3D wrapper for OpenGL, I would suspect graphics board manufacturers like Intel don't have a lot of incentive developing real OpenGL drivers anymore (chances are Microsofts OpenGL wrapper works better than their current OpenGL drivers anyway).

I'm not trying to spread FUD here, I'm sorry if it's perceived that way.I just have the feeling that Vista's OpenGL wrapper might be a reason for some gfx card manufacturers to stop delivering real OpenGL drivers. But yes, I'm just guessing here.Anyway, the fact still stands that DX drivers are generally more stable on Windows, DX is available on all MS OS-es, and most windows developers seem to have a preference of the D3D API above OpenGL nowadays.I think that should be enough reasons for a D3D binding.

There's little to stop someone turning the open JRE into an embedded runtime on the XBox. Except of course the lack of DirectX APIs.

Xbox ... sure

360 ... maybe not.

AIUI, the 360 has a more rigorous approach to memory protection, such that it is currently impossible to run proprietary VM's on the machine, because it won't let you execute stuff pre-ordained to be data, and without MS's co-operation, all your VM-run program code will be marked as data.

Haven't tried it myself, and (fortunately) I'm not under NDA with them so YMMV, this is just the rumour I heard.

I've just finished at Durham (physics and computer science) and they deal mostly with Java on the computer science course - even in the graphics modules. Our second year graphics assignment was to create a solar system with Java3D, and the third year one (which I didn't take) was to make a small tank game with networking capabilities using JME. My third year project was making a human-like game character using Jason (a tool for programming BDI agents with the AgentSpeak language and Java), and this year several other game-related projects were proposed using Java, so there's teaching going on involving games, graphics and Java, even if there are currently few commercial games using it.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org