Posting this question here rather than SO because of it's relevance with game development.

My dilemma is this: It is currently my summer vacation after my first semester of CompSci and I have learned enough C++ to actually get started in a little more advanced stuff.

I don't want to start games programming yet until I teach myself linear algebra, trigonometry, etc. However, I do want to know the fundamentals, the theory and the methods used in game programming!

I thought I had some decent books in the college library, but they were horribly outdated with books on game programming or game engines or game/graphic (topic here) from the early 90s to 2002.

Knowing the volatile state of computer technology, I figured grabbing knowledge on cutting-edge technology from a decade-old book isn't a good idea. Amazon itself leaves me clueless as to what book I want.

What I don't want: A platform-dependent book. I'm not out to learn OpenGL, Direct3D or any specific API. I just want to know things like tessellation, how the GPU handles stuff, what goes on under the hood and what kind of raytracing and radiosity methods there are. The basics, the core concepts- those kinds of things.

I hope that's clear! Books, resources are all welcome. Though I much prefer a book over a website!


closed as off-topic by Anko, Seth Battin, MichaelHouse Jun 9 '15 at 22:28

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about "how to get started," "what to learn next," or "which technology to use" are discussion-oriented questions which involve answers that are either based on opinion, or which are all equally valid. Those kinds of questions are outside the scope of this site. Visit our help center for more information." – Anko, Seth Battin, MichaelHouse
If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Wait... They teach us linear algebra in elementary and trig in highschool... \$\endgroup\$ – jcora Dec 9 '11 at 11:01

These are by no means "exhaustive" for games, but they're good books for computer graphics in particular, so here's a start.

Fundamentals of Computer Graphics

Peter Shirley, Steve Marschner

Amazon Link (Third edition) | Book Website (Second Edition)

Fundamentals of Computer Graphics
(source: images-amazon.com)

This book covers a ton of information on many areas of computer graphics. "Online" concepts (like real-time) as well as "offline" (like global illumination) are covered, as well as math, shading, the graphics pipeline, textures, data structures, light and color theory, mesh concepts, etc. It's definitely not geared specifically towards games, but rather computer graphics concepts in general. The book isn't written in any specific programming language, but rather the language of math.

Real-Time Rendering

Tomas Akenine-Moller, Eric Haines, Naty Hoffman

Amazon Link (Third Edition) | Book Website (Third Edition)

Real-Time Rendering
(source: images-amazon.com)

This book is geared primarily towards "online" (real-time) graphics methods. It covers the graphics pipeline and related math, shading and texturing, lighting, screen-space effects, NPR, meshes and curves, and some acceleration techniques. The chapter on intersection test methods is worth the cost of the book alone, as it's a fantastic reference for testing collisions between just about any type of bounding volume you'd ever want to use. It discusses shaders, where they fit into the pipeline, and what they can be used for (which is essential knowledge in modern graphics work) but you certainly couldn't learn shader programming in any language from this book. It's a high level overview of real-time techniques, not a programming book. Again, the language used in this book is math.

Game Engine Architecture

Jason Gregory

Amazon Link (First Edition) | Book Website (First Edition)

Game Engine Architecture
(source: gameenginebook.com)

I would add this book to your list if you're interested in graphics specifically as they relate to games. Gregory covers large game engine systems from a 10,000 foot view, occasionally giving you code samples in C++ to illustrate his points, but mostly it's an overview of what the major engine subsystems are, how they work, how they fit together, and what things you should think about when designing/building them. 3D math and a C++ refresher (with a specific focus on game programming) is covered, as well as resource managers, simulation loops, input devices, debugging techniques, rendering and animation engines, collisions and rigid body dynamics, and gameplay systems. The only two major engine subsystems missing from this book are audio and networking, which is honest about leaving out because the book is already pushing over 800 pages. It's a great read, I'd highly recommend it.

  • 2
    \$\begingroup\$ +1 for "Realtime Rendering" - very recommendable graphics book. Additionally "Game Engine Architecture" should give You the overview You desired (in opposite to technical details) \$\endgroup\$ – Dave O. Jul 17 '10 at 23:20

If you're interested in a round-trip tour of everything rendering, Real-Time Rendering is your best bet.

In terms of math, there are several good introductory books, ranging from the more gentle 3D Math Primer for Graphics and Game Development to the broader Mathematics for 3D Game Programming and Computer Graphics.

I also highly recommend Game Engine Architecture if you're interested in that route; it's not an in-depth book on the matter (nor could it be), but it's a solid foundation across a broad range of topics. For a beginner I would consider it invaluable.

  • \$\begingroup\$ Please note that "round-trip...of everything" is limited to everything that deals with graphics. No game logic, physics, etc. \$\endgroup\$ – Dave O. Jul 17 '10 at 23:24
  • 1
    \$\begingroup\$ @Dave - That's probably why he said "everything rendering." :) \$\endgroup\$ – Neverender Jul 18 '10 at 0:18

Not the answer you're looking for? Browse other questions tagged or ask your own question.