Now where did the compiler discussion go, Bubba? ;)
Haven't seen a game in a long time that does that, except those based on the Irrlicht engine and not using any system-specific calls. In terms of commercial games, that means zero.
Another point is that you see most games out there are coded for x86 platforms and usually support both GL and DX.
Begin coded for the x86 is a different matter. Assembly aside, I think many programs would, for example, be mostly compatible with amd64 architectures.
Huh? There's more to being cross-platform than offering code paths for both GL and DX.
So the issue of cross-platform is a moot point
Given that the XBox uses DirectX and runs an embedded Windows, programs should have been largely portable from the get-go. I wonder why not.
if we are talking consoles, MS is already developing technology to port from PC to console (XBOX) and back.
I must admit that the last time I looked seriously into 3d programming was when shaders were programmed in assembly-like languages, so I don't know how excellent this framework is or if any GL-based library offers the same.
Also when it comes to things like shaders and effects Microsoft has an excellent effect framework that integrates seamlessly into existing engines and it is easy to develop an engine that works with it.
None of which are particularly hard to find, but that aside ...
Now this can be done in OpenGL but you would need the following:
* A 3D vector class with operator overloading for common operations
* A matrix class to handle matrices
* A matrix math library to handle matrix mathematics and common matrix/matirx and matrix/vector operations
If I want to save the matrix for later reuse, I can use the matrix stack.
glRotate(angle, axis.x, axis.y, axis.z); // Not sure what the D3DX call does exactly.
I don't know about effects, so I can't comment on the next snippet.
And physics and AI and game idea and level design and ...
Graphics are easy...but a game is 10% graphics and 90% management of resources.
Meh. Personally I find the physics to be the hardest part. I like good physics.
Depends on your definition of compatibility. I run Linux. Microsoft to me is the antithesis to compatibility: something touched by MS is most unlikely to run properly on my system.
If you want compatibility you can never go wrong with Microsoft.
By the way, when will you be switching to DirectX 10?
Everyone struggles to be compatible to MS producs - because they're the market leader. It's easy to be compatible if things are measured against your product.
Everyone else struggles to match the compatibility of MS products.
Mine doesn't. The Windows installation (for games *sigh*) aside, my computer doesn't use a single Microsoft product. So there :p
Nearly every PC out there in some form or another relies on Microsoft products.
I agree that this is not plausible, but what is this cross-platform "myth" you're talking about?
It's high time for the cross-platform myth to be shattered. It's just not plausible that Microsoft is going to lay down and die while Linux or some other system takes over.
Cross-platform compatibility is about reaching the largest audience possible, now and in the future. Linux market share is going to rise, even if it won't come anywhere near threatening Microsoft. Macintosh might also be nipping more at the Windows user base. And there are personal considerations: for a hobby game programmer who has Linux on his own system, being able to run the games on Linux is a pretty overriding argument.
Besides, platform moves are always a chicken-egg problem. If nobody writes programs for a platform because nobody uses it, then nobody will use the platform because nobody writes programs for it.
If someone, however, writes applications for many platforms at little additional cost (I still maintain that OpenGL and DirectX differ mostly in syntax details, D3DX aside), then the new platform suddenly has applications and gain users.
I consider that a good thing.
For me, OpenGL offers programs that work on the platform I use. I think that's a good criterium.
Don't choose OpenGL based on MS or non-MS, choose it based on what it offers or does not offer.