flipCode - Game Development Books [an error occurred while processing this directive]
Game Development Books
         Edited by Kurt Miller


'What are some good books?', is one of those questions that seems to pop up fairly often over on our game development forums. To address this, we've put together an article, featuring responses from several developers, on some of the books related to development that they have on their shelves. Many thanks go out to everyone who participated. And now, on with the show...


Nathan Whitaker, EA
Heres the contents of my humble bookshelf:

"Computer Graphics Principles and Practice", Foley, Van Dam, Feiner, Hughes.
This was the first book i got relating to 3d graphics and even though it is dated, it is still a good solid reference.

"Inner Loops:A Sourcebook for High Performance 32 Bit Software Design" - Rick Booth
This book is also dated and large sections (like the 486 optimization section) are obsolete. However, for anyone new to the inner workings of the PC, this book is an excellent introduction. The section devoted to the perils and joys of the cache is excellent and applicable to any processor that utilises a cache.

"Graphics Gems"
Once again i've had these books for a long time and a lot of the 'gems' are a little dated/obsolete. However, I still find myself turning their pages occasionally.

"Game Programming Gems": Editor Mark Deloura.
This is the newbie on my shelf and truly is an excellent book. The topics in this book range from STL programming to Shadow Mapping to Fuzzy Logic. The 'gems' are all well written and most encompass fairly new techniques.

"Advanced Graphics on the BBC Model B Microcomputer":
I've never programmed or wanted to program a BBC model B. I keep this book for no real reason other than to confuse my workmates. :)

As for the rest of my bookshelf - I have a lot of math and physics texts. Even in this day of incredible 3d hardware/API's i still find these are my most abused books.





Phil Carlisle, Team 17 Software
"Introduction to Algorithms" - Thomas Corbin(sp?) MIT press - excellent algorithms book. Not really just an introduction :)

"3D Game engine design" - Dave Eberly - good book, but too maths heavy for me, and doesnt review alternative approaches

"Real Time rendering" - Moller and Haines - Excellent book, possibly THE most recommended book for 3D I can think of.

"3D Computer graphics" (cant remember the exact title) - Foley and Van Damme - Its out of date, hard to read, not recommended.

"Texturing and Modelling", a procedural approach - Musgrave et al.. - brilliant book for landscapes and procedural textures.

Those are my main books.. Ive also got a whole shedload of others relating to 3D and graphics programming.





Tony Cox, Microsoft
"Programming Applications for Microsoft Windows" by Jeffrey Richter.
Note: Earlier editions of this book were called "Advanced Windows". It's an essential for any serious Windows programmer. The chapters on thread synchronisation and memory management are particularly invaluable, but the whole volume is packed with useful information.

"Essential COM" by Don Box
If you're serious about component-based application building on Windows, then this book is a must. It covers lots of theory and really leaves you with an understanding of the 'why' as well as the 'what' of COM. I keep coming back to this one.





Steven Woodcock, GameAI.Com
I've already built such a list of what I've personally found useful; it's online at www.gameai.com/booklist.html.




Tom Forsyth, Muckyfoot
Hmmm... I don't tend to use many books as such - mostly I find what I need online. A quick list (please excuse spelling of authors).

-Kernigan & Ritchie - "C: for reference".

-Stroustrup - "C++: for reference".

-Foley, van Dam, Feiner, Hughes - "Computer Graphics Principles & Practice": always worth checking you're not reinventing the wheel.

-"Graphics Gems" + "Games Gems": some great stuff in these things.

Er... and that's about it really. Sorry it's such a boring list. :-)





Dave Eberly, Magic Software
I have a web page listing the books in my library that I use the most: http://www.magic-software.com/Books.html However, this page does not list summaries of what is good/bad about the books. In the list below, my comments are in [...]

Game Programming:

