
Books For Game Developers - potomak
http://mrelusive.com/books/books.html
======
eropple
This list is interesting, but it sort of feels like missing the point for a
list of books for _game developers_ \--that is, people making games, not
people making game _engines_ \--to be ignoring anything to do with
characterization, storytelling, linguistics and spoken construction, cultural
dynamics, psychology, sociology, history...the stuff that turns a game from
Shootzombiebecauseitsthere to something like _The Last of Us_. Eye candy is
nice, but you don't need a hell of a lot of technical proficiency if you can
make people care. _Papers Please_ isn't pulling every last bit of oomph out of
your GPU, but it's pulling strings in tons, _tons_ of players. _Saints Row The
Third_ and _Saints Row IV_ look 2-3 years old even with all the dials cranked
all the way up, but I'm playing the hell out of them (and not even looking at
_Grand Theft Auto 5_ ) because they're _smart_ games with great dialogue and
the self-awareness that makes not having a fully-standing third wall, let
alone a fourth, completely work.

To me this list is like giving an aspiring writer a copy of _Warriner 's_.
Sure, that's part of it, but there's so, so much more important about making
games than being a math grognard.

I'd rather game developers get--and _understand_ \--Shakespeare than Graphics
Gems.

~~~
modernerd
Perhaps a separate list of books for "Game Designers" rather than developers
would be helpful?

