Windows will stay far, far ahead of any other platform in gaming at the very least until someone can get the Khronos Group to do something useful. OpenGL 3 is such a setback for non-Microsoft gaming.
Gaming is not only about pretty graphics, dude. Who the fuck cares if OpenGL 3 isn't as great as DirectX10, cool games are made on the nintendo which has neither.
The madness of wanting all the pretty graphics you can do has killed whole game genres on the PC. There aren't any RPG worth a salt nowadays because the only studios that survived are using all their resources on graphics and nothing else. Fallout 3 is a shooter that just happens to have RPG elements and doesn't hold a candle to its predecessors. The RPG genre used to have hideous graphics and great gameplay, when Fallout 2 was out it was considered ugly for its own time but was a success because people cared less in those days. Fallout 3 has pretty graphics and nothing else because of the insane expectations people have from 3D games.
I've had some recent chats our graphics gurus <www.xna.com> about this...
OpenGL was designed to abstract 3D acceleration hardware. It sought to avoid favoring any particular hardware strategy and aimed for software abstraction. It is pretty strong in this respect, but hardware evolved more quickly than OpenGL could. As a result, game developers have to use a large number of vendor specific extensions for maximum performance in modern games.
Early Direct3D came in two flavors. Retained mode, which was more similar to OpenGL, but also resembled a sort of early game engine; and Immediate mode, which aimed to do the reverse of OpenGL: abstract a particular hardware strategy that vendors could implement. Retained mode was a clear loser and quickly forgotten. Immediate mode, however, was a resounding success. The command buffer model lent itself well to the leading hardware of the time and proved to scale well simply by more tightly packing silicon.
PowerVR uses a form of deferred rendering which is significantly more clever than the brute force command buffers of 3dfx and later nVidia. This clever approach turns out to be faster with comparable hardware, but nVidia was simply able to produce beefer and beefier GPUs. No amount of cleverness was match for Moore's law. Lucky for PowerVR, beefy GPUs are energy hogs and mobile devices don't have a lot of energy to spare. The iPhone probably couldn't exist today if not for the cleverness of the PowerVR architecture.
Modern games use more and more PowerVR-inspired techniques in their shaders to reduce overdraw and the Xbox 360 uses a form of predicated tiling to enable HD render targets to fit in the small amount of super fast (and super expensive) eDRAM. We are pushing the current limits of jam-packed silicon. It is time to start being more clever.
Apple has selected to use OpenGL ES for the iPhone, just as everyone but Microsoft selects for their devices. OpenGL ES isn't a standard in the typical sense. It is more like a standard template. They basically took the OpenGL standard and then labeled the vast majority of the API as optional. OpenGL ES is an API starter kit. The premise being that platforms don't need to design an entire API from scratch. As an API consumer, if you know OpenGL, you just need to learn which bits Apple has customized, then you can write an iPhone game. The downside is that iPhone games aren't any more portable than Xbox 360 games, which use a customized version of Direct3D. The funny bit is: no one cares. It turns out that you need to performance tune for every individual device anyway, you might as well use an entirely different API. It isn't that much more work.
OpenGL ES is enabling evolution at a pace on par with Direct3D. Since it is primarily used in closed platforms such as game game consoles, and small platforms such as mobile phones, I do not expect it to push nearly the same amount of innovation as Direct3D. Microsoft has the privilege of strategic partnerships with independent hardware vendors. I don't think there is anything exclusive about these partnerships, but Apple's control freak nature will probably demand control than breaking API changes. They also have a bigger focus on battery life than on performance. Battery life, the slowness of OpenGL, the success of D3D, and the desire for control neatly explain this purchase: http://www.ipodnn.com/articles/08/12/18/apple.buys.into.img/
Whew, that was a looooong winded comment. I at least one person enjoys it :-)
Superior in graphical quality, yes, but PC games don't sell nearly as well as games for consoles and portable systems. Also, I don't see any major Windows titles using touchscreen/accelerometers for input yet.
Comments
Windows will stay far, far ahead of any other platform in gaming at the very least until someone can get the Khronos Group to do something useful. OpenGL 3 is such a setback for non-Microsoft gaming.
Gaming is not only about pretty graphics, dude. Who the fuck cares if OpenGL 3 isn't as great as DirectX10, cool games are made on the nintendo which has neither.
The madness of wanting all the pretty graphics you can do has killed whole game genres on the PC. There aren't any RPG worth a salt nowadays because the only studios that survived are using all their resources on graphics and nothing else. Fallout 3 is a shooter that just happens to have RPG elements and doesn't hold a candle to its predecessors. The RPG genre used to have hideous graphics and great gameplay, when Fallout 2 was out it was considered ugly for its own time but was a success because people cared less in those days. Fallout 3 has pretty graphics and nothing else because of the insane expectations people have from 3D games.
I've had some recent chats our graphics gurus <www.xna.com> about this...
OpenGL was designed to abstract 3D acceleration hardware. It sought to avoid favoring any particular hardware strategy and aimed for software abstraction. It is pretty strong in this respect, but hardware evolved more quickly than OpenGL could. As a result, game developers have to use a large number of vendor specific extensions for maximum performance in modern games.
http://en.wikipedia.org/wiki/OpenGL#History
Early Direct3D came in two flavors. Retained mode, which was more similar to OpenGL, but also resembled a sort of early game engine; and Immediate mode, which aimed to do the reverse of OpenGL: abstract a particular hardware strategy that vendors could implement. Retained mode was a clear loser and quickly forgotten. Immediate mode, however, was a resounding success. The command buffer model lent itself well to the leading hardware of the time and proved to scale well simply by more tightly packing silicon.
http://en.wikipedia.org/wiki/Direct3D#History
PowerVR uses a form of deferred rendering which is significantly more clever than the brute force command buffers of 3dfx and later nVidia. This clever approach turns out to be faster with comparable hardware, but nVidia was simply able to produce beefer and beefier GPUs. No amount of cleverness was match for Moore's law. Lucky for PowerVR, beefy GPUs are energy hogs and mobile devices don't have a lot of energy to spare. The iPhone probably couldn't exist today if not for the cleverness of the PowerVR architecture.
Modern games use more and more PowerVR-inspired techniques in their shaders to reduce overdraw and the Xbox 360 uses a form of predicated tiling to enable HD render targets to fit in the small amount of super fast (and super expensive) eDRAM. We are pushing the current limits of jam-packed silicon. It is time to start being more clever.
http://en.wikipedia.org/wiki/PowerVR#Technology
Apple has selected to use OpenGL ES for the iPhone, just as everyone but Microsoft selects for their devices. OpenGL ES isn't a standard in the typical sense. It is more like a standard template. They basically took the OpenGL standard and then labeled the vast majority of the API as optional. OpenGL ES is an API starter kit. The premise being that platforms don't need to design an entire API from scratch. As an API consumer, if you know OpenGL, you just need to learn which bits Apple has customized, then you can write an iPhone game. The downside is that iPhone games aren't any more portable than Xbox 360 games, which use a customized version of Direct3D. The funny bit is: no one cares. It turns out that you need to performance tune for every individual device anyway, you might as well use an entirely different API. It isn't that much more work.
OpenGL ES is enabling evolution at a pace on par with Direct3D. Since it is primarily used in closed platforms such as game game consoles, and small platforms such as mobile phones, I do not expect it to push nearly the same amount of innovation as Direct3D. Microsoft has the privilege of strategic partnerships with independent hardware vendors. I don't think there is anything exclusive about these partnerships, but Apple's control freak nature will probably demand control than breaking API changes. They also have a bigger focus on battery life than on performance. Battery life, the slowness of OpenGL, the success of D3D, and the desire for control neatly explain this purchase: http://www.ipodnn.com/articles/08/12/18/apple.buys.into.img/
Whew, that was a looooong winded comment. I at least one person enjoys it :-)
Superior in graphical quality, yes, but PC games don't sell nearly as well as games for consoles and portable systems. Also, I don't see any major Windows titles using touchscreen/accelerometers for input yet.