• Quick note - the problem with Youtube videos not embedding on the forum appears to have been fixed, thanks to ZiprHead. If you do still see problems let me know.

Advice on Game Programming Book

Garrette

Penultimate Amazing
Joined
Aug 7, 2001
Messages
14,768
I'm not a programmer at all, but my son, who is 14, has been teaching himself programming, mainly C++, with the goal of becoming a game programmer.

Assuming that he has become somewhat proficient in C++, can anyone recommend a good book for the next step?

Thanks
 
I'm not a programmer at all, but my son, who is 14, has been teaching himself programming, mainly C++, with the goal of becoming a game programmer.

Assuming that he has become somewhat proficient in C++, can anyone recommend a good book for the next step?

Thanks

3D Game Engine Design by David H. Eberly, ISBN 1-55860-593-2.
 
Thanks, epepke. I'll check it out.

And for any old mod who wanders by: I had intended to put this in the computers forum but somehow didn't. I blame Uri Geller.

Can you use moderate powers to negate Uri's effect and put this in the right place?


Thanks.
 
3D Game Engine Design by David H. Eberly, ISBN 1-55860-593-2.

That would be the one. Check out the compositor on the copyright page while you're at it. :D

After that, Game Physics and 3D Game Engine Architecture by the same author.

~~ Paul
 
3D Game Engine Design by David H. Eberly, ISBN 1-55860-593-2.

That would be the one. Check out the compositor on the copyright page while you're at it. :D

After that, Game Physics and 3D Game Engine Architecture by the same author.

~~ Paul

Windfall Software. Is that you? I always wondered about the "approxiation" on the back overleaf.
 
I'm not a programmer at all, but my son, who is 14, has been teaching himself programming, mainly C++, with the goal of becoming a game programmer.

Assuming that he has become somewhat proficient in C++, can anyone recommend a good book for the next step?

Thanks

I hope it goes well for him though if he is interested in programming per se he might ultimately find satisfacton in solving business or other real life problems with his skills - in which case C++ is getting obsolete (try Java and J2EE).

Interesting point though - is C++ the preferred language of games developers? I assumed they had some sort of super-special vector-graphic-based language.
 
Yes, Epepke, that's me.

Hey, that's a typo! I'll tell the publisher. We didn't draw the art (whew!).

I think game devos use straight C mostly, no?

~~ Paul
 
Yes, Epepke, that's me.

Hey, that's a typo! I'll tell the publisher. We didn't draw the art (whew!).

I've had worse problems with publishers. One that still makes me grind my teeth is when I sent in some black-and-white art, pre-toned, and the gypsy dildo punks shot it through a screen. Actually, they did a pretty lousy job on all the illustrations.

I think game devos use straight C mostly, no?

I took an EA test, and they asked a lot of C++ questions. If you're using Direct3D, using C++ at least for part of it is basically a no-brainer. With Open GL, it isn't so clear.
 
I haven't read those recommended books so I don't know what exactly they cover.

I would recommend reading about object oriented programming and software development in general. I have no particular books that I can recommend though, just the topics.
 
Epepke said:
I've had worse problems with publishers. One that still makes me grind my teeth is when I sent in some black-and-white art, pre-toned, and the gypsy dildo punks shot it through a screen. Actually, they did a pretty lousy job on all the illustrations.
Most authors are clueless about art, so publishers take over. Sometimes it works out, sometimes not. When authors do their own art, they often can't produce encapsulated PostScript files that are usable. That's because they are using My Friend's Braindead PostScript Generator or something equally support-free.

As the years go by, though, publishers are getting cheap and more often try to use the author's art. That might work in your favor.

~~ Paul
 
I haven't read those recommended books so I don't know what exactly they cover.

I would recommend reading about object oriented programming and software development in general. I have no particular books that I can recommend though, just the topics.

I have the first book, which I just bought for yuks because I had a lot of money at the time.

It covers everything you really need to know from Foley and van Dam, game-important topics such as collision detection and animation, and O-O design in about 500 pages, plus an appendix on important numerical methods. Quaternions are featured on page 11, which I very much approve of. There is mathematical notation, but it's not eye-watering, like so many papers in SIGGRAPH are. Considering that it's based on C++, which is hardly the ideal O-O language, the O-O section is very good. There's source code for everything on an accompanying CD, and it's easy to find.

It seems to me at an appropriate level for an introductory Freshman course. A very bright 14-year-old should be able to handle it without much difficulty. Thinking back to when I was 14, I had already been exposed to trig, basic linear algebra, and transformations (but only in 2-D) in school by that time. The OP might have to help him with the basic linear algebra notation, because it kind of assumes that you already know what it is a matrix, a vector, a complex number, a tuple, a mapping, what the capital Sigma means, etc. Despite this, the notation is consistent and similar to what you see in high school (e.g. vectors always have a little arrow over the top), whereas in the published literature it is all over the map. Even at my advanced age, I hate most mathematical notation, but I found this trivial.
 
