OpenGL software rendering is usually very slow, which means you game “runs” at 1-2fps. That really isn’t good enough for anything.
[quote]OpenGL software rendering is usually very slow, which means you game “runs” at 1-2fps
[/quote]
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
Cas 
Microsoft have .NET and are not friends with Sun; why would they have an embedded Java VM on their XBox?
Your point is? This may be shocking for you, but there is also a Java VM for Windows! :o
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”.
http://www.java-gaming.org/forums/index.php?topic=16735.0
Keith
That doesn’t sound like a D3D binding. We already have Java3D for DirectX. What we really need is a straight D3D binding.
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?
[quote]Why do you think Microsoft are so keen on pushing .NET out into the lead eh?
[/quote]
Well, not to promote cross platform development, that’s for sure…
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.
Cas 
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.
[quote].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).
[/quote]
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.
[/quote]
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 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.
In my uni we did games for our second year project, but they were board games so I guess that doesn’t really count.
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.
…and you could do EXACTLY the same thing with a Java OGL->D3D wrapper. You’d get the option of java on the Xbox AND still have cross platform development options.