Jump to content
  • Advertisement
Sign in to follow this  

Eager to learn, but lacking direction

This topic is 4316 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi folks. I have a problem. You see, for the last few weeks, I've been in college, doing C++ (among other things), and discovering how much of the language I already know (I went to another college before and learned a great deal, but dropped out for reasons I won't get into here), I want to expand on that and learn Windows and DirectX and, well, pretty much anything that'll help me become a better (game) programmer. One small problem though; I'm not sure where to begin. I've been to numerous websites (including this one, and the DirectX 101 forum at MSDN), and the knowledge needed to even BEGIN tackling the subject of game programming seems a rather large one, and I'm not sure whether I need to spend more time coding in the console (which poses the problem of "What needs to be done to hone my C++ skills?") or if I'm ready to take on a challenge like Windows and DirectX programming (which poses the problem of "What kind of applications to start? A notepad clone? A simple calculator? Chip's Adventure? I don't know."). I'm also interested in brushing up on my math skills (since it's been a few years since I've had to worry about things like matrices and such; my college programming course is tailored for the business world rather than the science world), but I don't even know where to go for that. Most books or sites say to get your hands on a good 3D math primer, but fail to suggest anything, so I haven't even found a book to study. Any insights would be greatly appreciated. Thank you.

Share this post

Link to post
Share on other sites
A few questions to ask are:

1.) What is the difference between a pointer and a reference?
2.) Describe the keyword virtual. Why would you declare a method virtual?
3.) Whose method is called if I have parent class A, child class B and they both have function Beeker() but it is not virtual, and the following code is executed:
A* test = new B;
Class A's Beeker() or class B's?
4.) Why would you make a destructor virtual?
5.) What is std::vector?
6.) What is std::list?
7.) In what situation would you use a vector over a list? vice-versa?

If you have to look up the answers to those than you definately want to keep going over C++ until you get the concept of polymorphism, etc down cold.

Next I really stress going over the mathematics as it is an area that a lot of programmers lack. For that I have two book recommendations depending on your experience:

3D Math Primer for Graphics and Game Development is a great book if you want a tutorial along with the core mathematics, and it is a pretty light read.

Mathematics for 3D Game Programming and Graphics which is most likely the best math book available for basic everyday concepts (and Eric Lengyel is a great author), and it covers more than the first book I mentioned. This book is more of a reference than a tutorial, but you could easily use it as a tutorial if you wish it just reads differently.

I would do those things first and once you are really up to par on your C++ skills (if you aren't already) and you brush up on your math I would get this book:

Introduction to 3D Game Programming with DirectX 9C: A Shader Approach which will get you on your way with learning DirectX. Make sure you pick up the 'A Shader Approach' version (released July 25/06) and not the original one because you really want to be focusing on rendering with shaders and not the FFP as it is depreciated and not even available in DX10. Regarding DX10 you still want to know DX9 definately as it will still be used for quite some time (3-4 years imo) and you can easily move into DX10. You may also want to pick up Real-Time Rendering as well as it covers all of the core 3D concepts and is a de-facto standard for all graphics programmers.

Hope that helps!

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!