Thursday, October 09, 2008

OpenGL 3.0 or OpenGL ES 2.0?

First, I have to admit, I'm a newbie at this whole 3D programming world. I watch from a far with a lot of interest but no real experience working in that world. So I apologize ahead of time if this is a stupid question. But I know a lot of CDT users are using the CDT to work with 3D graphic APIs and game engines so I thought I'd bounce this off you.

It was interesting to watch the response to the release of the latest major version of the OpenGL spec. The reception from the game development community was especially interesting. They were furious, at least according to Slashdot. But I can see disappointment in other articles I've read. The question came up: do we declare Microsoft the victor in the OpenGL versus DirectX wars? To which I add, does this spell the end of the dream of gaming on Linux?

From what I gather, there were a couple of issues with the OpenGL 3.0 release. One, the group writing the spec disappeared behind closed doors and sprung it on the world when they were done without really getting the ordinary game developer's input. And in the end, it appears a lot of compromises were made to keep the non-game developer, the big CAD companies from what I hear, happy. So despite discussion of big architectural changes to compete with DirectX, it ends up not even worthy of the major version number.

It highlights the problem of trying to be everything for everyone and how that is impossible in many situations. Maybe the game developers need a special version of OpenGL spec'ed out just for them. If not, they're all jumping on the DirectX bandwagon and see you later.

But that got me taking another look at OpenGL ES, the OpenGL APIs reduced for embedded applications and gaining wide acceptance in the smartphone market. It was interesting to see that the Playstation 3 uses ES as one of it's available 3D APIs. And reading a few forums I've seen comments from experts who think OpenGL ES, at least the 2.0 version centralized around shaders, is OpenGL done right. The drivers are a lot easier to write and the API cuts out almost all the duplication and focuses on efficiency. It does make one think.

For the future of Linux gaming then, should we be looking to OpenGL ES? I don't know how many OpenGL experts read this blog but I'd be interested to hear your comments on this. I recently bought a book on OpenGL ES programming to see what it was all about and it started to make sense to me that maybe this is the right direction. Heck, it almost seems like Khronos's master plan...

6 comments:

  1. 1. Yes, DX won the (game) 3D API war.

    2. I don't think the beef with the ARB was that they didn't get the gamedev community's input. What the gamedev community wanted was well known; it was pretty much what was announced as "3.0-to-be" before everything went dark. The beef was a) that they ignored what the gamedev crowd wanted, and b) the total lack of information. The ARB is (I think) not seen as dependable, as something you can plan projects against.

    3. ES does look interesting, but unless IHVs produce drivers for desktop platforms - something they haven't been doing so far - I don't know how much headway it can make there. Gaming and mobile do share the notion of rapid (commercial) obsolescence, which may be the key thing here. Once 3D APIs become largely a software problem (with Larrabee's successors) it will hopefully become a moot point.

    4. I suspect the problems Linux gaming faces are as much to do with a userbase unaccustomed to paying for software as anything else. Platform fragmentation and the resultant QA nightmare probably doesn't help. A dedicated Linux gaming distro (GameBuntu?) might help. It might not.

    5. Don't overestimate the importance of bleeding-edge 3D to gaming. Outside of the AAA commercial world, the limiting factor is more likely to be the art pipeline than the graphics engine. And of my all-time fave Windows games, exactly none were graphically impressive, or even graphically ambitious.

    [Disclaimer: I'm not a game developer or a heavy user of GL, but I have been following it for a long time.]

    ReplyDelete
  2. Thanks, great thoughts.

    As for GameBuntu, yes, that's kind of where my thought process is leading. This is in relation to my previous entries on an open game console that would require a standard Linux distro with a good stack for building games and multi-media apps as well as a web browser and based on a well defined low cost but good performing commodity PC hardware.

    ReplyDelete
  3. I'm assuming you've seen http://openpandora.org/ ?

    Mobile, so not my cup of tea, but might be yours. ARM CPU, OpenGL-ES, Linux.

    ReplyDelete
  4. Yes. I think the mobile thing is covered.

    I'm talking more about HTPCs but with solid ATI 4670 class graphics, which I believe to be similar in power to the XBOX 360 at a $500 price point.

    ReplyDelete
  5. I wouldn't agree with people saying DX won the game gfx API war... you can still do high-end stuff with OpenGL as it is. In fact, many of those speaking up on this issue perhaps will never use most of the features or most of the advanced stuff any of these two APIs can deliver. DX experts actually say that no serious features or technological breakthroughs have been accomplished after DX9 was released.

    OTOH, I think Tim Sweeney said in an interview that he predicted software rendering to make a big comeback. He said that based on the coming GPUs design.

    We'll see.

    ReplyDelete
  6. Ben thinking about this Linux gaming platform. It needs plenty of backup from the hardware manufacturers (for the drivers). And the overall DX vs OGL is a bit wrong from what I understand: it should be more of a DX vs SDL or a D3D vs OGL. Not mentioning the fact that current rendering engine uses Rasterisation, whereas the technology to come will be, at least in some part, ray tracing based. The major barrier at the moment is the processing power.

    Tam

    ReplyDelete