Last week, the O’Reilly Network (a ‘net news venture fromO’Reilly & Assoc.) posted a series of three articles with the commontheme of “OpenGL Game Development on Linux”: Creating Real Time 3D Graphics With OpenGL,Preparing to Build an OpenGL Application, andOpenGL Rendering and Drawing, providing an overview of the 3D API’s history, purpose, and basics.
The articles inspired discussion in a Slashdot thread, in which id lead programmer John Carmack weighed inwith his opinions on the future of OpenGL in game development:
DX8 is good. Microsoft has a long history of shipping an initially crappy product (DX3), then aggressively improving it until itis competative or superior to everything else. Many people underestimate the quality of microsoft’s products by only formingopinions on early versions, and never revising them.
The crucial advances of DX8 are the vertex and pixel shaders. I think that the basic concepts are strong, and they will give realbenefits.
I expect that that functionality will be exposed through OpenGL extensions by the time I need it.
For one thing, DX8 is modeled pretty closely on Nvidia’s hardware, and Nvidia’s hardware is already fully exposed throughtheir register combiner extension, even somewhat moreso than under DX.
The issue will be finding consensus between the other hardware vendors.
The upside is that not all hardware designs are exactly in line with DX8, and some usefull and interesting features exist that DX8 doesn’t expose. It is looking like several hardware vendors are making moves to expose ALL of their functionality through OpenGL extensions to be available when the product ships, rather than at the next DX cycle.
The other issue is still portability. I am 100% committed to delivering our next title on linux and MacOSX (NOT MaxOS-9), inan effectively simultanious timeframe. That would be more troublesome if I was gung-ho for DX8.
I’m happy that microsoft is doing a better job, but I don’t feel that I will be in a disadvantaged position continuing to work withOpenGL.
So there it is… the next Doom will be released for Linux nigh-simultaneously with the other versions, just asQuake 3: Arena was. Unfortunately, not all developers have Carmack’s financial freedom to do the Right Thing,and multi-platform compatibility may become even less of a priority for most developers when Xbox rolls around,as Raven’s John Scott points out in his.plan:
Referring to Mr Carmacks .plan, and presuming the XBox will be a much larger market than the PC for games (likely). I must also say all of the following is pure speculation =)
If the XBox does support OpenGL, then that will put NVidia in control of the development of OpenGL for the PC. They will be able to lead from the front and pretty much decide how the API develops in the future. If the XBox supports feature Y, then all other card manufacturers will have to, or get left behind. Responsibly used, this control could be a very good thing for OpenGL.
It is likely that the XBox will be the primary format for most games, and the PC will be of secondary concern. I think this will mean that the minimum spec for PC games will shoot up to somewhere around the XBox, and then stay there until XBox sales taper off. We can code some scalability in, but there is only so much we can do; especially if the PC is the minor market.
Cross platform compatability is exactly what MS do not want. They want exclusivity to their console, or at the very least exclusivity to their OSes. They will make money from XBox game sales, and do not make any from PC game sales. MS could kill OpenGL support on the XBox for exactly this reason. The biggest reason for them not to do this is Mr Carmack’s plan update today. This was their original plan for DirectX, tocharge a royalty for its use. OpenGL saved us there too.
Not checking later versions of MS products : guilty. The last time I looked into DirectX was over 2 years ago, but it did leave such a bad taste in my mouth that I am not eager to relive that nightmare, ever. I really ought to force myself though.
Even if Xbox turns out ot be a successful platform, if NVIDIA can muscleOpenGL support into the console, it would bode well for future Xbox/PC to Linux ports at the very least(although Direct3D to OpenGL ports are not impossible, i.e. Heavy Gear 2 for Linux)… something to mull overas this drama plays out over the next several months.