You are here:

C/3D Game Programming

Advertisement


Question
I 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.

Answer
The 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.

C

All Answers


Answers by Expert:


Ask Experts

Volunteer


Joseph Moore

Expertise

I've been programming in one form or another since my brother taught me BASIC when I was 6. I've been programing professionally since I was 20, first web development with HTML, JS, DHTML, CSS, etc., then I became a video game developer, writing code in C, C++, C#, SQL, assembly, and various scripting languages. I've even written my own scripting languages, custom designed for the games I was making. I also dabble in Java, PHP, and Perl. I've worked on pretty much every aspect of game development, including graphics, audio, gameplay, tool, UI, input, animation, and physics.

Experience

I've been writing C code for 12 years, both on my own in my spare time and professionally.

Organizations
IGDA

Education/Credentials
Bachelor of Science in Game Design and Development, Full Sail University, Winter Park, FL

Awards and Honors
Salutatorian and Advanced Achiever Awards at Full Sail; Independent Games Festival Student Showcase winner, 2004; Featured article on Gamasutra about an experimental game developed in 2004

©2012 About.com, a part of The New York Times Company. All rights reserved.