C/3D Game Programming
Expert: Joseph Moore - 6/19/2009
QuestionI recently found a book at my house called "The Black Art of 3D Game Programming" by Andre LaMonthe: "Writing your own high-speed 3D polygon video games in C." It was written in 1995. I am currently learning C and want to find an application for it, plus I am interested in game programming. My question is is this book worth reading given its age and subject? I read the introduction and it sounds interesting, but I don't know if the things I'm going to learn are applicable today. Any insight would be appreciated.
Thanks,
Miles.
AnswerThe LaMothe books are very well known in the industry and most people have at least one book in the series. I happen to have a couple in the LaMothe series in my book shelf next to my desk. I don't have that particular one, but it reviews well. I can tell you that the concepts have not changed much since the dawn of 3d games. You will still be doing much of the same work now as you would have then.
I will say this, though: if you are just beginning C, wait before you pick that book up. You will want a good understanding of the fundamentals before you start doing any 3D work. Get a feel for the language itself. Learn the mundane -- data structures, design patterns, etc. Until you can comfortably write several data structures and design patterns quickly and without referencing any material, I'm not sure you're really ready to tackle hard-core engine programming. Some examples of things you will want to familiarize yourself with:
* Linked Lists
* Queues
* Stacks
* Trees
* Singletons
* Hash Maps
These are all very basic, very fundamental. You need to make sure you are absolutely, intimately familiar with pointers and how to use them, too. Once you are ready for 3D programming, you will need to brush up on your Trig and Calculus. Matrices, vectors, angles, sine, cosine, tangent -- these are all important concepts that are critical to 3D programming (and are likely covered in the very beginning of the LaMothe book).
I don't mean to scare you off, and I sincerely hope that I have not. However, getting in too deep too quickly can be incredibly off putting. Take it slow, and learn the basics. Build on that. Write some simple 2D games first. Heck, start with some simple text-based games.
If you would like further assistance or have any questions about anything I've written here in this answer, please do not hesitate to ask.