Essential books for the hard-core game programmer
To develop games in 2018 is a way easier task that it was a few years ago, mostly due to engines like Unity which created a real ecosystem of tutorials, samples, and ready-to-use assets. However, to be able to go beyond what the engine delivers we need to study the fundamentals on which the engine itself is based upon, this allows us to better use them and create new functionality that at a first glance seems to be impossible to achieve.
Why books? Why not regular blog posts and tutorials like this one? One big pro of books is that they are in general way more comprehensive, you won't spend too much time looking for a material to study, you just open the book, read it and do the exercises.
Esta é a lista dos livros que considero essenciais para se tornar um desenvolvedor de grande competência e sem medo de experimentar suas próprias ideias.
I've also taken the liberty to tell you what books not to read, these are books that are recommended to right and left for some mysterious reasons, my opinion at least.
As you've probably heard, games involve lots of mathematics, and I agree. But what branches? Mathematics is such a broad topic, you can't go wrong with geometry and linear algebra, although of course fields like calculus, statistics, and discrete math can also be really useful.
3D Math Primer for Graphics and Game Development, Second Edition
As it's said in the title, this book is an introduction to mathematics in three dimensions utilized in graphics programming and game programming in general. There's a genuine effort to always connect the theory with practice in the light of someone interested in game programming, this is such a breath of fresh air for us used to dry math texts.
Brings really relevant subject like vectors, coordinates spaces, matrices and its transformations to the table.
The book lacks in its explanations though, some parts are detailed ad nauseam and in others the fundamentals are greatly sacrificed or the intuition is not constructed.
This was a book that required a great deal of dedication, on several occasions I had to look for complementing material on other books and sites to really understand what the author was trying to say, the exercises are also too silly.
Even with these cons, this book is really worth reading, you'll finish it knowing what are the most important and basic subjects of mathematics you should master if you want to learn game programming.
Practical Linear Algebra: A Geometry Toolbox, Third Edition
This is an excellent book to be read right after 3D Math Primer. It has the formalism and doesn't lack exercises as the previous one. But don't think that this is an inaccessible book, it's understandable, it doesn't do gigantic jumps like most books of its kind.
It's also not a book that follows the axiomatic approach (definitions, theorem and proof), thank god. It's always good to read a book on any math subject that tries to construct the intuition but is also aware that formalism is a necessity to always have us walking on solid ground.
Pretty much all the content here is useful if you want to conquer the mesmerizing realm of cg programming, but not only that, gameplay, AI and tooling as well.
It could have ventured into the more computational side of things knowing what are the main readers of the book.
Required: No, but really recommended
Geometric Algebra for Computer Science, Revised Edition
A relatively new subject that is somehow an alternative (or a complement?) to the traditional linear algebra. For us, peasants, that are not part of the graduation level mathematics, this is an avant-garde book, the promise is that understanding this we'll be able to understand a lot of difficult subjects like the intuition behind the 3D rotation using quaternions. I have yet to finish reading this book but it looks promising.
Game development in general
These are the books that will make you feel like a de facto game developer.
Game Engine Architecture, Second Edition
This has been the most cited book here in the site and in a lot of other places. The author has extensive real-world experience in the field and is currently the Lead Programmer at Naughty Dog Inc. Although this a large book, the level of detail and clarity is phenomenal, an up-to-date book that will probably stay relevant for many years. It's unlikely that you'll find so many topics of the highest interest of the engine programmer in such an accessible way as this book.
Even if the main focus of the book is on people interested in creating their own engines, the gameplay programmer will also benefit from reading it since you're necessarily running engine code even if you don't actually write it. To better use it you must know how it works. And not only that, on certain games what the engine offers might not be enough and with this knowledge in hands you can create that specialized alternative implementation that your game needs.
Game Programming Patterns
Here is another well-cited book, also has a free online version. With a practical approach based upon the classic Design Patterns book, this one defines and exemplifies a diverse set of game programming techniques that are useful on lots of different types of games.
It's a really didactic text accompanied by lots of diagrams, can be read from start to end, and also serves as reference material.
Game Coding Complete, Primeira Edição
This book contains extensive material on game making, making justice to its name. However, it's not a book that will make you a game developer in any way, it has no practical advice (at least they were not practical to me) in it. An also curious detail is that it's focused on the Windows APIs.
On several parts of the book, it simply recommends a private and expensive solution to a problem and doesn't develop the subject in an adequate manner. It's not an accessible book, when it's technical it's way too technical and doesn't develop the intuition and the whys
The really interesting parts of the book are the anecdotes in which the author shares his stories of horror and distress on the development of several games of the Ultima series, you can really feel the weight of a AAA production, it is not very fortunate sometimes.
Seen by gamers as one of the most intriguing parts of the puzzle, games AI are a very specialized and simplified form of general AI in the most academic definition. People really relate and like to think about the AI of games.
Programming Game AI by Example
Apesar de ter este título e capa genérica não se deixe enganar, este é facilmente um dos melhores livros sobre o assunto. Eu já o utilizei para implementar a inteligência artificial de um jogo chamado Connect 4, o clássico jogo da velha e diversas pequenas inteligências artificiais em jogos como pacman.
Despite having this title and generic cover, don't be fooled, this is easily one of the best books on the subject, especially for beginners. I've already used this book multiple times on real projects, it's always a pleasure to revisit this book.
This book teaches in a clear and succinct way a broad range of algorithms and techniques, starting with the basics like finite state machines, going through steering behaviors, sports simulations, pathfinding and goal driven agents.
The reading is good, concepts are written in depth and in a clear, easy to understand way. I wish more technical books were written like this one.
Required: Yes, absolutely.
A área queridinha de muita gente. Costuma ser também a área mais desafiadora e enigmática. Mas com boas leituras e um estudo planejado através de mini projetos a computação gráfica pode ser desvendada.
The darling field of a lot of game programmers. It's also the most challenging and enigmatic one. Using good references and a planned study via mini projects computer graphics programming can be unraveled.
Real-Time Rendering, Third Edition
Must read for anyone who whishes to understand how to code shaders and not only shaders but real-time applications (games?) in general. This book is accessible, fun and full of interesting examples. A perfect introduction to those who want to go deep in the world of modern graphics programming, even if the book is from 2008!
Beyond explicit rendering and visual effects, the book also deals with tools that are necessary to do these things in an optimal way like culling, spatial data structures, optimization of the graphics pipeline, among other things.
Fundamentals of Computer Graphics, Fourth Edition
This is not a good book, what impresses me the most is the sheer quantity of professors using this as their textbooks on computer graphics courses. The probability of someone failing to understand right in the first concepts, first pages, being introduced is really high. The math in it is incredibly dense and the practical aspect goes in lightning speed, rendering itself useless.
You'll need to research and study a lot of the why of things since the intuition is never truly developed.
- must read game development books
- game programming books
- how to learn computer graphics
- how to learn game AI