Hey im a computer science college student and I am trying to learn C++ on my own and I got a book off of amazon called beginning C++ through game programming. And I am liking it alot so far, really good and im understanding pretty well, but throughout the duration of this book he never leaves the console, im not saying thats necessarily bad because im sure when I am done I will have a good understanding of it but, What should I be learning next I guess is my question. I want to make 3D games, Like should i be learning openGL, directX? all I know about them is that I hear that it is necessary to know those to make anything but then agian, im just asking if you guys know what i should be learning next/ what book i should get next. I would like it if a book could take me from having just a little bit of c++ knowledge and take me through everything up until a finished game product, 3d etc. Thank you guys for any information, it will help alot.
There is a library called SFML http://www.sfml-dev.org/. It is a C++ low level media library. Get familiar with C++ first, but if then you want to do game programming, SFML is pretty good for 2D Graphics and sound etc.
It also supports using OpenGL with it for 3D graphics.
There are other libraries like SDL and, as you said, DirectX. However, I think SFML is probably the easiest, though don't hold me to that - it is just an opinion ;)
Well, technically you could use any of the many libraries that are available... but I'd suggest you to get a bit more used to programming before you dive into game programming. Games are complex - very complex. Aside from the many side skills you need when developing games, you really need some funded knowledge about the tools (including the language) you are using. It's not something I'd suggest to a newbie programmer, it's better to get a feeling of how to structure code first - something you can only gain by experience.
Well im pretty skilled in most of the other tools in game development, textures, 3d modeling, graphics, UI ,etc but my real question is i guess, what is a library like. what are direct x and open gl, are they languages? you know what i mean? and you guys got any books that you could suggest? thanks for the input, very helpful
DirectX and OpenGL etc. are libraries, which means they are reusable portions of executable (or object) code. For C++ libraries will consist of linkable static libraries and/or dynamic libraries (dlls) implementing a load of functions, classes and so forth. They also provide header files to include in your programs to declare all these functions etc.
You'd be best off thinking of them as a set of functions and datatypes you can import to your program to make use of the functionality they provide. For example, OpenGL is an API dedicated to provide functions to draw 2D and 3D objects on your screen.
However, as I said earlier, you should gain some experience with programming before you attempt writing games - you need neither a PhD in informatics not in maths to write a game, but the math and programming skills you will need aren't trivial either.
Sorry to post here now the thread's been resolved, but I just want to clarifty the API/library thing. So a library is the actual functions, classes and datatypes etc.
And at least in the case of SDL or SFML or something, the API would be the public interface which is exposed to the library user.
Well, pretty much. For example, OpenGL is an API, and there are libraries that implement that API. For example, all implementations of OpenGL have to provide glBegin, glEnd and glVertex3f functions, but the OpenGL API just defines how they should behave, not how they should be implemented.