A little while ago someone linked to this list of complaints on OpenGL from Valve Developer Rich Geldreich. It’s pretty common knowledge that I use OpenGL in all my projects, and some people are wondering what I think of this list.
Here we’re talking about the OpenGL API. API is Application Programming Interface. If I write some code and bundle it up in a package for others to use, then the API dictates how you (another programmer) can use it. It’s the control panel for my code. The design of an API involves a lot of things. I can give you lots of power at the expense of making things really complicated. I can make things very clear at the expense of making you do a lot of typing. I can save you some typing at the expense of making everything inscrutable abbreviations. A good API is easy to read, offers you exactly the functionality you need, and once you learn half of it you can intuit how the rest works. A bad API will send you to the docs again and again so you can figure out why it’s not working even though it totally should because I copy-pasted right from the example and it’s still not working what the hell!?!?
I can’t actually comment on a lot of the points Geldreich makes. The author is coming at OpenGL from a very different angle. I’ve never messed with console ports. I haven’t touched Microsoft’s toolset since the 90’s. I’m usually mucking around with procedural content, not pushing the hardware as hard as I can. (Although my current project is a tiny step in correcting this.) All of this means that I don’t have anything to compare OpenGL to, because I haven’t really used it in difficult circumstances or explored the alternatives. Furthermore, my low-tech work means I’m just less sensitive to quirks in the system.
On the PC, the two big players have been Direct 3D and OpenGL, and I gather they’ve been playing tug-of-war since the 90’s. At first OpenGL was faster. Then D3D. Then OpenGL again. Now it sounds like D3D has the performance edge. Again, I’m just extrapolating. I don’t have any first-hand experience with D3D.
But I suppose I can comment on a couple of these points. Here is what I think, put in plain language for non-coders. (Bolded text is from original article.)
Continue reading 〉〉 “Things that drive me nuts about OpenGL”
T w e n t y S i d e d