Ask HN: Is OpenGL Worth Learning?

6 points by solidgriever ↗ HN
With Vulcan the next API to replace OpenGL... is it safe to assume that anyone that wanted to learn it is better off waiting for Vulcan?

6 comments

[ 3.0 ms ] story [ 24.0 ms ] thread
Yes. If you want to learn I'd still pick up OpenGL for now. The reason is conceptually you still need to master that level of development one. Two vulkan will not be ready for actual production use likely for maybe 12-18 months if I understand where it sits today. The marketing site for it says initial specs expected this year. Plus it was just really announced in March. So OpenGL isn't going away anytime soon, and even the way vulkan seems positioned so far, it isn't so much a replacement to OpenGL as it appears to be a Lower level framework.

Edit for clarity

thx for the reply.i grandstander that if one learns a graphics API, it is easy to adapt to another,and OpenGL has NOW all the textbooks and experts online an tutorials... and Vulcan will not have even after an implementation comes out. BUT the time investment to learn OpenGL is huge.. and i don't understand if Vulcan will eventually replace OpenGL or they will coexist; or if Vulcan is more streamlined easier to learn more flexible. If the answer is that the industry will shift to Vulvan because OpenGL will be phased out, then it's maybe better to wait. i just don't want to sink a lot of time in condemned tech.
What is your goal? It is hard to suggest what you should do if we don't know your goals.

To do 3D programming you need to understand a lot of stuff - the math, shaders, how the GPU works, etc. All of that is invariant - you will need to know that stuff regardless of what API you choose because you are programming a GPU at a fairly low level. Of course, the details will change (GLSL shader, or something else) depending on the API.

But you will not, for example, get a job using Vulkan if you have been sitting idly not learning this stuff, waiting for Vulkan because your competition will have been programming in OpenGL for years already. You can write a game, make a product, now in OpenGL (or DirectX). Is your goal 3d programming, and you just want to know the best API to start with, or is this "OpenGL, or maybe Hadoop, or maybe machine learning" type of question with no specific goal in mind.

Does anyone make games directly in OpenGL? I mean, it means developing your in-house engine. And all I can hear is that "never make your engine" advice, "you'll never be able to come up with the finished game" and etc... This is quite a common sentiment among experienced game developers.
Agree with RogerL here. It really depends on what you want to do and what you are tying to do. But OpenGL isn't going anywhere anytime soon. And at least from what is released so far, it appears, OpenGL and Vulkan will co-exist.

There are a ton of things to learn when you start down this path, as RogerL already pointed out, and there are other frameworks and tools you can learn depending on your needs. DirectX, OpenCL, OpenCV, OpenGL all offer good frameworks/API's and do similar things but have specific specialties. Then there are also Game engines that build upon one or more of these that you can start with.

If you want to share your goal I am sure you'll get a few opinions and options.

My goal is to learn a lot of stuff in game development gameplay/audio/ai programming. I don't want to be an engine programmer or a rendering specialist, but I want to know how to do it if someday i will have to (help) code one. Graphics API are hard, so i wanted some opinions from those who know OpenGL and what was known as OpenGL-Next. I understand what you say: learn OpenGL now , it't here, you can work with it and if something better comes up learn the things that are new, but i want to optimise my time and avoid frustration. I can learn more about AI/audio etc in the meantime if that means that i will learn a more modern, powerful, logical API later.