@Zereo I dont think Vulcan with Dx12 is good for starting . Most of the people still stick to D9-D10 and D11 . It is better start with Dx11 , then when everything rolls , buy yourself a new graphic card that can support Dx12 . |
At the moment yeah that is probably true, specially for those that are just starting out in game programming and graphics programming.
True, modern OpenGL is completely different than OpenGL 1&2.
But it is not the API that I'm concerned about. I'm concerned about the concepts of camera, perspective, viewport, linear transformations/matrices, depth-buffer, shading/texturing, vectors, polygons, etc... I think it is much easier to learn modern OpenGL when you already have a good understanding of those concepts. |
Yeah those are important things to learn I agree and it definitely does help to have an easy to use API to learn them in.
That is why I usually recommend that if they are just looking to learn Game Development then they should just bypass learning OpenGL, DX altogether and go straight to learning a Game Engine/Game Framework. Then later after they are more experienced go back and get a decent grounding in OpenGL/DirectX.
Since in reality most game programmers will very rarely touch any OpenGL/DirectX code. Since most if not all graphics related code is behind an abstraction layer of the Game Engine (UE4/Unity) or Game Framework (SDL, SFML, Allegro, etc.) that they are using.
So by using a Game Engine for example they can learn about all the important concepts that you talked about (Plus more) while not having to deal with all the low level headaches that happen when dealing with OpenGL/DirectX directly. Plus they get the added benefit of knowing how to use that engine which will be a big boon on their resume if they are looking to get into the industry.
The only time I think that beginners should jump into learning OpenGL/DirectX right away is if they are planning on focusing specifically on the graphics portion of game and engine development. Otherwise there is so many more concepts of game development that you can learn much easier while using a Game Engine (Like AI, Physics, Entity Management, Asset Management, high level graphics functionality, etc. etc.).
But who knows this is just coming from my personal experience after having gone from learning 2D frameworks to OpenGL/DirectX and then to Game Engines. I wish I would have saved myself the time trying to learn everything about OpenGL/DirectX because I very very rarely touch them inside of UE4 and didn't learn anything I could not have learned by just using UE4.
Anyways just my 2 cents.