(1) 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics
David Eberly
Morgan Kaufmann Publishers, San Francisco CA (2000)
ISBN 1-55860-593-2
[Shameless plug. Heavy on the math (a plus in my opinion, a negative in some others' opinions). Deficient in intuitive explanations and needs a few more pictures to illustrate the ideas. The source code is more extensive than what you find in most books with source. This book is not for the beginner.]
(2) Real-Time Rendering
Tomas Möller and Eric Haines
A. K. Peters, Ltd., Natick MA (1999)
ISBN 1-56881-101-2
[Well written. A good source of references to the literature. The algorithm descriptions are nicely done, but it may be a bit difficult to implement them directly from what is written.]
(3) Game Programming Gems
Mark DeLoura (editor)
Charles River Media, Inc., Rockland MA (2000)
ISBN 1-58450-049-2
[A nice collection of current topics. The plus of this book is that it includes topics that are not graphical in nature, for example, resource management, networking, AI.]
Computer Graphics:

(1) Computer Graphics: Principles and Practice (second edition)
James Foley, Andries van Dam, Steven Feiner, John Hughes
Addison-Wesley Publishing Company, Reading MA (1991)
ISBN 0-201-12110-7
[Good general reference to get acquainted with graphics. Not particularly helpful for coding.]
(2) Graphics Gems series
I: Andrew S. Glassner (editor) Academic Press, San Diego CA (1990) ISBN 0-12-286166-3
II: James Arvo (editor) AP Professional, Boston MA (1991) ISBN 0-12-064481-9
III: David Kirk (editor) Academic Press, San Diego CA (1992) ISBN 0-12-409670-0
IV: Paul S. Heckbert (editor) AP Professional, Boston MA (1994) ISBN 0-12-336155-9
V: Alan W. Paeth (editor) AP Professional, Boston MA (1995) ISBN 0-12-543457-X
[Lots of neat algorithms that are useful. However, lots of algorithms that are of no use. Be careful about the source code. Many of the implementations are flawed. I use the books for the ideas, not the source code.]
(3) Curves and Surfaces for Computer Aided Geometric Design: A Practical Guide (second edition)
Gerald Farin
Academic Press, Inc., San Diego CA (1990)
ISBN 0-12-249051-7
[In my opinion, the best book on curves and surfaces. Somewhat mathematical, but packed with information.]
(4) An Introduction to NURBS with Historical Perspective
David F. Rogers
Morgan Kaufmann Publishers, San Francisco CA (2000)
ISBN 1-55860-669-6
[An excellent "engineer's view" of NURBS. This is the type of book you can read and easily implement curve/surface algorithms.]
C++ Programming:

(1) The Annotated C++ Reference Manual
Margaret A. Ellis, Bjarne Stroustrup
Addison-Wesley Publishing Company, Reading MA (1990)
ISBN 0-201-51459-1
[THE reference.]
(2) C++ Primer (second edition)
Stanley P. Lippman
Addison-Wesley Publishing Company, Reading MA (1991)
ISBN 0-201-54848-8
[Good for learning the C++ paradigm.]
Numerical Methods:

(1) Numerical Recipes in C: The Art of Scientific Computing
William H. Press, Brian P. Flannery, Saul A. Teukolosky, William T. Vetterling
Cambridge University Press, Cambridge MA (1991)
ISBN 0-521-35465-X
[I use this for the ideas, not for the source code.]
(2) Numerical Analysis (third edition)
Richard L. Burden, J. Douglas Faires
Prindle, Weber, and Schmidt, Boston MA (1985)
ISBN 0-87150-857-5
[Good description of standard numerical methods.]





Jake Simpson, Raven Software
"The Black Art of 3d game programming" - a great all round primer if a little dated now

"Michael Abrashes Graphics Programming Black book" - excellent for 3d in general, plus optimising code in both assembler and C

"Practical Alogorithms for Programmers" - Binstock/Rex - very handy for looking up some different ways to approach stuff

"The OpenGL Redbook" and "bluebook" - the reference guide and programmers guide to OpenGL

And that's about it. I tend to do most of my research on the web.





John Faulkenbury
The books that I use I'm sure will be submitted a hundred times, but here we go anyway... :)

"Computer Graphics : Principles and Practice", Second Edition in C
by James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes

"3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics"
by David H. Eberly

"The C Programming Language"
by Brian W. Kernighan, Dennis M. Ritchie

"Writing Solid Code"
by Steve Maguire

"The Mythical Man-Month : Essays on Software Engineering"
by Frederick P. Brooks Jr





Warren Spector, Ion Storm
I'm afraid that, while there are dozens of books out there purporting to be about game design and development, there aren't a lot of GOOD books available. Of the ones that do exist, I find the following most interesting:

"The Art of Computer Game Design" by Chris Crawford
This was written in 1984 but remains one of the best books out there on game development. You have to figure out what's still relevant, what reflects Chris Crawford's unique worldview and so on to get at the real meat but there's plenty to be gleaned from this book.
"Hamlet on the Holodeck" by Janet Murray
Though sometimes overly enamored with the online world, this book is one of the few serious studies of what happens when interactivity meets narrative. Much of the vocabulary (such as it is) of immersive simulation games comes right from this book. A must read.
"Secret of the Sages 2000" by Marc Saltzman
Kind of self-serving, in that I'm quoted in this book but, that aside, Saltzman talked to a BUNCH of developers in putting this book together so you get a nice variety of views from folks on the inside. Can't really argue with that.
"Behind the Scenes at Sega: The Making of a Video Game (Secrets of the Games)" by Nicholas Lavroff (?)
This is a nifty little volume about the making of a console game. It seems aimed at younger, non-pros but it's chock full of stuff that this PC developer found fascinating, if for no other reason than the development model and methods outlined are so different than what I'm used to. Really quick read and I learned some stuff. Worth a look.
"Peopleware" by Tom Demarco and Timothy Lister
This is about the best book I've read on the subject of creating and maintaining culture. It's directly relevant to game developers, especially those without a lot of HR or management experience. Nothing specifically about game design or development but a lot of great stuff about people, software, corporate culture and so on - the stuff a lot of game development start-ups get completely wrong.
"The Mythical Man-Month" by Frederick P. Brooks, Jr.
Everyone involved in software development should read this book. End of story.
"The Interactive Book" by Celia Pearce
This is a huge overview of the interactive revolution, published back in 1997 (a lifetime ago in this business...). There's a lot of stuff here that's out of date and much that wasn't remotely relevant even when the book came out. But every once in a while, Pearce cuts right to the heart of things in ways that caught me off guard. Her comparison between games and music is as enlightening as it is surprising. Her understanding of the primacy of player experience is profound and something from which a lot of game developers could learn. And it's clear that Pearce has thought about and studied film, literature and the like and can apply what she knows to interactive stuff in ways that aren't stuffy or overly academic. The structure of the book is odd -- it's alphabetical, with lots of hyperlink-like things -- which disturbed me, at first. Ultimately, I read The Interactive Book with a bunch of size-differentiated, color-coded bookmarks to tell me where I was, where I was going to jump to next, where after that and so on. If you can wrap your mind around the fact that the book's structure is totally weird and there's a lot of stuff that just isn't relevant at all, there's some really solid material in here. Let's just say I have pages and pages (and pages) of notes from my reading of this book. And there aren't many books that inspire me to take notes at all.
I'm also a huge, huge supporter of Game Developer Magazine and the Gamasutra website. Both offer an inside look at game development. You have to be a regular reader of both the magazine and the website, both of which are free. No excuses!

Hope this helps.

Warren





Kim Pallister, Intel
I have a HUGE number of books on my shelves. One of the priveleges of working for company that supports it's employees well. (Unless you're at a cash strapped start up, if your company isn't willing to spend money to make you smart, that's a good sign that it's not the best place to be and grow!)

Anyhow, a more relevant point is which books are on the shelves that get referenced often, or better yet, never get closed! Here's a short list of books that qualify by that metric.

"Computer Graphics: Principles and Practice"
The tomb. Most people recommend this as the 'must have' text. I'd say that's only true for more advanced folks. Real-time Rendering or one of the many '3D game programming in a day' type books would be a better starting point for most beginners. However, CG:P&P has plenty of stuff on the 'can't do it in real time yet' list for forward thinking.
"Real-time Rendering"
Great book with good clear summaries of all techniques used in modern day 3D engines.
"Game Programming Gems"
lots of useful tips, plus good explanations of standard techniques.
"Graphics Gems" (all of them)
When you encounter that weird "I need a way to find a quick way to intersect A with B, and I'm sure I'm the only one that's ever done this" problem, go here. It's been done, and the answer's in one of the books.
"Texturing and Modeling"
A procedural approach (mainly because I've been looking at this area a lot lately): A little on the acedemic side, but lots of food for thought. I'm convinced that procedural modeling is going to become increasingly important as we move forward, and this is one of the best texts available.
"Numerical recipes in C"
Like graphics gems, your answer is in here for whatever funky math problem you have.
Also a bunch of past GDC and Siggraph proceedings. It's too bad the GDC ones aren't as well organized as the Siggraph ones. There's gold in there, but it's hard to find sometimes.

Other, non-programming related, but good nonetheless:

"Lord of the Rings"
Read it when I was 13, went and re-read it recently at 31. Well worth re-reading if you haven't visited it in a while
"Snowcrash"
OK. I may have been the last programmer on earth to read this, but if I wasn't, then the remaining ones should do so. Great read.
"Papillon"
A great escape read. Good book to bring on a vacation and read by the pool/beach




Once again, thanks to everyone who responded with their lists! If you're a professional developer interested in sharing your book recommendations in an article such as this, please contact me. We'd like to do a sequel to this at some point.



[an error occurred while processing this directive]