Quote:
I'm not trying to make a huge game or anything just yet, I just want to learn C++ through 3D (or any kind of grafix orientated) programming. So instead of learning to make a blackjack game that is just letters representing cards, I want to have the actual cards represented via on screen grafix.
Well heres the only issue with that. Thoes text based games have all the elements that graphic games have at the core programming level. The idea is that your learning how your chosen language actually works and learning the very basics that all games need from the language side. After you have some udnerstanding of thoes, THEN move on a learn a graphics API (Such as Allegro/SDL for 2d, and DirectX/OpenGL for 3d). In my experience (I am a begginer myself), trying to start out learning the basics of C++ while also learning a graphics API is a bad idea because most learning resources for thoes APIs mentioned above assume you know the C++ basics.
Peronally I tried jumping strait to SDL when I only had a very very basic C++ understanding, and while I was able to read tutorials and do them fine... once I tried to do things on my own I sank like a stone, and ended up starting over complealy. If you really really want to skip ahead to 3D give it a try... but the odds of success are slim, and it will likely take you more time then if you just work your way there.
Quote:That's what I was asking, if anyone could recommend a book, or online tutorial or anything that explains C++ as it would pertain to 3D programming (or something to that effect). I just have a hard time understanding things for instance, pointers... I learned how to make them, I learned they point to the memory location, but what I didn't learn how to use a pointer within a game, or why you would need a pointer.
I personally don't know any tutorials or books that explain the C++ basics while teaching 3D programming... and the reason is they are two different things. Learning DirectX for example, is something you should only do when you have a solid understanding of all the core C++ concepts and have actually applyed them.
For example, you don't know why you would use pointers? Thats very understandable. Pointers are probably one of the hardest parts of C++ to learn, and can be a real pain... but to get into 2D or 3D programming you really need to understand why you need them, and how to use them. When you go to learn an API, I haven't really seen any learning resources for DirectX/SDL/Allegro that sit down and explain Pointers (or any other C++ concepts for the matter) in the middle of teaching you the API as well.
Quote:
I feel like all the books I read are just teaching theory and not application.
Were there any books that helped you when you first started you would recommend?
A good book is
Beggining C++ Through Game Programming. Its going to be all console text apps that you seem to hate. But again, you need to learn how C++ works before you start learning a graphics API. Just because a game is text based, doesn't make it less of a game. For example, I just finished writeing a texted based RPG as a console app. It has everything a fully graphic game would have at the programming level... it just doesn't have graphics other then letters.
Personally I also like The Game Institutes online classes. I know some people will say you can find the same learning info on the net... but its nice to have it in one structured area, writen by professionals. The first course will just be more text apps that apply what you learn. The second course is mostly Win32 programming, which involves grapics and the final project is a 2D airhockey game thats kinda nifty. After that there courses move on to DirectX and 3D programming. If thats where you really want to end up... you should really look into it.
Take what I say with a grain of salt because Im a begginer myself whos currently working my way throuhg 2d, and dabbling in DirectX... but I was in your boat at one time, and learned the hard way there are no short cuts, and if you ever want to be a game programmer you need to learn to program correctly, and not cut corners.