Top Games Programming Books

I have collected on this page the books I believe are the best books currently available for games programmers. I used to list all the books I had bought but I decided it was more useful just to list the best books. I have many shelves of games related books but only those below get looked at on any regular basis.

Games Programming Books

Game Engine Architecture - New (March 2010)

For more details about this book or to purchase it follow one of these links: Amazon.co.uk Amazon.com Amazon.ca Amazon.de

This is the first book I have seen that actually aims to be a complete text book for people studying games programming and it does it very well. It covers all areas of games programming and is an  invaluable reference. It is a large book as it has an awful lot to cover and so in places it does not go into much low level detail. I was a  little disappointed with this to start with but in fact it is not what  this book is about. This book is more to do with presenting a complete  collection of the various topics and introducing solutions across the  whole field of games programming. You dip into it to find out how things are done and then you can follow the references if you wish more code  level detail. While this is an expensive book I would still highly  recommend it.

Game Coding Complete - 3rd Edition Now Available

For more details about this book or to purchase it follow one of these links: Amazon.co.uk Amazon.com Amazon.ca Amazon.de

The third edition of this book is now available. It is just as good as before and so remains my number one rated games programming book. I am currently reading it from the start and making notes as I go through - it is full of brilliant tips for beginners up to advanced games programmers. I particularly like the description of a game structure that he develops throughout the book. This is an area that has has little coverage (perhaps due to developers not being allowed to talk about code at that level) and he describes it very well.

Review of second edition: I would suggest everyone interested in games development gets this book. It covers all areas of game development from an author who has worked in the industry (Ultima series of games). As well as describing traditional areas of a game like 3D graphics he also describes areas often missed by other books e.g. resource management, UI, main loop, loading ,caching etc. He introduces areas with chapters like: 'Dumb Stuff all game programmers should know' and '2D stuff every games programmer should know' and the level of humour and anecdotes is just right. I am amazed at how much insider detail he gives out about games he has worked on - I would dare not do that myself because of all the NDAs but he has obviously got approval to do so. Most of the book is not related to any specific platforms although where he does go into more detail it tends to be DirectX and Win32 programming. This is the kind of book you can use for some years as you develop your games programming skills.

Game Programming Gems (1,2,3,4,5,6,7,8)

 

For more details about these books or to purchase them please follow one of these links: Gems 1:: Gems 2:
3:   4:   5: 6: Gems 7: Gems 8:

The Game Programming Gems series of books are all invaluable books containing chapters dedicated to the programming of different areas of a game from AI to Graphics. Each chapter is written by an experienced game developer revealing their techniques. I would perhaps not recommend these books for the beginner games programmer but for the more advanced games programmer they are a must. Everyone should have these on their shelves.

ShaderX7: Advanced Rendering Techniques

 

For more details about this book or to purchase it follow one of these links: Amazon.co.uk Amazon.com Amazon.ca Amazon.de

Wolfgang Engel is the author to read when it comes to shaders. He has written and edited a number of excellent books on shaders. ShaderX7 is the latest compilation of techniques from professional game programmers covering many areas of advanced graphics programming. The book contains sections on geometry manipulation, rendering techniques, image space, shadows, environment effects, global illumination, handheld devices, 3D engine design and beyond pixels and triangles.

C++ and Object Oriented Design

Accelerated C++

For more details about this book or to purchase it follow one of these links: Amazon.co.uk Amazon.com Amazon.ca Amazon.de

If you are new to C++ programming and have struggled learning from the more traditional books I would seriously suggest this book. It differs in approach from all other C++ books by describing useful programs that involve a number of areas of C++ right from the start. So high level data structures are used right from the start, you do not need to wade through each command available  before getting on to something interesting. It concentrates on solving problems and explains the features of the language with respect to those problems rather than the other way around.

The C++ Programming Language

For more details about this book or to purchase it follow one of these links: Amazon.co.uk Amazon.com Amazon.ca Amazon.de

Written by Bjarne Stroustrup the creator of C++ this is the definitive reference to the language and a book you will see recommended often. Personally I do not think it is a good beginners book, there are better ways to learn the language from scratch, but it is a book you will find in most programmers shelves.

Effective C++ and More Effective C++

 

For more details about these books or to purchase one follow one of these links: Effective C++: Amazon.co.uk Amazon.com  Amazon.ca Amazon.de More Effective C++: Amazon.co.uk Amazon.com Amazon.ca Amazon.de

These books contain a number of items (the first has 50 the second has 35) that describe how to use C++ well. They act as a really good reference and have changed the way I program in many ways. Some example tips are 'Prefer const and inline to #define' , 'prefer new and delete to malloc and free', 'Make sure base classes have virtual destructors', 'Postpone variable definitions as long as possible' and 'Say what you mean; understand what you're saying'. Each tip is described fully with reasons, examples and discussions. For the intermediate to the experienced C++ programmer I would definitely recommend these books.

Refactoring

For more details about this book or to purchase it follow one of these links: Amazon.co.uk Amazon.com Amazon.ca Amazon.de

Once you have a good grounding and some experience of object oriented programming you start to consider the arrangement of classes and how to solve awkward situations. This book is absolutely superb at helping you move code around and rearrange your classes into a much better design. He talks about bad code having a bad smell and he describes these situations and how you might solve them. For example if you have Duplicate Code he suggests methods to extract the code, extract the class, pull up the method or form template method. If you have a large class he suggests methods like extract class, extract subclass, extract interface etc. So the book is full of solutions to common code design problems. The examples are given in Java rather than C++ but they are never so complex that they cannot be interpreted by a reasonable C++ only programmer.

Design Patterns

For more details about this book or to purchase it follow one of these links: Amazon.co.uk Amazon.com Amazon.ca Amazon.de

Once you have been programming in an object oriented language for some time you start to see the same design patterns occur again and again. You see the same shape of class relationships and you start to reuse these shapes in other projects. This was what the Gang of Four observed and they decided to formalise these patterns and produced this, now famous, book. If you have a design issue you can be sure someone else has seen a similar one and come up with a solution. This book describes many design solutions (patterns) commonly facing object oriented programmers. This book is very advanced and while everyone should probably own it the next book is better for learning to apply the patterns.

 

© 2004-2010 Keith Ditchburn  (A lecturer on the Games Programming Course at Teesside University)