Good General CS Books, Game Dev Books?
July 29, 2011 7:01 PM   Subscribe

What books would you all recommend for a Computer Science student interested in making games?

A good friend of mine is a CS student and is extremely interested in working in the game industry someday. I happen to have a little experience making games from an internship I've been at this summer, so when I come home, me and him intend to collaborate on a simple game (in Python using the Pygame library for now).

So I'd like to get him a book or two to help him get started with game development. Also, I'd be interested in any really good "general CS" books; I sort of feel like CS hasn't quite "clicked" for him yet, so I'd love to find something that kind of ties the field together and presents a good case for how the concepts we learn in class fit into the real world, and maybe a bit on some of the more interesting problems associated with it. I don't know if that exists, but if it does, I'm confident someone here will know what it is.

Thanks all!
posted by DMan to Technology (6 answers total) 11 users marked this as a favorite
I can't speak to game development (it's not what I do), but in terms of general CS what you ask for is a pretty tall order -- "the concepts we learn in class" is a very broad category and thus a lot to tackle in a single tome. I would suggest, however, some non-fiction and well-researched fiction books, some of which you may have heard of:
  • The Soul of a New Machine by Tracy Kidder -- non-fiction about the engineering team designing an Eclipse machine for Data General. Happens to feature Tom West, who's our own mod's dad.
  • The Mythical Man Month by Fred Brooks -- non-fiction about software engineering and project management. A staple book and highly recommended read for anyone in either of those fields.
  • Cryptonomicon by Neal Stephenson -- fiction about a cryptography, math, and World War II. Sort of. It is fiction so take that for what it's worth, but it's a great story and does contain well-researched aspects of reality.
  • The Art of Computer Programming by Donald Knuth -- non-fiction compendium (in several volumes) about algorithms. I've never read the entire thing (in fact, it's unfinished), but it's one of those things you should have at least looked through. If you read the entire thing and get it all, Bill Gates will personally give you a job. That may not be a selling point, but there you have it.
Just as a general word of advice about your larger topic, a lot of stuff won't click for your friend (or you, it sounds like you're both students) until he's gotten his feet wet actually programming a real system or two or ten. I've been programming for over a decade, I know what a context-free grammar is and what Backus-Naur Form looks like from school, but I'd never really needed to dust off those memory banks until I created a grammar and parser a few months ago.
posted by axiom at 8:25 PM on July 29, 2011

To clarify, we are both students, I'm a little farther along than he is, and I'm just finishing a summer internship which has really cemented some of the stuff I've learned.

I agree it's a tall order, thanks for the recommendations. I think maybe th word I was looking for was "inspirational"', although "this is what CS in th real world is like" is great too. I'm going to check out the books you mentioned for my own knowledge, as well.
posted by DMan at 8:30 PM on July 29, 2011

Ray Wenderlich has a lot of easy to understand tutorials for building games in iOS (iPhone, iPod Touch, iPad). He just released a book that might be good.

Maybe iOS games are too specific, but if your friend has a Mac, he can use the iPad/iPhone simulators to test the games he programs.
posted by backwards guitar at 8:31 PM on July 29, 2011

"The Trial", by Kafka. Not joking.
posted by thelonius at 9:57 PM on July 29, 2011 [2 favorites]

There are a few topics in CS, though seemingly esoteric, are actually very helpful for anything you do. Compiler design seems to be the most agreed upon *good area* to study, if you want complete benefit. This will teach you about parsing input, finite state diagrams and good old fashion slogging through dense material to learn.

On compiler design the best book I have encountered is the Dragon Book (Compilers: Principles, Techniques, and Tools , I had to google to find its real name).

For other basic CS it is always good to know how the beast you are trying to command works. I got a lot of benefit from Write Great Code Volume One. Though it took me a month to actually read. A basic understanding of computer graphics and hardware can always be worth a shot. Look into the red book (Compilers: Principles, Techniques, and Tools) , it is really dense, but it works from base principals so you expect to learn a lot.
posted by adventureloop at 4:49 AM on July 30, 2011

I like most of what I've read by people who have worked at iD software. I don't recall exactly which books, something might come to mind later, but this one is good: Michael Abrash's Graphics Programming Black Book:

Get him to take a course in graphics programming ASAP!
I liked Physically Based Rendering - from Theory to Implementation:
And Real-Time Rendering:
These aren't really well written books per se, not for private reading, but they're workable. They are REALLY good course material however.

I have really liked browsing through the GPU Gems series:

Game Programming Gems could be good too.

Re. adventureloop's comment: The Dragon compiler book is ... not everybody's cup of tea. IMO it's one of the most badly written books I've ever encountered :) Absolutely unpedagogical. I deeply respect those who can make use of it; It is a personal thing. What I mean is that, yes, he should check it out, but if it doesn't click, it's just not his style of book.
posted by krilli at 6:33 AM on July 30, 2011

« Older Where did I see this special handshake that ended...   |   So many Post-Its, so little productivity! Newer »
This thread is closed to new comments.