I have 2 years learning C++ and I have just scratched any of the graphics apis, only by their names.
I was thinking of starting and using the knowledge for creating games, even though there is no profit for me to create games for money. I just want to create games and that is all, but don't know exactly what to learn.
Is learning DirectX or OpenGL a good point and passing the 2D game programming directly? I have some experience with 2D libraries, but not much to say the truth, just little games.
When it comes to OpenGL vs DirectX which one to choose?
I really want to create 3D games and I think that there won't be any need in learning 2D, even though experience is optional and better. Please suggest me anything and I still consider myself a newbie in C++.
What concepts of C++ are a MUST for a game developer?
Also, this is a question i am making 6 months before I actually embark on graphics adventures, so I will not start without feeling good enough with C++. I am asking before hand.
If you wanna program a 3D game, then do that. There are libraries out there for it, or you could program directly in DirectX or OpenGL. Both of which have great documentation and widely used in the industry.
I think 2D is a good thing to learn first. Mario teaches you about scrolling and where the camera is. Asteroids teaches you about collision detection and will give you the linear algebra that you need for things like rotational matrices.
It's always good to start basic. If you would rather jump into the 3D stuff right away, then of course go for it.