\- A Theory of Fun [http://theoryoffun.com/](http://theoryoffun.com/) (Raph
Koster's blog is also excellent:
[http://www.raphkoster.com/](http://www.raphkoster.com/) )

\- Level Up!
[http://eu.wiley.com/WileyCDA/WileyTitle/productCd-047068867X...](http://eu.wiley.com/WileyCDA/WileyTitle/productCd-047068867X.html)

\- Game Design Theory
[http://www.crcpress.com/product/isbn/9781466554207](http://www.crcpress.com/product/isbn/9781466554207)

\- Game Design Workshop
[http://www.crcpress.com/product/isbn/9780240809748](http://www.crcpress.com/product/isbn/9780240809748)

~~~
ijk
I'd add: \- Rules of Play [http://mitpress.mit.edu/books/rules-
play](http://mitpress.mit.edu/books/rules-play) \- Challenges for Game
Designers
[http://books.google.com/books/about/Challenges_for_Game_Desi...](http://books.google.com/books/about/Challenges_for_Game_Designers.html?id=wzAJLwAACAAJ)
\- The Art of Game Design
[http://artofgamedesign.com/](http://artofgamedesign.com/)

------
stewbrew
I don't quite understand why somebody compiles a list of books that is less
informative than the results list of a book search engine -- no reviews of the
books, no personal remarks etc.

~~~
hatu
Yeah I wish there was some actual information, now it seems like you're
expected to read every book on the list in some order or something? Just
searching on Amazon gives you more info.

------
anatoly
Are there good resources out there for experienced programmers who want to
write games for fun? As someone who last wrote simple games 20 years ago, I'm
a little bewildered as to where to begin - should I study OpenGL? Some kind of
engine/toolkit above it? What do people use for sound? The world is all
different and the past is another country etc.

~~~
hatu
It depends on what you're interested in. If it's creating a engine from
scratch then C++ and OpenGL or DirectX but if you just want to start
programming games from day 1, I recommend getting the free version of Unity3D.

~~~
eropple
Even if you're not interested in creating an engine from scratch for a
production game, I recommend you spend a few weeks learning OpenGL (modern
OpenGL--not the fixed-function pipeline). Unity3D is great for some stuff, but
understanding the core of what you're doing is valuable.

~~~
anatoly
Thanks! How do I learn modern OpenGL specifically - is there an authoritative
book everyone knows, or a very good tutorial?

~~~
eropple
Haha...that's the hard part. I wish I had a good source for this, but,
honestly? I learned through the guidance of a good friend (ex-nVidia). I
wouldn't have gotten there without it, but at this point I can reason about
(parts of) OpenGL as it "should" be reasoned about. Not all of it by any means
--there is a lot of deep magic there--but I have the foundation to understand
what other engines and tools are doing.

------
defdac
"Physically based rendering" have a second newer edition:
[http://www.amazon.com/Physically-Based-Rendering-Second-
Edit...](http://www.amazon.com/Physically-Based-Rendering-Second-
Edition/dp/0123750792)

~~~
jnadro
"Real-Time Rendering" also has a newer edition: [http://www.amazon.com/Real-
Time-Rendering-Third-Tomas-Akenin...](http://www.amazon.com/Real-Time-
Rendering-Third-Tomas-Akenine-Moller/dp/1568814240/)

Also, if people are looking for an even bigger list of graphics books the
Real-Time rendering blog has a comprehensive list:

[http://www.realtimerendering.com/books.html](http://www.realtimerendering.com/books.html)

------
ohazi
I cannot speak more highly of _Game Engine Architecture_ by Jason Gregory[0]
as an introductory text.

It's extremely readable for an 800 page textbook (I actually read it cover to
cover), and covers a wide range of topics including basic software best
practices and challenges unique to game development, introductory 3D math,
rendering, animation, collisions / physics, and basic gameplay. The author
speaks from a wealth of experience from having built several real game engines
in the industry.

[0] [http://www.amazon.com/Game-Engine-Architecture-Jason-
Gregory...](http://www.amazon.com/Game-Engine-Architecture-Jason-
Gregory/dp/1568814135/)

------
kodeninja
Interestingly, the most recent books mentioned in the list are from 2007 (e.g.
GPU Gems 3)! What are some of the latest books in game programming that are
really good, especially for mobile?

------
angersock
I've read or owned several of those books at one point or another. Some
opinions:

The _Game Programming Gems_ series has a wonderful variety of articles, and
even though many of the graphics tricks are no longer super useful the
software engineering and exposure to how other people think about systems is
very useful.

The O'Reily _Physics for Game Developers_ is kind of lacking--it's more a
cookbook than anything else; the Eberly books are a much better use of time,
and actually explore the math much better.

 _Computational Geometry in C_ by O'Rourke is wonderful, but a bit academic
for almost any game development purposes.

 _Geometric Tools for Computer Graphics_ has a permanent place on my desk, and
was very useful when doing graphics work as well as CAD software stuff. It
actually bothers with some of the rigor of the linear algebra you'll use in
graphics. Not listed but _An Integrated Introduction to Computer Graphics and
Geometric Modeling_ by Goldman does a superb job of the mathematics behind
projective geometry for graphics, and is probably one of the best ways I've
ever read for getting the real reason _why_ we do the math we do. He's
referenced in the _Geometric Tools_ book.

 _Write Portable Code_ has some great insights, but if you've had to deal with
cross-platform code for more than a couple of years you probably won't find
too much new. For a beginner it's invaluable.

CLRS _Introduction to Algorithms_ is very cool and all, but as Johnathon Blow
pointed out in a talk the fact is that for game development you are better off
using the dumbest, most straight-forward data structures you can. There are a
lot of great things in there, but the sort of workhorse stuff you'll use in
games (BSPs, quad- or octrees, hash tables, A-star, etc.) is either already
made for you or is better covered elsewhere. Looks impressive on the bookshelf
though.

 _AI Game Development_ was a very long, very interesting read, but tended to
be somewhat academic. _Programming Believable Characters For Computer Games_
is much better from a practical standpoint, surveying a large number of AI
techniques and the implementation of examples for each one (very much a sort
of "Seven AI Architectures in Seven Weeks" kind of affair).

~

Not on the list, but two I'd really recommend:

 _Game Scripting Mastery_ by Varanese is basically "Compiler and Interpreter
Design and Implementation for High Schoolers". It's a massive tome, and covers
both Lua integration and then rolling a scripting engine from scratch (lex and
yacc and all).

 _Game Coding Complete_ by McShaffry is utterly fantastic. Another tome (just
shy of 1000 pages), it goes over how to structure a game, covering a lot of
important but banal stuff like resource management and passing Microsoft
Windows certifications and project management and the like. It's also written
in a very entertaining manner, and has lots of helpful anecdotes about why
things should be done a particular way--often by counterexample of what
happens when they weren't.

~

In general, the various _Gems_ series are all worth reading. Morgan Kaufmann
does a pretty solid job, and tends to have a lot of math (if that's your
thing). Charles River Media is mostly good.

Premier Press Game Development varies widely in quality--some of the books are
amazing, many are meh, some are garbage.

------
_random_
Couldn't find free download links... Just kidding!

~~~
jnadro
Some of the books have been officially released and can be found at the
following links:

-GPU Gems [http://http.developer.nvidia.com/GPUGems/gpugems_part01.html](http://http.developer.nvidia.com/GPUGems/gpugems_part01.html)

-GPU Gems 2 [http://http.developer.nvidia.com/GPUGems2/gpugems2_part01.ht...](http://http.developer.nvidia.com/GPUGems2/gpugems2_part01.html)

-GPU Gems 3 [http://http.developer.nvidia.com/GPUGems3/gpugems3_part01.ht...](http://http.developer.nvidia.com/GPUGems3/gpugems3_part01.html)

The source code in the following books can be pretty dated (assembly level
shader language) but the actual articles can be valuable.

-Direct3D ShaderX: Vertex and Pixel Shader Tips and Tricks [http://tog.acm.org/resources/shaderx/Direct3D.ShaderX.Vertex...](http://tog.acm.org/resources/shaderx/Direct3D.ShaderX.Vertex.and.Pixel.Shader.Tips.and.Tricks_Wolfgang.F.Engel_Wordware.Pub_2002.pdf)

-ShaderX2: Introductions and Tutorials with DirectX 9.0 [http://tog.acm.org/resources/shaderx/Introductions_and_Tutor...](http://tog.acm.org/resources/shaderx/Introductions_and_Tutorials_with_DirectX_9.pdf)

-ShaderX2: Shader Programming Tips and Tricks with DirectX 9.0 [http://tog.acm.org/resources/shaderx/Tips_and_Tricks_with_Di...](http://tog.acm.org/resources/shaderx/Tips_and_Tricks_with_DirectX_9.pdf)

