Books

 

Games Programming Books

This page is split into the following sections:

Top rated books for the games programmer

My current top rated games programming books are shown below (click on image to go to review):

1932111913.01._PE30_SCMZZZZZZZ1584503491.01.TZZZZZZZ0201485672.02.TZZZZZZZ1584503521.01.TZZZZZZZ02

General Games Programming Books

Game Coding Complete - Second Edition - Top Rated

1932111913.01._PE30_SCMZZZZZZZ
Amazon Links: amazon.co.ukamazon.comamazon.caamazon.de (second edition).

Update: the second edition of this book is now available. It is even better than 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.

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.

Core Techniques and Algorithms in Game Programming

0131020099.02.TZZZZZZZ
Amazon Links: amazon.co.ukamazon.comamazon.caamazon.de

This book is more advanced than the above but has quite a lot of valuable information. As the name suggests the author covers many techniques and algorithms used in games. For example he talks about the use of Design Patterns, various data structures before going on to look at rendering techniques e.g. scene graphics for indoor and outdoor rendering. He covers areas quite deeply and it is a bit more hard going than Game Coding Complete but is still a very worthwhile read.

Game Programming Gems (1,2,3,4 and 5) - Top Rated

1584500492.01.TZZZZZZZamazon.co.ukamazon.comamazon.caamazon.de1584500549.01.TZZZZZZZamazon.co.ukamazon.comamazon.caamazon.de

 1584502339.01.TZZZZZZZamazon.co.ukamazon.comamazon.caamazon.de1584502959.01.TZZZZZZZamazon.comamazon.caamazon.co.ukamazon.de

1584503521.01.TZZZZZZZ02amazon.co.ukamazon.comamazon.caamazon.de

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 not recommend these books for the beginner games programmer but for the more advanced they are a must.

The latest in this excellent series of Game Programming Gems is just out, this one is number 5. I will review this one as soon as my copy arrives.

Real-time 3D Terrain Engines Using C++ and DirectX

1584502045.01.TZZZZZZZ
Amazon Links: amazon.co.ukamazon.comamazon.caamazon.de

This is a brilliant book because it comes with my program (T2) on it :) No seriously it is a great book for those looking mainly to render terrain in real time.

Programming Windows

157231995X.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.de

This has been the number 1 book about programming for the Windows API for many years now. I had this book when it just covered Windows 3.1 and it was so well thumbed the pages fell out. I have since bought the latest one and it is as good as the first (it is now onto its fifth edition).

Software Engineering and Computer Game

0201767910.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.de

I am unsure about this book. At first sight I thought “wow a book that covers UML, patterns etc. within games development” but it does not quite live up to it's promise. It seems to be trying to cover too much. Having said that there are some good parts to it.

Object-Oriented Game Development

032117660X.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.de

This is similar to the above in many ways this book also tries to relate object oriented techniques and games development. Again it does not quite work but does have some very good sections. It is worth considering.

DirectX Books

Introduction to 3D Game Programming with DirectX 9.0

1556229135.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.de

This is a very good book for those wishing to learn DirectX. Probably not for the complete beginner but for those who know some C++. The author starts with general 3D techniques and then moves on to teaching DirectX 9. Many areas of Direct3D are covered including HLSL (Higher Level Shading Language) although this section does not go into much detail. The title is a little deceptive as well because he covers only the Direct3D API in DirectX not the other areas like input, sound etc. However I would definitely recommend this book to those wishing to learn Direct3D.

Programming Vertex and Pixel Shaders - Top Rated

1584503491.01.TZZZZZZZ
Amazon Links: amazon.co.ukamazon.comamazon.caamazon.de

I have been looking for a while for a good book on writing shaders. There are a number of books out there but they are either rather weak or simply detail lots of shaders, this book is different, it starts from the beginning and builds gradually on to very advanced shaders. If you want to learn how to program shaders this is the book for you.

This book covers the programming of vertex and pixel shaders under DirectX. It uses the Higher Level Shading Language (HLSL) rather than any assembler. It starts by talking about the graphics pipeline and where shaders fit in before going on to describe how to incorporate them into your game using effect files. It then describes various lighting models and how to program them before moving on to detailing many example shaders. Coverage of shaders is extensive and it even covers the latest shaders version 3.0 and describes how to optimise your shaders. This is a great book for the beginner or the more experienced shader programmer. If you have been putting off learning shaders (as I did) this book will get you going really quickly. Highly recommended.

Advanced Animation with DirectX

1592000371.01.SCMZZZZZZZ02
Amazon Links: amazon.co.ukamazon.comamazon.caamazon.de

This book is part of the popular game development series. It covers many areas of animation and rendering with DirectX including facial animation and partical animation. The theory is well discussed and there are plenty of samples (be aware that these may not compile correctly with the latest version of the SDK). If you are serious about doing animation with DirectX this could be the book to help you.

Search for DirectX related books at Amazon: amazon.co.uk amazon.com amazon.caamazon.de

C++ Programming Books

Accelerated C++ - Top Rated

020170353X.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.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

0201700735.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.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 C++ programmers shelves.

Effective C++ and More Effective C++

0201924889.02.TZZZZZZZ amazon.co.ukamazon.comamazon.caamazon.de020163371X.02.TZZZZZZZ amazon.co.ukamazon.comamazon.caamazon.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.

Free Books

Bruce Eckel has made some of his books free to download on the Internet. These include Thinking in C++ and Thinking in Patterns. You can get them here: Bruce Eckel’s MindView.

Software Design Books

Refactoring - Top Rated

0201485672.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.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

0201633612.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.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.

Design Patterns Explained - A New Perspective on Object - Oriented Design

0321247140.02._PE30_SCMZZZZZZZ_02
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.de

Design Patterns can be tricky to understand and put into practice but once learned are an invaluable tool in object oriented programming. This book shows how design patterns can be applied in a practice and is much easier to learn from than the ‘classic’ Design Patterns book (reviewed above).

Pattern Hatching: Design Patterns Applied

0201432935.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.de

This book can be considered a companion to the above. It uses examples to help describe the patterns and how best to apply them. This is quite an advanced book and may not be for everyone.

UML books

The Unified Modelling Language (UML) has become the most popular method of drawing and designing object oriented systems. When I was at University there were many different methods available but now, thankfully, UML has become the most widely used and hence the best to learn. UML aids in the design process by both clarifying ideas and by communicating those ideas to others in your development team. As game development teams get bigger and games become more complex development companies (at last!) to the more traditional software design processes.

UML Distilled

0321193687.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.de

I always like Martin Fowler's books and this is no exception. It describes all the areas of UML with plenty of examples and discussion. I particularly like the second chapters description of an outline development process. This is a great book but for those who just want to learn the areas of UML from scratch the book below may be preferable.

Sams Teach Yourself UML in 24 Hours

067232640X.02.TZZZZZZZ
Amazon Links:: amazon.co.ukamazon.comamazon.caamazon.de

it's one of those 24 hours books :) but it is actually a good learning aid and does get you started with the main areas of UML. I would recommend this to anyone wanting to learn UML from scratch.

Keyword book searches

Search for DirectX related books at Amazon: amazon.co.uk amazon.com amazon.caamazon.de
Search for Games Programming related books at Amazon: amazon.co.uk amazon.com amazon.caamazon.de

Amazon Book Shops

© 2004-2008 Keith Ditchburn