Most authors are clueless about art, so publishers take over. Sometimes it works out, sometimes not. When authors do their own art, they often can't produce encapsulated PostScript files that are usable. That's because they are using My Friend's Braindead PostScript Generator or something equally support-free.

This was back in 1995, and the publisher (CRC press) didn't even accept EPS!

We were actually much better at doing art and layout in-house than most publishers at the time. We did a 4-page 4-color brochure around 1990 using plain PostScript color separations, transferring the files down to the printer on a 10Mb external hard drive. Nowadays, you can do that without much fuss at any Kinkos, but back then it was a moderately big deal.

For illustrations in the SciAn manuals, we modified the window-drawing code to be able to produce an EPS file with nice fonts and toning for any UI window. This worked like a charm. Also, all of the preprints were prepared with TeX and EPS (I usually had to do the EPS mangling from whatever source).

Of course, it was even worse before. In 1984, we had to schlep a Kaypro down to use a serial cable to drive a Compugraphic optical typesetter. That was just nuts.
 
Thanks, all.

I have ordered the Eberly book. After I give it to him on Christmas, I will show him this thread and let him decide what route to take from there.

So further comments won't be wasted.
 
Thanks, all.

I have ordered the Eberly book. After I give it to him on Christmas, I will show him this thread and let him decide what route to take from there.

So further comments won't be wasted.

Since I first mentioned it, I'll offer to answer a few questions, if he has any.
 
is C++ the preferred language of games developers? I assumed they had some sort of super-special vector-graphic-based language.

I'm a game developer, working with multi-platform code. We currently use C++ for all cross-platform code, and the majority of platform-specific code. We use assembler for the parts where speed is most important, and various vector/shader languages for the really low-level renderer stuff.
 
I'd try and broaden his knowledge a bit by getting some maths skills. Any 3D game will have a huge chunk of vector algebra to contend with.
Also, learn a bit more about software design techniques, e.g. UML.
The problem with pure C++ programming is that more of it is being shipped to India or East Europe. What people really need is someone who can come up with the specification.
 
Still great comments.

And thanks, Epepke; I'll make sure he knows he can ask.

Got the book yesterday in the mail, btw. Also got him a short book called (something like): "Java In Easy Steps" just because I was in the bookstore, saw it, and remembered the comments here.
 
If the math is giving him the wileys, a book like 3D Math Primer for Graphics and Game Development is helpful. It assumes basic alegra, teaches vectors, matrices, and then gets into things like collisions, frustrum culling, quaternions, lighting calculations, etc.

If he is serious then he will need some reference book for the 3D graphics engine he will be using. I do all my 3D work in OpenGL, so I have

* OpenGL Reference Manual (API calls, basically)
* OpenGL Programming Reference (what you really need)
* OpenGL SuperBible (not too bad)

Someone else will have to recommend the appropriate books for DirectX.

Honestly, as a sometimes hirer of programmers, I have little interest in somebody who is skilled in a particular technology such as DirectX. That can be learned, easily enough. Technology changes fast enough that a programmer who is going to be with your company for more than 6 months, or a single production cycle, is just going to have to learn new APIs, etc. It's a given. I'm far more interested in somebody who understands solid programming practices. For example:

* Code Complete - for low level programming skills
* Design Patterns - often overemphasized, but chapter 2 in that book gives a great architecture for a complex piece of software. Really learning and understanding the techniques used will allow a programmer to write robust, extensible code.
* Effective C++ - or whatever the equivelant is for his language of choice. C++ is a professional language, and you have to know it's in's and out's.

I'm not in games, I produce other 3D software, so what I write may not apply, but in general I only hire people who know how to program, and program well. In the last 10 years I've gotten exactly 1 phone call saying my code crashed, and I expect the same from anyone who works for me. If you can do that, and learn a new API quickly, you have a job. So to me books like the above are more important than, say, 3D Engine Design, though I certainly understand the appeal of the latter.

With that said, if he is interested in 3D development, it can take a while to really understand what a graphic engine is doing, and if you don't understand it you end up "programming by magic". Which means you keep trying things until they work. Problem is, what you do may not work in all cases, or it may only work on certain cards, etc. if he really wants to get it, it might not be bad to write his own graphics engine. Yes, it will be slow and limited, but a basic engine that allows you to draw triangles and view it from any camera position will pretty much guarantee that he really understands the math, as long as he didn't cut and paste a bunch of code and then monkey with it until it "works". Then throw the thing away, as trying to add lighting, etc., will just be a waste of time, and go back to using DirectX or OpenGL. It's just an idea, and certainly not required, but I found my understanding reached the "Aha!" stage when I did it.
 

Back
Top Bottom